【MySQL】探索表结构、数据类型和基本操作
表、记录、字段
数据库的E-R(entity-relationship,实体-关系)模型中有三个主要概念: 实体集 、 属性 、 关系集 。
一个实体集对应于数据库中的一个表,一个实体则对应于数据库表 中的一行,也称为一条记录。一个属性对应于数据库表中的一,也称为一个字段。
比如在日常生活之中,可以这样描述一本书的信息,《三国演义》是中华书局出版的图书,作者是罗贯中,定价89.00,出版于2008年5月1日,这样的信息在计算机中就可以使用下面的方式来描述:
- (三国演义,中华书局,罗贯中,89.00,2008-5-1),将信息按照“(图书名称,出版社,作者,价格,出版日期)”的方式组织在一起,这样就组成了一条记录。
如果现在有多条这种记录,那么就可以列成一张表,通过表来管理数据。
下面是一个表的结构,每一行的数据都成为记录,那么每一列的内容都称为字段。每一列都有自己的数据类型。

SQL规范与测试数据导入
SQL语句规范
使用SQL语句需要遵循以下规范:
- SQL语句不区分大小写。但字符串常量区分大小写,建议命令大写,表名库名小写;
- SQL语句可单行或多行书写,以分号结尾;
- 用空格和缩进来提高语句的可读性。
- 注释:有三种风格的注释
- 单行注释可以用“#”
- 单行注释第二种写法用“-- ”,“–" 与注释之间是有空格的。
- 多行注释可以用/* */
##一些数据类型
| 数据类型 | 说明 | 示例 |
|---|---|---|
| 整数类型 | 存储整数值 | INT, BIGINT, TINYINT |
| 浮点数类型 | 存储浮点数值 | FLOAT, DOUBLE |
| 定点数类型 | 存储精确小数值 | DECIMAL(10,2) |
| 日期与时间类型 | 存储日期和时间 | DATE, DATETIME, TIMESTAMP |
| 字符串类型 | 存储文本数据 | VARCHAR(255), CHAR(10), TEXT |
| 二进制字符串类型 | 存储二进制数据 | BINARY(10), VARBINARY(255), BLOB |
| 空间数据类型 | 存储空间数据 | POINT, GEOMETRY, POLYGON |
准备测试数据(导入数据)
登录MySQL,输入source xxx/test.sql导入sql文件,sql文件实际上是一个脚本文件,里面有多行SQL语句,通过source命令可以批量执行。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

执行完毕之后,使用show databases;查看所有数据库,发现多了一个名为test的数据库。

使用show tables;查看test数据库下所有的数据表,发现有四个表。

test数据库表
部门表:dept
| No. | 字段名 | 类型 | 描述 |
|---|---|---|---|
| 1 | DEPTNO | SMALLINT | 部门编号 |
| 2 | DNAME | VARCHAR(14) | 部门名称,最多14个字符 |
| 3 | LOC | VARCHAR(13) | 部门位置,最多13个字符 |

雇员表:emp
| No. | 字段名 | 类型 | 描述 |
|---|---|---|---|
| 1 | EMPNO | SMALLINT | 雇员编号 |
| 2 | ENAME | VARCHAR(10) | 雇员姓名 |
| 3 | JOB | VARCHAR(9) | 职位(工作) |
| 4 | MGR | SMALLINT | 一个员工对应的领导编号,领导也是雇员 |
| 5 | HIREDATE | DATE | 雇佣日期 |
| 6 | SAL | DECIMAL(7,2) | 基本工资 |
| 7 | COMM | SMALLINT | 佣金(奖金),销售人员可以领取 |
| 8 | DEPTNO | SMALLINT | 雇员所属部门编号,与dept表对应 |

工资等级表:salgrade
| No. | 字段名 | 类型 | 描述 |
|---|---|---|---|
| 1 | GRADE | SMALLINT | 工资等级编号 |
| 2 | LOSAL | SMALLINT | 此等级的最低工资 |
| 3 | HISAL | SMALLINT | 此等级的最高工资 |

工资补贴表(工资条):bonus
| No. | 字段名 | 类型 | 描述 |
|---|---|---|---|
| 1 | ENAME | VARCHAR(10) | 雇员姓名 |
| 2 | JOB | VARCHAR(9) | 工作 |
| 3 | SAL | DECIMAL(7,2) | 基本工资 |
| 4 | COMM | SMALLINT | 佣金 |
工资补贴表没有数据
数据库的基本操作
在MySQL之中有许多的数据库,可以使用以下命令SHOW DATABASES查看所有数据库:
SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema | #主要存储了系统中的一些数据库对象信息,比如用户表信息、列信息、权限信息、字符集信息和分区信息等。
| mysql | #MySQL的核心数据库,主要负责存储数据库用户、用户访问权限等 MySQL 自己需要使用的控制和管理信息。
| performance_schema | #主要用于收集数据库服务器性能参数。
| sys | #sys 数据库主要提供了一些视图,数据都来自于 performation_schema,主要是让开发者和使用者更方便地查看性能问题。
+--------------------+
这些数据库彼此之间是可以进行相互切换的。而切换的基本语法:
USE <dbname>;

要想知道当前使用的是哪个数据库,那么可以使用select database();命令来查看:

在一个数据库下一定会存在多张数据表,那么这个时候也可以直接利用以下命令查看所有表:
SHOW TABLES;
而如果想要知道某些数据表的表结构,那么可以使用DESC命令:
DESC emp;

如果想要自己创建数据库,则需要使用以下命令:
CREATE DATABASE <dbname>;
如果数据库已经存在则会报错 Can't create database '<dbname>'; database exists,我们可以先判断数据库是否存在,不存在就创建,存在则忽略(只有警告没有报错)。
CREATE DATABASE IF NOT EXISTS <dbname>;
如果想要删除数据库,则可以使用以下命令:
DROP DATABASE <dbname>;
如果数据库不存在则会报错Can't drop database 'ss'; database doesn't exist,所以在删除数据库时可以判断是否存在。
DROP DATABASE IF EXISTS <dbname>; #如果数据库存在则删除
使用 DROP DATABASE 命令时要非常谨慎,在执行该命令后,MySQL 不会给出任何提示确认信息。DROP DATABASE 删除数据库后,数据库中存储的所有数据表和数据也将一同被删除,而且不能恢复。
相关文章:
【MySQL】探索表结构、数据类型和基本操作
表、记录、字段 数据库的E-R(entity-relationship,实体-关系)模型中有三个主要概念: 实体集 、 属性 、 关系集 。 一个实体集对应于数据库中的一个表,一个实体则对应于数据库表 中的一行,也称为一条记录。…...
解决采集时使用selenium被屏蔽的办法
解决采集时使用selenium被屏蔽的办法 实用seleniumbase uc模式 from seleniumbase import Driver driver Driver(ucTrue) # 使用UC模式UC模式是基于undetected-chromedriver 但做了一些优化更新,使用起来更方便 官方例子: from seleniumbase import …...
stream流-> 判定 + 过滤 + 收集
List<HotArticleVo> hotArticleVos hotArticleVoList .stream() .filter(x -> x.getChannelId().equals(wmChannel.getId())).collect(Collectors.toList()); 使用Java 8中的Stream API对一个名为hotArticleVoList的列表进行过滤操作,筛选出符合指定条件…...
人工智能在测绘行业的应用与挑战
目录 一、背景 二、AI在测绘行业的应用方向 1. 自动化特征提取 2. 数据处理与分析 3. 无人机测绘 4. 智能导航与路径规划 5. 三维建模与可视化 6. 地理信息系统(GIS)智能化 三、发展前景 1. 技术融合 2. 精准测绘 3. 智慧城市建设 4. 可…...
四、分类算法 - 随机森林
目录 1、集成学习方法 2、随机森林 3、随机森林原理 4、API 5、总结 sklearn转换器和估算器KNN算法模型选择和调优朴素贝叶斯算法决策树随机森林 1、集成学习方法 2、随机森林 3、随机森林原理 4、API 5、总结...
pytorch -- DataLoader
定义 提供了给定数据集的迭代器 torch.utils.data.DataLoader(dataset, batch_size1, 每次拿多少数据 shuffleNone, 是否打乱 samplerNone, batch_samplerNone, num_workers0, 多进程(加载数据时采用)默认是0,使用主进程加载数据 collate_fnNone, p…...
【MySQL面试复习】索引创建的原则有哪些?
系列文章目录 在MySQL中,如何定位慢查询? 发现了某个SQL语句执行很慢,如何进行分析? 了解过索引吗?(索引的底层原理)/B 树和B树的区别是什么? 什么是聚簇索引(聚集索引)和非聚簇索引…...
四种主流的prompt框架
省流版: 文章介绍了在使用GPT时的四种prompt框架,有利于使用者打磨提问风格,与GPT进行更好的交互以提高生产力,能帮助大家有效提高工作效率~ 创作不易,如果对你有帮助的话,还请三连支持~ 想要使用Prompt…...
Educational Codeforces Round 160 (Rated for Div. 2) E. Matrix Problem(费用流)
原题链接:E. Matrix Problem 题目大意: 给出一个 n n n 行 m m m 列的 0 / 1 0/1 0/1 矩阵,再给出一些限制条件:一个长为 n n n 的数组 a a a,和一个长为 m m m 的数组 b b b 。 其中 a i a_{i} ai 表示第 …...
基于SpringBoot的气象数据监测分析大屏
项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…...
关于硅的制造芯片的过程
芯片是如何制作的? 先将硅融化制成硅晶片,再用光刻机印压电路。 bilibili芯片制作视频 硅晶片作为现代芯片的主要元件,广泛用于集成电路。 首先将多晶硅放入特制的密封炉,排除其中空气后加热到1420摄氏度,将融化的硅放…...
【深度学习笔记】3_10 多层感知机的PyTorch实现
注:本文为《动手学深度学习》开源内容,仅为个人学习记录,无抄袭搬运意图 3.10 多层感知机的简洁实现 下面我们使用PyTorch来实现上一节中的多层感知机。首先导入所需的包或模块。 import torch from torch import nn from torch.nn import …...
输入法在 Android13上候选词 候选区域 不显示的问题
背景 自研的输入法发现在 Android13 平台上不显示候选区域,在之前平台上以及需求是输入英文时不显示,中文需要显示。 最终解决办法:setExtractViewShown(false) Override public View onCreateCandidatesView() {...setExtractViewShown(f…...
Java 面向对象进阶 18 JDK8、9开始新增的方法;接口的应用;适配器设计模式;内部类(黑马)
一、JDK8开始新增的方法 默认方法不是抽象方法,所以不强制被重写: 但是如果被重写,就要去掉default关键字: public可以省略,但是default不可以省略: public是灰色的,代表可以省略 但是default是…...
数据结构-二分搜索树(Binary Search Tree)
一,简单了解二分搜索树 树结构: 问题:为什么要创造这种数据结构 1,树结构本身是一种天然的组织结构,就好像我们的文件夹一样,一层一层的. 2,树结构可以更高效的处理问题 二,二分搜索树的基础 1、二叉树 2,二叉树的重要特性 满二叉树 总结: 1. 叶子结点出现在二叉树的最…...
YOLO如何训练自己的模型
目录 步骤 一、打标签 二、数据集 三、跑train代码出模型 四、跑detect代码出结果 五、详细操作 步骤 一、打标签 (1)在终端 pip install labelimg (2)在终端输入labelimg打开 如何打标签: 推荐文章…...
05 EXTI外部中断
一、中断系统 中断系统:管理和执行中断的逻辑结构。中断:在主程序运行过程中,出现了特定的中断触发条件——中断源,使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继…...
2024.2.23
1.1.1 信号默认、捕获、忽略处理(普通信号) #include <myhead.h> void handler(int signo) {if(signoSIGINT){printf("用户键入 ctrlc\n");} } int main(int argc, const char *argv[]) {//忽略信号if(signal(SIGINT,SIG_IGN)SIG_ERR){perror("signal er…...
PHP实现分离金额和其他内容便于统计计算
得到的结果可以粘贴到excel计算 <?php if($_GET["x"] "cha"){ $tips isset($_POST[tips]) ? $_POST[tips] : ; $pattern /(\d\.\d|\d)/; $result preg_replace($pattern, "\t\${1}\t", $tips); echo "<h2><strong>数…...
基础数据结构和算法《》
递归 1.递归应该一种比较常见的实现一些特殊代码逻辑时需要做的,但常常也是最绕的一种方式,在解释递归 之前,我们用循环和递归来做个比较1.1.如果你打开一扇门后,同样发现前方也有一扇们,紧接着你又打开下一扇门...直…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
