查询
一. 查询语句的标准结构
select
字段列表
from
表名
where
条件
group by
分组字段
having
分组后的条件
order by
排序方式
limit
分页方式
二. 基本查询
1、查询所有数据
select * from 表名;
2、查询所有记录的指定字段
select 字段1,字段2,... from 表名;
3、去重查询
select distinct 去重字段 from 表名;
4、起别名
as,as可以省略
5、计算字段值
查询的字段结果可是使用四则运算
null值不参与字段的计算
三. 条件查询
条件查询的格式:
select 字段列表 from 表名 where 条件;
3.1 运算符
- 比较运算符:>、 <、 >=、 <=、 !=、 =、 <>
- 在指定列表:in,例如:select * from emp where eage in (23,33,43); 查找表中eage字段值包含在列表中的记录
- 在指定范围内:between ... and ...,例如:select * from emp where eage between 23 and 33;查找表中eage字段值在 [23,33] 之间的记录
- 模糊查询:like,例如:
- select * from emp where ename like "张__"; 查找表中所有姓张名字是三个字的记录
- select * from emp where ename like "李_"; 查找表中所有姓李名字是两个字的记录
- select * from emp where ename like "%狗%"; 查找表中所有名字里带狗的记录
- 注:"_",表示任意字符出现1次;"%",表示任意字符出现任意次
- 逻辑运算符: and、&& 、or、||、not、!
- 判断是否(不)为空:is not null、is null
3.2 排序
格式:
order by 字段1 排序方式1,字段2 排序方式2,... ;
排序方式:
升序:asc(默认)
降序:desc
注:多个条件排序时,只有前一个字段值相同时,才会判断后面的条件
3.3 聚合函数
概念:将一列数据作为一个整体,进行纵向的计算
- sum:求和
- avg():求平均值
- max():求最大值
- min():求最小值
- count():求个数
注:
1、null值不参与聚合函数
2、count()中一般使用非空字段,例如:主键 或者 *
3.4 分组查询
格式:
group by 分组字段;
注:分组一般都和聚合函数一起使用
where 和 having的区别是什么?
1、where在分组之前筛选,如果不满足,则不分组;having在分组后筛选,如果不满足,则查不到。
2、where之后不可以跟聚合函数,having可以进行聚合函数的判断。
3.5 分页查询
格式:
limit 开始索引,每页查询的记录数
公式:开始索引 = ( 当前页码 - 1) * 每页显示的记录数
limit关键字是MySQL的方言