1.排序:对已经查出来的结果进行排序
关键字:order by / desc(降序) asc(升序默认的)
select * from 表名 order by 列名 desc;
select * from 表明 order by 列名 asc
2.运算符
select * from 表名 where sex='男';
select * from 表名 where c_name='语文';
3.连接符
关键字:and且关系(前后两个条件必须同时满足) or或关系(两者满足其中之一即可)
# 需求:性别为女且年龄为20的员工
select * from emp where sex='女' and age=20;
# 需求:性别为男或年龄为20的
select * from emp where sex='男' or age=20;
# 需求:性别为男且年龄为20的员工或员工id<6
select * from emp where sex='男' and age=20 or eno<5;
4.in/not in
在in的括号中可以给定多个参数值,参数值之间的条件是或关系,且不一定非要满足。
# 需求:查询指定班级的学生信息
select * from biao where ban in(9,4,8,2,3,1,5,6,7);
5.聚合函数
关键字:
sum()求和(列的和)
count()求总行数
max()求最大值
min()求最小值
avg()求平均值
行求和(如果列的值存在null,结果也是null,此时可以使用ifnull()进行运算时默认值的设置)
# 1 需求:求员工编号与部门编号的和
select eno + dno from biao;
# 2 ifnull(arg0,arg1) arg0代表可能为null的列,arg1代表如果为空要进行代替的值
select eno + ifnull(dno,0) from biao;
求最大值(max())
# 求最大的部门编号
select max(dno) from biao;
求平均值(avg())
# 求部门的平均值
select avg(dno) from biao;
6.分组 group by
# 需求:求男生和女生的人数
select sex,count(sex) from biao group by sex;
having条件(结合group by使用,在分组的基础上再次进行筛选)
# 需求:求男生女生人数在3个以上的员工信息
select sex,count(sex) from biao group by sex having count(sex)>3;
having和where的区别:
- where是直接跟在表的后面的条件,having是跟在group by后面的条件
- having的使用需要结合group by,group by在进行分组的时候是很耗性能的
7.别名
仅仅只是在当前要显示的结果中生效,起到简化及通俗易懂的效果
关键词:as
8.分页
关键词:limit(该关键词只能在MySQL中使用)*
limit arg0,arg1; arg0代表起始下标(数据库中的下标是从0开始的),arg1代表要查询的条数
# 需求:查询前四条数据
select * from biao limit 0,4;
(个人笔记有待补充,仅供参考)