MySQL查询
基础查询
查询多个字段
select 字段表 from 表名;
select * from 表名; --查询所有数据
去除重复记录
select distinct 字段 from 表名
起别名
select 字段 as 别名 from 表名;
条件查询(where)
语法:
select 字段列表 from 表名 where 条件列表;
时间的比较可以用:between……and……进行查询
对比null值不能使用= != 进行比较,需要使用is或者is not
排序查询(order by)
语法
select 字段列表 from 表名 order by 排序字段名1[排序方式1],排序字段名2[排序方式2]...;
排序方式:
- ASC:升序排序(默认值)
- DESC:降序排序
注意:如果有多个排序条件,当前边的条件值一样时,才会根据第二个条件进行排序
分组查询
聚合函数
分类
函数名 | 功能 |
---|---|
count(列名) | 统计数量(一般选用不为null的列) |
max(列名) | 最大值 |
min(列名) | 最小值 |
sum(列名) | 求和 |
avg(列名) | 平均数 |
语法
select 聚合函数名(列名) from 表;
注意:null值不参与所有的聚合函数运算
分组查询
语法
select 字段列表 from 表名 [where 分组前条件限定] group by 分组字段名 [having 分组后条件过滤];
注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义
where和having区别:
- 执行时机不一样:where时分组之前进行限定,不满足where条件,则不参与分组,而且having是分组之后对结果进行过滤
- 可判断的条件不一样:where不能对聚合函数进行判断,having可以
执行条件:where > 聚合函数 > having
例子:
分页查询(limit)
语法
select 字段列表 from 表名 limit 起始索引, 查询条目;
起始索引从0开始
计算公式:起始索引 = (当前页码 - 1)* 每页显示条数
例子:
数据库设计
总结
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组后条件
order by
排序后条件
limit
分页限定