Mysql基础查询语法
DQL(Data Query Language) 数据查询语言
用来查询表中的数据。关键词:select,where等
*select * from 表名
1.语法
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定
2.基础查询
1. select 字段名1,字段名2 from 表名;
2.去重:distinct
3.计算列 (math+englishi)
*ifnull(表达式1 ,表达式2) ifnull(english 0) 如果english为null 则令它为0
4.起别名 as 可省略
3.条件查询
1.where 后跟条件
2.运算符 > < <= >= = <>
BETWEEN AND
IN(集合)
LIKE 模糊查询 姓马:‘马%’ 第二个字为化:‘_化%’ 名字三个字 ’___‘
姓名包含马 ’%马%‘
IS NULL
and && or || not !
4.排序查询
order by 排序字段1 排序方式1,排序字段2 排序方式2
order by math ASC , english desc 当math条件值一样时才会判断english
5.聚合查询
将一列作为整体进行纵向计算,
1.count:计算个数 一般选择非空的列:主键 count(id) count(*)
2.max计算最大值
3.min计算最小值
4.sum求和
5.avg平均数
注:聚合函数的计算,排除null值(导致求和的时候不合理)
解决方案:1.选择不包含非空的列(主键)进行计算 2.IFNULL函数
6.分组查询
1.group by 分组字段;
2.注意分组之后查询的字段:分组字段,聚合函数
select sex,AVG(math) from student group by sex;
3.where 和 having 的区别
select sex,AVG(math),COUNT(id) from student where math>70 group by sex;
select sex,AVG(math),COUNT(id) from student where math>70 group by sex having COUNT(id)>2 ;
1.where 在分组前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果结果不满足则过滤掉。
2.where后不可以跟聚合函数,having可以进行聚合函数的判断。
7.分页查询
1.语法:limit 开始的索引,每页查询的条数
2.公式:开始的索引=(当前页码-1)*每页显示的条数
select * from student limit 0,3 ;--第一页
select * from student limit 3,3 ;--第二页
select * from student limit 6,3 ;--第三页
3.limit 是mysql“方言”