ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL,SQL语句执行顺序

2020-12-29 12:34:31  阅读:278  来源: 互联网

标签:语句 子句 总成绩 SQL 查询 Sno MySQL 元组 WHERE


1.SQL执行顺序:

select 考生姓名, max(总成绩) as max总成绩 
from tb_Grade 
where 考生姓名 is not null 
group by 考生姓名 
having max(总成绩) > 600 
order by max总成绩 

(1). 首先执行 FROM 子句, 从 tb_Grade 表组装数据源的数据 

(2). 执行 WHERE 子句, 筛选 tb_Grade 表中所有数据不为 NULL 的数据 
(3). 执行 GROUP BY 子句, 把 tb_Grade 表按 "学生姓名" 列进行分组 
(4). 计算 max() 聚集函数, 按 "总成绩" 求出总成绩中最大的一些数值 
(5). 执行 HAVING 子句, 筛选课程的总成绩大于 600 分的. 

(6)执行select 把满足条件的考生姓名和总成绩选出,并给予别名

(7). 执行 ORDER BY 子句, 把最后的结果按 "Max 成绩" 进行排序. 

2.子查询:

2.1 不相关子查询

    SELECT Sno,Sname,Sdept
    	FROM Student
   	WHERE Sdept  IN
                  (SELECT Sdept
                   FROM Student
                   WHERE Sname= ‘ 刘晨 ’);

  

子查询的查询条件不依赖于父查询
由里向外 逐层处理。即每个子查询在上一级查询处理之前求解,子查询的结果用于建立其父查询的查找条件。 

2.2 相关子查询

子查询的查询条件依赖于父查询,首先取外层查询中表的第一个元组,根据它与内层查询相关的属性值处理内层查询,若WHERE子句返回值为真,则取此元组放入结果表,然后再取外层表的下一个元组,重复这一过程,直至外层表全部检查完为止

 

2.3 执行顺序:

查询选修了课程名为“信息系统”的学生学号和姓名
SELECT Sno,Sname 
FROM    Student                                 ③ 最后在Student关系中取出Sno和Sname

WHERE Sno  IN
       ( SELECT Sno                              ② 然后在SC关系中找出选修了3号课程的学生学号

                FROM    SC
                WHERE  Cno IN
                     ( SELECT Cno 
                       FROM Course
                       WHERE Cname= ‘信息系统’  ① 首先在Course关系中找出“信息系统”的课程号,结果为3号课程

                     )
              );

 

3.表连接执行顺序:

首先在表1中找到第一个元组,然后从头开始扫描表2,逐一查找满足连接件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。
表2全部查找完后,再找表1中第二个元组,然后再从头开始扫描表2,逐一查找满足连接条件的元组,找到后就将表1中的第二个元组与该元组拼接起来,形成结果表中一个元组。
重复上述操作,直到表1中的全部元组都处理完毕 

标签:语句,子句,总成绩,SQL,查询,Sno,MySQL,元组,WHERE
来源: https://www.cnblogs.com/fanBlog/p/14205870.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有