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 查询语句执行顺序的主要内容,如果未能解决你的问题,请参考以下文章

MySQL查询语句及子句的执行顺序

MySQL查询语句及子句的执行顺序

MySQL查询语句及子句的执行顺序

MySQL查询语句及子句的执行顺序

MySQL的逻辑查询语句的执行顺序

python 3 mysql sql逻辑查询语句执行顺序