数据库中数据的查询是很重要的一部分,也是分类对多,重点记忆的部分,这就是我把它单拿出来记录的原因
基础查询语法:
select * from 表名;
语法:
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件限定
order by
排序
limit
分页限定
1. 单个字段的查询
select 某个字段名 from 表名;
2. 去除重复
select distinct 某个字段名,另个字段名(只有两个字段都重复时才会去除) from 表名 ;
3、计算某些字段
select 某个字段+某个字段 from 表名
如果有null元素参与运算 ,计算结果都是null
ifnull(有可能为null的字段名,如果是null后替换集)
4、修改字段名
select 列名 as 替换的列名,列名 (空格) 替换的列名 ……from 表名;
条件查询
1、where 子句后跟条件
2、运算符
< > <= >= = <>
between ……and……
in(集合)
select * from 表名 where 某个字段名 in (可以选择的字段值 )
**like**
模糊查询
_:单个任意字符
%:多个任意字符
is null
null值不可以使用 = 来判断
and 或 &&
or或||
not或!
排序查询
语法:order by 排序字段 排序方式
多个字段排序
order by 字段一 排序方式,字段二 排序方式2……当字段一数值相等时,判断第二个字段进行排序
排序方式:
asc:升序,默认的
desc :降序
聚合函数
将一列数据作为一个整体,进行纵向计算
1. count:计算个数
select count (计算的字段名)from 表名
select count (ifnull(字段名,替换值))from 表名
select count(*) from 表名 ;只要一列中有一个值非空,就会计算
3. max:计算最大值
4. min:计算最小值
5. sum:计算和
6. avg:计算平均值
注意:集合函数的计算排除了null值,用 ifnull 方法将null只进行替换
分组查询
语法:group by
注意:分组之后的查询字段:分组字段、聚合函数”
select 字段名 ,字段名 from 表名 group by 字段
分组条件
select 字段名 ,字段名 from 表名 where 条件 group by 字段
符合条件的元组才会进行分组
having :对查询结果进行条件限制
where和having 的区别
1、where在分组之前进行限定,不符合条件不会参与分组
2、having 在分组之后进行限定,不符合条件不会被查询
3、where 后跟聚合函数,having 后可以跟聚合函数
分页查询
语法:limit 开始的索引,显示的条数;
select * from 表名 limit 开始的索引,显示的条数;
开始的索引=(当前页数-1)*每页显示的条数
分页操作是一个“方言”,limit 是mysql 特有的方法