# 作用:给显示结果中字段名表名 起别名select id as'序号'from 表名;# 在 MySQL 中 as 可以省略select id '序号'from 表名;
distinct去重
# 作用:把结果中的重复行去除selectdistinct 字段名 from 表名;
limit分页
# 起始下标从0开始select*from subject limit1,3;# 排序 + 分页(先排序后分页)select id from subject orderby id desclimit5;
order by排序
asc 升序(ascend)desc 降序(descend)select*from students orderby age asc;(升序默认可以不写)select*from students orderby age desc;# 多个字段排序意义(当条件1重复时按条件2排序)select*from students orderby age, height desc;
group by分组
-- 1 group_concat 将每个分组的某个字段的数据拼接在一起显示-- select * from students group by gender; 分组数据不再是二维结构所以出错select gender from students groupby gender;
mysql>select gender,group_concat(name),group_concat(id)from students groupby gender;-- 2 聚合+分组-- 默认情况下聚合是把整个表当做一个组得到一个值-- 结合使用 聚合会将每个小分组分别进行统计计算 得到一个值 select gender,group_concat(name),avg(age)from students groupby gender;-- 3 分组条件 having 条件-- 查看分组 平均年龄小于 100 岁的分组select gender,group_concat(name),avg(age)from students groupby gender havingavg(age)<100;
mysql>select gender,group_concat(name)from students groupby gender havingcount(*)>3;-- 4 新增汇总行 with rollup 将整个表进行一个汇总处理
mysql>select gender,group_concat(name),avg(age)from students groupby gender with rollup;
where
# 作用:筛选表中满足条件的记录# 关系运算符 <> != 不等于 =select*from students where age !=100;select*from students where age <>100;# 逻辑运算符 and or not (并且 或者 取反)select*from students where age<100and height<160;select*from students where age<100or height<160;select*from students wherenot age>100;# 模糊查询 like %(任意个任意字符) _(一个任意字符)select name from subject where name like'%语%';select name from subject where name like'_语%';# 连续范围select*from subject where10< id <5;select*from subject where id between10and20;# 非连续范围select*from subject where id in(1,5,15);select*from subject where id notin(1,5,15);# 判空操作 is null(是空) is not null(是非空) select*from students where height isnull;select*from students where height isnotnull;