四、查询数据
1) 多个字段的查询:
语法
select 字段名1,字段名2… from 表名;
注意:
如果查询所有字段,则可以使用*来替代字段列表。
去除重复:distinct
计算列
(1) 一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
(2) ifnull(表达式1,表达式2):null参与的运算,计算结果都为null
(3) 表达式1:哪个字段需要判断是否为null
(4) 如果该字段为null后的替换值。
起别名:as:as也可以省略
2)条件查询:
where子句后跟条件
运算符:
(1) != 、 > 、< 、<= 、>= 、= 、<>
(2) BETWEEN…AND
(3) IN( 集合)
(4) LIKE:模糊查询
(5) 占位符:
(6) _:单个任意字符
(7) %:多个任意字符
(8) IS NULL :为空集
(9) and 或 &&:并且
(10) or 或 || :或
(11) not 或 !:非
3)查询语句:
排序查询
(1) 语法:order by 子句
(2) order by 排序字段1 排序方式1 , 排序字段2 排序方式2…
(3) 排序方式: ASC:升序,默认的; DESC:降序。
注意: 如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。
聚合函数:将一列数据作为一个整体,进行纵向的计算。
(1)count:计算个数
- 一般选择非空的列:主键
- count(*)
(2) max:计算最大值
(3) min:计算最小值
(4) sum:计算和
(5) avg:计算平均值
注意:聚合函数的计算,排除null值。
解决方案:
(1) 选择不包含非空的列进行计算
(2) IFNULL函数
4)分组查询:
语法:group by 分组字段;
注意:
(1) 分组之后查询的字段:分组字段、聚合函数
(2) where 和 having 的区别?
- where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
where 后不可以跟聚合函数,having可以进行聚合函数的判断。
5)分页查询:
语法:limit 开始的索引,每页查询的条数;
公式:开始的索引 = (当前的页码 - 1) * 每页显示的条数-- 每页显示3条记录