MySQL 查询语句执行顺序
Posted JennyYIN
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 查询语句执行顺序相关的知识,希望对你有一定的参考价值。
mysql查询语句时候一共分为11步,其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回。
语句执行顺序 :
顺序 |
名称 | 内容 |
---|---|---|
1 |
SELECT |
命令发起 |
2 |
* 或 AVG(字段)等 | 查询内容 |
3 |
FROM |
查询位置 |
4 |
WHERE |
条件查询 |
5 |
GROUP BY |
分组 |
6 |
HAVING |
筛选 |
7 |
ORDER BY (ASC/DESC) |
排序 |
8 |
LIMIT |
限制结果数 |
1、单表查询
- 查询指定的列
-- 在学生表中查询学号、姓名; select sno, sname from student ;
- 查询全部列
-- 查询学生表中全部信息 select * from student;
- 对查询后的列进行 起别别名
-- 查询全部学生的“姓名”及其“出生年”两列 select sname as 姓名,(2017-Sage) as 出生年 from student;
- 单条件查询
-- 查询职位是 salesman 的记录; select * from emp where job=‘Salesman‘
- 多条件查询
-- 查询部门在10 或 20 的记录 select * from emp where deptno=10 or deptno=20; -- 查询部门在10的 或者部门在20且薪水小于2000的记录 select * from emp where deptno=10 or (deptno=20 and sal<=2000);
去重查询 ,使用 <distinct 列名> 语句
-- 查询选修了课程的学生学号 select distinct sno as 选修了课程的学生学号 from score;
- 查询空值(NULL)
-- 查询没有先修课的课程号和课程名。 select Cno as 课程号,Cname as 课程名,Cpno from course where Cpno is null; -- 查询所有有成绩的学生学号、课程号及成绩 select Sno as 学号,Cno as 课程号,Grade as 成绩 from SC where Grade is not null;
- 将NULL转化为实际值 ,使用 <coalesce(列名,替换值)>语句
-- 查询津贴为NULL ,替换为0 select coalesce(comm,0) from emp;
- 模糊查询 (LIKE % _ 语句) %表示任意字符;_表示单个字符
--查询员工姓名以a开头的记录 select * from emp where ename like ‘a%‘; --查询员工姓名中包含a的记录 select * from emp where ename like ‘%a%‘; --查询员工姓名第二个字母以a开头的记录 select * from emp where ename like ‘_a%‘;
以上是关于MySQL 查询语句执行顺序的主要内容,如果未能解决你的问题,请参考以下文章