DQL基础查询
- 查询表中指定列的数据:
select 列名1,列名2 ,列名 ... from 表名;
-
查询表中的全部数据:
select * from 表名 ;
-
去除表中的重复数据:
select distinct 重复的列名 ... from 表名;
-
计算列的数据:
select 列名1,列名2 ... ifnull(列名 ,0) from 表名;
#ifnull是进行判断值是否为null,如果为null的话就按照零来计算。
-
给查询结果起别名:在列名后面加 as 别名。as可以不加
CREATE TABLE student( id int,--编号 name varchar(20),--姓名 age int,--年龄 se xvarchar(5),--性别 address varchar(100),--地址 math int,--数学 english int--英语 );
DQL条件查询
where 子句后面跟条件,
-- 查询姓名第二个字是化得人
select * from 表名 where 列名 like '_化%';
- 运算符:> , < , <= , >= , = , <>#表示不等于。
- between…and #在一个范围之内,包头包尾。
- in(集合) #集合表示多个值,使用逗号分隔开。
- is null #查询某一列为null的值。
- like #模糊查询。 占位符:_ 单个任意字符, % 多个任意字符。
排序查询
-
语法格式:
select * from 表名 order by 列名 排序的方式;
-
升序排列:ASC
-
降序排列:DESC
-
如果有多个排序条件时使用 逗号 隔开,当前一个排序方式相等时,才会启动次要的排序条件。
SELECT * FROM student ORDER BY math ASC , english DESC ;
聚合函数
特点:以一列数据用来计算
-
最大值 MAX(列名)
-
最小值 MIN(列名)
-
总和值 SUM(列名)
-
平均值 AVG(列名)
-
数据量 COUNT(列名)
-- 使用不可能出现null值的列进行计算 select count(列名) from 表名; -- 计算表中一共有多少条数据 select count(*);
分组查询
-
当使用分组查询的时候,查询的字段只能是分组字段或者聚合函数。
select 分组后的列 from 表名 group by 分组的列; -- 1. 如果想要在分组之前进行条件的限定 -> 需要使用WHERE -- 2. 如果想要在分组之后进行条件的限定 -> 需要使用HAVING
-
having和where的区别是什么?(面试题)
①WHERE用于分组之前条件的限定,HAVING分组之后条件的限定.
②WHERE后面不可以加聚合函数,HAVING可以添加聚合函数.
③HAVING用到了分组查询 -> 查询的字段分组字段/聚合函数,WHERE可以是任意字段.
分页查询
-
分页查询语法格式:
select * from 表名 limit 参数1,参数2; -- 参数1:开始查询的索引 -- 参数2:每页显示的条数
-
分页查询的开始索引计算方式:
LIMIT (要查询的页码-1) * 每页显示条数,每页显示的条数;