暑期自学 Day 10 | 数据库 (三)- DQL
DQL
排序查询
... order by keyword ASC/DESC
- 如果升/降序不写,默认升序
聚合函数
- 将一列作为一个整体,做纵向计算
- 会排除 null 值
- 解决:使用 IFNULL() 函数或选择非空列
count
计算个数SELECT COUNT(english) FROM stu
或SELECT COUNT(IFNULL(english, 0)) FROM stu
空设为0
max
,min
,sum
,avg
使用方法同 COUNT
分组查询
group by 分组字段
- 根据分组字段来查询数据,如根据性别分组,那么男女就被分为两组。
- 两种限定条件的语法:
where ...
或having ...
- 区别:
- where 在分组前限定,不满足条件不参与分组;having 在分组后限定,如果不满足分组不会被查询
- where 后不可使用聚合函数判断,having 则可以。
- 区别:
分页查询
limit 数据开始索引, 查询条数
select * from stu limit 0, 3;
从 0 开始查,查三条记录
基础查询
SELECT col1, col2, ... colN FROM t_table;
- 去除重复数据:使用 DISTINCT 关键字
SELECT DISTINCT col1 FROM t_table;
- 查询某两列之和:
SELECT name, (math + english) FROM t_table
- 如果有一列数据是 null,运算结果为 null
- 为某一列起别名: 使用 AS 关键字
SELECT name, (math + english) AS total FROM t_table
条件查询
- where
- 运算符 >, <, =, >=, !=, <>, and/&&, or/||, not/|
- BETWEEN … AND
... BETWEEN 20 AND 30;
- IN
... WHERE age IN (22, 18, 25);
- IS / IS NOT: 判断是否是 NULL
... IS NULL
模糊查询
- LIKE
- _ 下划线:单个任意字符
- % 百分号:多个任意字符
- 查询含有某个字符的数据:
... WHERE name LIKE '%马%';
// 查询含有马的名字
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: