查询多个字段
select * from 表名;
select 字段1,字段2 from 表名;
去除重复 distinct
select distinct 字段 from 表名;
注意事项:如果查询的字段是多条, 必须多条字段中的值完全一致才会去重
计算列和起别名
- 计算列:
1.一般用在数值类型的计算
2.ifnull(字段,值), 如果该字段的值为null, 就设置一个值, 一般设为0
SELECT ifnull(字段,0)+ifnull(字段,0) from 表名;
- 起别名:
as 或者 字段后直接跟别名(可以省略)
定义别名后,可以在后面的查询语句中使用
select name 名字 from 表名;
select name as 名字 from 表名;
条件查询 where
之前的博客: https://blog.csdn.net/weixin_44737646/article/details/103295010
1.where子句后面跟的条件
2.运算符
1, < > <= >= = <> !=
2. between..and 在什么之间
3. like 模糊查询
4. in(集合)
5. is null 为空
6. and 并且
7. or 或者
8. not 取反 非
运算符的使用
in 集合的使用
between..and 在什么之间
模糊查询
排序 order by
排序分为升序(asc)和降序(desc)
排序方式
- 升序 : asc 默认的
- 降序: desc
select * from 表名 order by 字段 排序方式, 字段2 排序方式2;
注意事项:如果有多个排序方式,当前边的条件值一样时,才会判断后面的条件,再根据后面排序方式
聚合函数
之前的博客: https://blog.csdn.net/weixin_44737646/article/details/103299244
聚合函数: 将一列数据作为一个整体,进行纵向计算
count: 计算个数
max: 计算最大值
min 计算最小值
sum 计算总和
avg 计算平均值
select count(id) FROM 表名;
注意事项: 聚合函数的计算会排除null值,
解决方式:1.选择不包含非空的列进行计算 2.使用ifnull函数
分组查询 group by
语法: group by 分组字段
分组查询时,最好先分组再写查询的字段
SELECT 性别, avg(数学) from test1 GROUP BY 性别;
使用where条件查询
select sex,avg(math) from test1 where math > 70 GROUP BY sex;
配和having
select sex,avg(math) from test1 where math > 70 GROUP BY sex HAVING count(id)>2;
注意事项:
分组之后查询字段只能使用 分组字段 聚合函数 其他的字段没意义
where和having的区别
where在分组之前进行限定, 如果条件不满足,则不参与分组, having在分组之后进行限定,如果条件不满足,则不会被查询出来
where后不可以跟聚合函数, having可以进行聚合函数的判断
分页查询 limit
语法: limit 开始的索引, 每页查询的条数
比如查询2条数据, 下一页开始的索引就是+2
select * from test1 LIMIT 0,2;
select * from test1 LIMIT 2,2;
计算公式: 开始的索引 = (当前的页码数-1)*每页显示的条数