zoukankan      html  css  js  c++  java
  • MySQL,SQL语句执行顺序

    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中的全部元组都处理完毕 

  • 相关阅读:
    nyoj891找点(贪心)
    spark streaming方法
    spark submit打印gc信息
    spark dataframe方法解释
    structed streaming基础---跳过的坑
    scala学习---2
    增量式编码器定时器配置和速度计算的处理方法
    三次样条插补的实现
    增量式编码器计数的过零点处理问题
    串口发送带有使能引脚的注意事项
  • 原文地址:https://www.cnblogs.com/fanBlog/p/14205870.html
Copyright © 2011-2022 走看看