`
flex_莫冲
  • 浏览: 1090370 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

MySQL-SQL语句中SELECT语句的执行顺序

 
阅读更多
SELECT语句的执行顺序大家比较少关注,下面将为您详细介绍SQL语句中SELECT语句的执行顺序,供您参考,希望对您能够有所帮助。

SELECT语句的执行的逻辑查询处理步骤:

(8)SELECT (9)DISTINCT
(11)<TOP_specification> <select_list>
(1)FROM <left_table>
(3) <join_type> JOIN <right_table>
(2)  ON <join_condition>
(4)WHERE <where_condition>
(5)GROUP BY <group_by_list>
(6)WITH {CUBE | ROLLUP}
(7)HAVING <having_condition>
(10)ORDER BY <order_by_list>

每个步骤产生一个虚拟表,该虚拟表被用作下一个步骤的输入。只有最后一步生成的表返回给调用者。如果没有某一子句,则跳过相应的步骤。

1. FROM:对FROM子句中的前两个表执行笛卡尔积,生成虚拟表VT1。

2. ON:对VT1应用ON筛选器。只有那些使<join_condition>为真的行才被插入VT2。

3. OUTER(JOIN):如果指定了OUTER JOIN,保留表中未找到匹配的行将作为外部行添加到VT2,生成VT3。如果FROM子句包含两个以上的表,则对上一个联接生成的结果表和下一个表重复执行步骤1到步骤3,直到处理完所有的表为止。

4. 对VT3应用WHERE筛选器。只有使<where_condition>为TRUE的行才被插入VT4。

5. GROUP BY:按GROUP BY 子句中的列列表对VT4中的行分组,生成VT5。

6. CUBE|ROLLUP:把超组插入VT5,生成VT6。

7. HAVING:对VT6应用HAVING筛选器。只有使<having_condition>为TRUE的组才会被插入VT7。

8. SELECT:处理SELECT列表,产生VT8。

9. DISTINCT:将重复的行从VT8中移除,产生VT9。

10. ORDER BY:将VT9中的行按ORDER BY子句中的列列表排序,生成一个有表(VC10)。

11. TOP:从VC10的开始处选择指定数量或比例的行,生成表VT11,并返回给调用者。
分享到:
评论

相关推荐

    Effective MySQL之SQL语句最优化.pdf

    尽管如此,我将基于标题和描述中提供的关键词“Effective MySQL之SQL语句最优化”来构建知识点。 1. SQL语句最优化的概念:在数据库管理中,对SQL语句进行优化是提高数据库性能的关键环节。最优化的SQL语句能够在...

    mysql-connector-java-5.1.40.zip和mysql-connector-java-5.1.10.jar

    4. **处理结果集**:对于SELECT语句,执行后会返回ResultSet对象,可以遍历并处理查询结果。 5. **关闭资源**:完成操作后,应关闭ResultSet、Statement和Connection,以释放数据库资源。 在版本差异上,5.1.40相...

    省市区字典sql-mysql-sqlserver.zip

    标题 "省市区字典sql-mysql-sqlserver.zip" 暗示了这是一个关于数据库管理系统的资源包,其中包含了适用于MySQL和SQL Server两种数据库的SQL语句,主要用于实现省市区的三级联动功能。这种功能常见于地理信息系统的...

    SQL语句执行深入讲解(MySQL架构总览-查询执行流程-SQL解析顺序)

    本文将深入探讨MySQL数据库系统中的SQL语句执行过程,包括MySQL的架构总览、查询执行流程以及SQL语句的解析顺序。 首先,我们来看MySQL的架构总览。MySQL架构分为两个主要层次:SQL Layer(SQL层)和Storage Engine...

    Mysql常用SQL语句

    下面是MySQL中一些常用的SQL语句: 创建、删除和基本查询 * 显示数据库:`show databases;` * 创建数据库:`create database db;` * 删除数据库:`drop database db;` * 选择数据库:`use db;` 创建和删除表 * ...

    PB 从SQL语句获取数据存储(MySQL)

    标题 "PB 从SQL语句获取数据存储(MySQL)" 指的是使用PowerBuilder (PB) 开发工具,通过SQL语句从MySQL数据库中检索和处理数据存储的过程。在这个Demo中,PB11.5 版本被用作开发环境,而MySQL作为后台数据库系统。...

    sql语句、动态SQL语句基本语法

    在数据库管理系统(如MySQL、Oracle、SQL Server等)中,SQL语句是不可或缺的一部分。 1. SQL基础语法 SQL的基础语法包括SELECT、INSERT、UPDATE、DELETE四大语句,它们分别用于查询、插入、更新和删除数据。 - ...

    mysql连接包mysql-connector-java-5.1.27.jar

    这是Java访问数据库的标准接口,提供了多种类和接口,如`java.sql.DriverManager`,`java.sql.Connection`,`java.sql.Statement`,`java.sql.ResultSet`等,它们使得开发人员能够创建数据库连接,执行SQL语句并处理...

    mysql-connector-java-5.1.47 jar包

    - `java.sql.Statement`: 用于执行SQL语句,如SELECT、INSERT、UPDATE和DELETE。 - `java.sql.PreparedStatement`: 提供预编译的SQL语句,性能更优,适用于多次执行相同的SQL。 - `java.sql.ResultSet`: 存储查询...

    多种典型T-SQL语句、备份、优化、常见问题处理集合包.rar

    这个压缩包“多种典型T-SQL语句、备份、优化、常见问题处理集合包.rar”显然是一个专门为SQL Server用户和学习者设计的学习资源,涵盖了从基本的查询到复杂的数据库管理技巧。以下是对这些主题的详细说明: 1. **T-...

    mysql-connector-java-5.1.44

    `Statement`接口用于执行静态SQL语句,而`PreparedStatement`用于预编译SQL语句,提高性能并防止SQL注入攻击。例如: ```java Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(...

    Mysql数据库驱动mysql-connector-java-5.1.41-bin.jar

    它是MySQL官方提供的JDBC(Java Database Connectivity)驱动程序,允许Java开发者在Java环境中执行SQL语句,进行数据的增删改查等操作。 1. **JDBC驱动**: JDBC是Java平台上的标准接口,由Java SDK提供,用于...

    MySQL SQL语句练习题及答案

    MySQL SQL语句练习题及答案 本资源提供了 MySQL SQL 语句的练习题及答案,涵盖了创建表、插入数据、删除数据、更新数据、查询数据等多方面的知识点。 一、创建表 在 MySQL 中,创建表使用 CREATE TABLE 语句。...

    MySQL-connector-java-8.0.28

    5. 执行SQL查询:通过Statement对象的executeQuery()或executeUpdate()方法执行SQL语句。如果是SELECT查询,会返回ResultSet对象;如果是INSERT、UPDATE、DELETE等操作,会返回受影响的行数。 6. 处理结果集:如果...

    mysql-connector-java-5.1.26.jar

    mysql-connector-java-5.1.26.jar包含了MySQL JDBC驱动的所有必要类和资源,使得Java应用可以通过JDBC API连接到MySQL服务器,执行SQL语句,如SELECT、INSERT、UPDATE、DELETE等操作。它支持标准JDBC接口,如...

    介绍六个有用的MySQL的SQL语句

    MySQL SQL 语句实践指南 MySQL 是一种广泛使用的关系数据库管理系统,SQL 语句是其核心组成部分。今天,我们将介绍六个有用的 MySQL SQL 语句,帮助您更好地使用 MySQL 数据库。 1. 计算年数 计算年数是日常生活...

    《Effective MySQL之SQL语句最优化》手册

    《Effective MySQL之SQL语句最优化》是一本深入探讨如何提升数据库性能的专业手册,它针对SQL语句的优化提供了一系列实用且高效的策略。在数据库管理领域,SQL优化是提升系统性能的关键环节,尤其是在处理大数据量时...

    sql语句大全(详细).pdf

    - SQL语句:`SELECT 列1, 列2, ... FROM 表名;` - 示例:`SELECT id, name FROM classes;` - 解释:此命令只返回表中特定列的数据。 #### 增加数据 1. **全列插入** - SQL语句:`INSERT INTO 表名 VALUES (......

    mysql-connector-java-5.1.7-bin.jar

    这个驱动实现了Java.sql和javax.sql接口,使得开发者能够在Java程序中执行SQL语句、处理结果集、管理事务等操作。 在描述中提到的"mysql-connector-java-5.1.7"是该驱动的版本号,表示这是MySQL Connector/J的一个...

    Python使用sql语句对mysql数据库多条件模糊查询.pdf

    Python 使用 SQL 语句对 MySQL ...使用 Python 对 MySQL 数据库进行多条件模糊查询需要我们使用字符串拼接的方式构建 SQL 语句,并执行 SQL 语句获取查询结果。同时,我们需要注意参数是否为空,并避免 SQL 注入攻击。

Global site tag (gtag.js) - Google Analytics