DQL【Data Query Language】数据查询语言,用来查询数据库中表的记录。
DQL-顺序
编写顺序:
select
字段列表
from
表名列表
where
条件列表
group by
分组字段列表
having
分组后条件列表
order by
排序字段列表
limt
分页参数
执行顺序:
from
表名列表
where
条件列表
group by
分组字段列表
having
分组后条件列表
select
字段列表
order by
排序字段列表
limt
分页参数
一.基本查询
1.查询多个字段
select 字段1,字段2,字段3,... from 表名;
select * from 表名;
2.设置别名
select 字段1[as 别名1],字段2[as 别名2],... from 表名;
3.去除重复记录
select distinct 字段列表 from 表名;
二.条件查询(WHERE)
1.语法
select 字段列表 from 表名 where 条件列表;
常用的比较运算符如下: | |
比较运算符 | 功能 |
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
= | 等于 |
<>或!= | 不等于 |
BETWEEN ...AND... | 在某个范围之内(含最小、最大值) |
IN(...) | 在in之后的列表中的值,多选一 |
LIKE占位符 | 模糊匹配(_匹配单个字符,%匹配任意个字符) |
IS NULL | 是NULL |
常用的比逻辑运算符如下: | |
逻辑运算符 | 功能 |
AND或&& | 并且(多个条件同时成立) |
OR或|| | 或者(多个条件任意一个成立) |
NOT或! | 非,不是 |
三.聚合查询(count、max、min、avg、sum)
1.介绍
将一列数据作为一个整体,进行纵向计算
2. 语法
select 聚合函数(字段列表) from 表名;
函数 | 功能 |
count | 统计数量 |
max | 最大值 |
min | 最小值 |
avg | 平均值 |
sum | 求和 |
【注意:NULL值是不参与所有聚合函数运算的。】
四.分组查询(GROUP BY)
1.语法
selsect 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件]
2.where与having区别
- 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
- 判断条件不同:where不能对聚合函数进行判断,而having可以。
3.注意事项:
- 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
- 执行顺序:where >聚合函数> having。
- 支持多字段分组,具体语法为:group by columnA,columnB
五.排序查询(ORDER BY)
1.语法
select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;
2.排序方式
ASC :升序(默认值)
DESC:降序
注意事项:
- 如果是升序,可以不指定排序方式ASC;
- 如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序;
六.分页查询(LIMT)
select 字段列表 from 表名 limt 起始索引,查询记录数;
注意事项:
- 起始索引从0开始,起始索引=(查询页码- 1)*每页显示记录数。
- 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。
- 如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10。