目录
什么是DQL
语法
基本查询
语法
设置别名
去除重复记录
条件查询
语法
条件运算符
聚合函数
介绍
语法
分组查询
语法
用法
排序查询
语法
排序方式
注意事项
分页查询
语法
公式
注意事项
DQL英文全称是Data Query Language(数据查询语言),用来查询数据库表中的记录。
关键字:SELECT(select)
select
字段列表
from
表名列表
where
条件列表
group by
分组字段列表
having
分组后条件列表
order by
排序字段列表
limit
分页参数
select 字段1, 字段2, 字段3 from 表名;
查询所有字段可以写成:select * from 表名;
写法更简洁,但实际开发中不建议用,建议将要查询的字段全部写出。
select 字段1 as 别名1, 字段2 as 别名2 from 表名;
as 可以省略
select distinct 字段列表 from 表名;
查询出的字段中不会出现重复的数据
select 字段列表 from 表名 where 条件列表;
>,>=,<,<=,=,!=,这些意思比较好理解
其中还有一些要特殊关注的:
between A and B ,表示范围在A到B之间,如时间,年龄等条件。
in (a, b, c),表示满足a,b,c中的一个即可。
like 占位符,用于模糊匹配,_匹配单个字符,%匹配任意个字符。
is null,表示是空。
and,并且(多个条件同时成立才行)。
or,或者(多个条件任意一个成立即可)。
not,非(表示不是的意思)。
将一列数据作为一个整体,进行纵向计算。
select 聚合函数(字段列表) from 表名;
函数 | 功能 |
count | 统计数量 |
max | 最大值 |
min | 最小值 |
avg | 平局值 |
sum | 求和 |
重点关注count函数,常用于统计数量,例如用于分页查询中数据总数的查询。
用法:select count(*) from 表名;(推荐用法)
注意:null值不参与所有聚合函数运算。
select 字段列表 from 表名 group by 分组字段名;
例如,统计用户的数量,需要通过性别来进行分组统计。
select gender, count(*) group by gender;
结果为:
gender | `count(*)` |
男 | 20 |
女 | 15 |
当然,带着where条件进行分组也是可以的。
同样是分组条件having和where有什么区别呢?
1.执行的时机不同:where是在分组之前进行数据过滤,不符合的数据不参与分组。having是在分组之后对数据进行过滤。
2.判断的条件不同:where不能对聚合函数进行判断,having可以。
3.执行顺序:where > 聚合函数 > having
select 字段列表 from 表名 order by 字段1 排序方式1, 字段2 排序方式2;
ASC:升序(默认值),可以不写。
DESC:降序,必须指定。
进行多字段排序时,当第一个字段相同时,才会根据第二个字段进行排序,以此类推。
select 字段列表 from 表名 limit 起始索引, 查询记录数;
起始索引 = (查询的页数 - 1)* 查询记录数
起始索引从0开始
当查询的是第一页数据,起始索引可以省略,例如:select * from tb_user limit 10;