数据库基础—数据查询语言(DQL)
DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。
SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
ORDER BY
排序字段列表
LIMIT
分页参数
一.基础查询
1.查询多个字段
SELECT 字段1, 字段2, 字段3 ... FROM 表名 ;
2.查询所有字段
SELECT * FROM 表名 ;
3.设置别名
SELECT 字段1 [ AS 别名1 ] , 字段2 [ AS 别名2 ] ... FROM 表名;
ps:1.as可以省略
2.常用场景:条件查询,子查询,多表查询
4.去除重复记录
SELECT DISTINCT 字段 FROM 表名;
PS:1.distinct只能在select语句中使用
2.distinct必须在所有字段前面
3.如果有多个字段需要去重,则会对多个字段进行组合去重,即所有字段的数据重复才会被去重
二.条件查询
1.语法
SELECT 字段列表 FROM 表名 WHERE 条件列表 ;
2.常见比较运算符
> | 大于 |
>=
|
大于等于 |
<
|
小于 |
<=
|
小于等于 |
=
|
等于 |
<> 或 !=
|
不等于 |
BETWEEN ... AND ...
|
在某个范围之内(含最小、最大值)
|
IN(...)
|
在in之后的列表中的值,多选一
|
LIKE 占位符
|
模糊匹配(_匹配单个字符, %匹配任意个字符)
|
IS (not) NULL
ps:是一个整体,不能改
|
是NULL
|
3.常见逻辑运算符
AND 或 && |
并且 (多个条件同时成立) |
OR 或 || |
或者 (多个条件任意一个成立) |
NOT 或 ! |
非 , 不是 |
4.like的使用
4.1 语法
LIKE '字符串'
NOT LIKE '字符串'
4.2 %和_
% 应该是最常用的通配符了,它代表任意长度的字符串,包括0
比如: a%b 表示以字母 a 开头,以字母 b 结尾的任意长度的字符串;该字符串可以代表 ab、acb、accb、accrb 等字符串
_ 只能代表单个字符,字符的长度不能等于0,即字符长度必须等于1;相对于 % 来说, _ 肯定没这么常用
比如: a_b 可以代表 acb、adb、aub 等字符串
ps:1.匹配的字符串必须加单引号或双引号
2.like匹配的字符串是不区分大小写的,如果需要区分大小写,需要在like后加binary
三.聚合函数
1.常见的聚合函数
count统计数量 max最大值 min最小值 avg平均值 sum求和
2.语法
SELECT 聚合函数(字段) FROM 表名 ;
ps:NULL值是不参与所有聚合函数运算的
四.分组查询
1.语法
SELECT 字段列表 FROM 表名 [ WHERE 条件 ] GROUP BY 分组字段名 [ HAVING 分组后过滤条件 ];
2.
五.排序查询
1.语法
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1 , 字段2 排序方式2 ;
ps:1.ASC : 升序(默认值) DESC: 降序
2.对多个字段排序时,只有第一个排序字段有相同的值,才会对第二个字段进行排序
六.限制查询
1.语法
limit 初始位置,记录数;
ps:初始位置是0
2.指定初始位置
select * from 表 limit 2,2;
3.不指定初始位置
select * from 表 limit 记录数;
4.limit+offset
limit 记录数 offset 初始位置