SQL语句
SQL:结构化查询语言。一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准。SQL语句根据其功能被分为四大类:DDL、DML、DQL、DCL 。
|
分类 |
全称 |
说明 |
|
DDL |
Data Definition Language |
数据定义语言,用来定义数据库对象(数据库,表,字段) |
|
DML |
Data Manipulation Language |
数据操作语言,用来对数据库表中的数据进行增删改 |
|
DQL |
Data Query Language |
数据查询语言,用来查询数据库中表的记录 |
|
DCL |
Data Control Language |
数据控制语言,用来创建数据库用户、控制数据库的访问权限 |

DDL语句
数据库操作
我们在进行数据库设计,需要使用到刚才所介绍SQL分类中的DDL语句。
DDL英文全称是Data Definition Language(数据定义语言),用来定义数据库对象(数据库、表)。
DDL中数据库的常见操作:查询、创建、使用、删除。
查询数据库
- 查询所有数据库
![]()
- 查询当前数据库
![]()
创建数据库
- 语法:

使用数据库
- 语法:

删除数据库
- 语法:

表操作
包含四个部分:创建表、查询表、修改表、删除表。
创建
- 语法:

- 注意: [ ] 中的内容为可选参数; 最后一个字段后面没有逗号
表操作-其他操作
(可以跳过,直接看后面的绿色文字)
表结构的查询、修改、删除操作

- 修改数据库表结构的具体语法:
添加字段

修改字段

删除字段

修改表名

删除表结构

关于表结构的查看、修改、删除操作,工作中一般都是直接基于图形化界面操作。

约束
- 概念:所谓约束就是作用在表中字段上的规则,用于限制存储在表中的数据。
- 作用:就是来保证数据库当中数据的正确性、有效性和完整性。(后面的学习会验证这些)
- 在MySQL数据库当中,提供了以下5种约束:
|
约束 |
描述 |
关键字 |
|
非空约束 |
限制该字段值不能为null |
not null |
|
唯一约束 |
保证字段的所有数据都是唯一、不重复的 |
unique |
|
主键约束 |
主键是一行数据的唯一标识,要求非空且唯一 |
primary key |
|
默认约束 |
保存数据时,如果未指定该字段值,则采用默认值 |
default |
|
外键约束 |
让两张表的数据建立连接,保证数据的一致性和完整性 |
foreign key |
注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。
主键自增:auto_increment
- 每次插入新的行记录时,数据库自动生成id字段(主键)下的值
- 具有auto_increment的数据列是一个正数序列开始增长(从1开始自增)
数据类型
主要分为三类:数值类型、字符串类型、日期时间类型。
1). 数值类型
|
类型 |
大小 |
有符号(SIGNED)范围 |
无符号(UNSIGNED)范围 |
描述 |
|
TINYINT |
1byte |
(-128,127) |
(0,255) |
小整数值 |
|
SMALLINT |
2bytes |
(-32768,32767) |
(0,65535) |
大整数值 |
|
MEDIUMINT |
3bytes |
(-8388608,8388607) |
(0,16777215) |
大整数值 |
|
INT/INTEGER |
4bytes |
(-2147483648,2147483647) |
(0,4294967295) |
大整数值 |
|
BIGINT |
8bytes |
(-2^63,2^63-1) |
(0,2^64-1) |
极大整数值 |
|
FLOAT |
4bytes |
(-3.402823466 E+38,3.402823466351 E+38) |
0 和 (1.175494351 E-38,3.402823466 E+38) |
单精度浮点数值 |
|
DOUBLE |
8bytes |
(-1.7976931348623157 E+308,1.7976931348623157 E+308) |
0 和 (2.2250738585072014 E-308,1.7976931348623157 E+308) |
双精度浮点数值 |
|
DECIMAL |
|
依赖于M(精度)和D(标度)的值 |
依赖于M(精度)和D(标度)的值 |
小数值(精确定点数) |

2). 字符串类型
|
类型 |
大小 |
描述 |
|
CHAR |
0-255 bytes |
定长字符串(需要指定长度) |
|
VARCHAR |
0-65535 bytes |
变长字符串(需要指定长度) |
|
TINYBLOB |
0-255 bytes |
不超过255个字符的二进制数据 |
|
TINYTEXT |
0-255 bytes |
短文本字符串 |
|
BLOB |
0-65 535 bytes |
二进制形式的长文本数据 |
|
TEXT |
0-65 535 bytes |
长文本数据 |
|
MEDIUMBLOB |
0-16 777 215 bytes |
二进制形式的中等长度文本数据 |
|
MEDIUMTEXT |
0-16 777 215 bytes |
中等长度文本数据 |
|
LONGBLOB |
0-4 294 967 295 bytes |
二进制形式的极大文本数据 |
|
LONGTEXT |
0-4 294 967 295 bytes |
极大文本数据 |
char 与 varchar 都可以描述字符串,char是定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关 。而varchar是变长字符串,指定的长度为最大占用长度 。相对来说,char的性能会更高些。

3). 日期时间类型
|
类型 |
大小 |
范围 |
格式 |
描述 |
|
DATE |
3 |
1000-01-01 至 9999-12-31 |
YYYY-MM-DD |
日期值 |
|
TIME |
3 |
-838:59:59 至 838:59:59 |
HH:MM:SS |
时间值或持续时间 |
|
YEAR |
1 |
1901 至 2155 |
YYYY |
年份值 |
|
DATETIME |
8 |
1000-01-01 00:00:00 至 9999-12-31 23:59:59 |
YYYY-MM-DD HH:MM:SS |
混合日期和时间值 |
|
TIMESTAMP |
4 |
1970-01-01 00:00:01 至 2038-01-19 03:14:07 |
YYYY-MM-DD HH:MM:SS |
混合日期和时间值,时间戳 |

DML语句
DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。
增加(insert)
语法


修改(update)
语法
![]()

删除(delete)
语法


DQL语句(重要)
介绍
DQL英文全称是Data Query Language(数据查询语言),用来查询数据库表中的记录。
查询关键字:SELECT
语法
DQL查询语句,语法结构如下:

基本查询
在基本查询的DQL语句中,不带任何的查询条件。
语法如下:
- 查询多个字段


条件查询
语法:
![]()
常用的比较运算符如下:
|
比较运算符 |
功能 |
|
> |
大于 |
|
>= |
大于等于 |
|
< |
小于 |
|
<= |
小于等于 |
|
= |
等于 |
|
<> 或 != |
不等于 |
|
between … and … |
在某个范围之内(含最小、最大值) |
|
in(…) |
在in之后的列表中的值,多选一 |
|
like 占位符 |
模糊匹配(_匹配单个字符, %匹配任意个字符) |
|
is null |
是null |
常用的逻辑运算符如下:
|
逻辑运算符 |
功能 |
|
and 或 && |
并且 (多个条件同时成立) |
|
or 或 || |
或者 (多个条件任意一个成立) |
|
not 或 ! |
非 , 不是 |
注意:查询为NULL的数据时,不能使用 = null 或 !=null 。得使用 is null 或 is not null。

聚合函数
常用聚合函数:
|
函数 |
功能 |
|
count |
统计数量 |
|
max |
最大值 |
|
min |
最小值 |
|
avg |
平均值 |
|
sum |
求和 |
- count :按照列去统计有多少行数据。
- 在根据指定的列统计的时候,如果这一列中有null的行,该行不会被统计在其中。
- sum :计算指定列的数值和,如果不是数值类型,那么计算结果为0
- max :计算指定列的最大值
- min :计算指定列的最小值
- avg :计算指定列的平均值


分组查询
语法:
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
- 案例1:根据性别分组 , 统计男性和女性员工的数量


执行顺序:where > 聚合函数 > having
where与having区别(面试题)
- 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
- 判断条件不同:where不能对聚合函数进行判断,而having可以。
排查查询
排序在日常开发中是非常常见的一个操作,有升序排序,也有降序排序。
语法:




分页查询
分页查询语法:
select 字段列表 from 表名 limit 起始索引, 查询记录数 ;

如果查询的是第1页数据,起始索引可以省略,直接简写为:limit 条数

欢迎 👍点赞✍评论⭐收藏,欢迎指正
网硕互联帮助中心





评论前必须登录!
注册