目录
查询语句是select ... from...
select 用于指定查询的字段
from 用于指定查询的表
select id , name from mysql.user;
查询关键字where
可以支持比较运算 > >= < <=...
可以支持逻辑运算 and or not
可以支持成员运算 in, not in
可以支持身份运算 is # 针对NULL 不能用=, 只能用is 查询为空 is null
可以支持模糊查询 like(% -)
group by 分组
select post from emp group by post;
按照指定的条件将单个的个体组织成一个整体, 分组之后我们的研究对象就变成了以组为单位,
不能再直接获取单个数据,否则就会报错.
5.6版本之后的分组可以直接获取分组以外的以他字段
5.7 和 8.0 分组之后默认只能直接获取分组的字段 >> 更合理一些
可以通过修改sql_mode 的方式进行更改
sql_mode = 'only_full_group_by'
聚合函数
专门用于分组之后的数据统计
max 统计最大值
min 统计最小值
sum 统计求和
count 统计计数
avg 统计平均值
拼接操作
group_concat(分组之后用)不仅可以用来显示除分组外字段还有拼接字符串的作用字段别名
select id as '序号', name as '姓名' from emp;
having 过滤
having 与 where 的功能是一模一样的, 都是对数据进行筛查,
where 用在分组之前的筛选, having 用在分组之后的筛选.
distinct 去重
去重的前提是 数据必须一模一样才可以, 如果数据有主键肯定无法去重
select distinct age from emp;
order by 排序
select * from emp order by age asc # 默认升序排列, asc可以不用写
select * from emp order by age desc # 降序排列
limit 分页
select * from emp limit 5;
select * from emp limt 5,5;
limit 分页的好处是节省资源,防止系统奔溃(数据量过大时,一点点展示我们需要的数据)
正则regexp
select * from emp where name regexp '^o.*(n|y)$';