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%‘;
时间: 2024-12-20 10:39:29

MySQL 查询语句执行顺序的相关文章

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

python 3 mysql sql逻辑查询语句执行顺序 一 .SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <havin

mysql第四篇--SQL逻辑查询语句执行顺序

mysql第四篇--SQL逻辑查询语句执行顺序 一.SQL语句定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <having_condition&g

mysql五补充部分:SQL逻辑查询语句执行顺序

阅读目录 一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition>

45、SQL逻辑查询语句执行顺序

一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <having_condition> ORDER BY <o

第四篇:记录相关操作 SQL逻辑查询语句执行顺序

http://www.cnblogs.com/linhaifeng/articles/7372774.html 一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by

(转载)MySQL select 语句执行顺序

Mysql-----from子句-> join子句-> on子句-> where子句 -> group子句-> having子句-> select子句 ->order by子句 -> limit子句 (7)  SELECT (8)  DISTINCT <select_list>(1)  FROM <left_table>(3)  <join_type> JOIN <right_table>(2)  ON <

SQL逻辑查询语句执行顺序

SELECT语句语法顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <having_condition> ORDER BY <order_b

MySQL的语句执行顺序

MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FROM操作,最后执行的是LIMIT操作.其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回.如果没有在语句中指定某一个子句,那么将会跳过相应的步骤. 下面我们来具体分析一下查询处理的每一个阶段 FORM: 对FROM的左边的表和右边的表计算笛卡尔积.产生虚表VT1 ON: 对虚表VT1进行ON筛选,只有那些符合<join-condit

select查询语句执行顺序

查询中用到的关键词主要包含六个,并且他们的顺序依次为select--from--where--group by--having--order by其中select和from是必须的,其他关键词是可选的,这六个关键词的执行顺序与sql语句的书写顺序并不是一样的,而是按照下面的顺序来执行 from--where--select--group by--having--order by, from:需要从哪个数据表检索数据where:过滤表中数据的条件 , rownum分配给每个输出行并增1select