DQL:即数据查询语句 查询数据库中的记录,关键字 SELECT,这块内容非常重要!
一. 条件语句:wherer
用于检索数据表中符合条件的记录搜索条件可由一个或多个逻辑表达式组成,结果一般为真或假
select 列名 from 表名 where 列名 =值;
搜索条件目录:点击查看
二. as 取别名
SELECT 字段名 as 值 FORM 表名;
使用as也可以为表取别名,表里的名字没有变,只影响了查询出来的结果 (作用:单表查询意义不大,但是当多个表的时候取别名就好操作,当不同的表里有相同名字的列的时候区分就会好区分)
三. distinct 去除重复记录
注意:当查询结果中所有字段全都相同时 才算重复的记录
SELSCT DISTINCT * FROM 表名;
指定字段:星号表示所有字段
手动指定需要查询的字段
SELECT DISTINCT s_name,s_birth FROM student;
还可也是四则运算聚合函数。
四. 分组 group by
group by:是根据by对数据按照哪个字段进行分组,或者是哪几个字段进行分组。
SELECT 字段名 FROM 表名 GROUP BY 字段名称;
1. 单个字段分组
SELECT COUNT(*) FROM 表名 GROUP BY 字段名;
2. 多个字段分组
SELECT 字段1,字段2,COUNT(*) FROM 表名 GROUP BY 字段1,字段2;
注意:多个字段进行分组时,需要将s_name和s_sex看成一个整体,只要是s_name和s_sex相同的可以分成一组;如果只是s_sex相同,s_sex不同就不是一组。
五. 过滤 having
HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 和 SELECT 的交互方式类似。WHERE 搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中显示的任意项。
例子:如果要查询男生或者女生,人数大于5的性别
SELECT s_sex as 性别,COUNT(s_if) as 人数 FROM student GROUP BY s_sex HAVING COUNT(s_id)>5;
六. order by 排序
根据某个字段排序,默认升序(从小到大)
SELECT * FROM 表名 ORDER BY 字段名;
1. 一个字段,降序(从大到小)
SELECT * FROM 表名 ORDER BY 字段名 DESC;
2. 多个字段
SELECT * FROM 表名 ORDER BY 字段名1 DESC, 字段名2 ASC;
多个字段第一个相同在按照第二个
asc:表示升序
limit:分页用于限制要显示的记录数量
SELECT * FROM 表名 LIMIT 个数;
SELECT * FROM 表名 LIMIT 起始位置 个数;
注意:起始位置 从0开始
经典的使用场景:分页显示