SQL语句执行顺序详解

yizhihongxing

下面我将为您详细讲解SQL语句执行顺序。

首先,SQL语句的执行顺序分为以下几个步骤:

  1. FROM子句中的表被返回,并生成一个虚拟表。这个虚拟表包含了所有从FROM子句中选择的表,并于其他关联表组成的列进行组合(如果有的话)。在这一步中,服务器还会检查该用户是否具有访问表的权限。
  2. WHERE子句中的所有条件会被检查,只有那些能够得到true或不为false的条件才会被考虑。
  3. GROUP BY子句操作会按照列的指定进行汇总。此外,还可以在SELECT语句中定义表达式和别名,以便于使用这些定义的别名进行分组操作。
  4. HAVING子句在GROUP BY子句结果的基础上检查每一行,如果有行不满足条件,就将其排除。
  5. SELECT语句中的所有表达式(即SELECT后面的所有列)被计算。
  6. DISTINCT将会检查前面是否有重复行,并删除这些重复行。
  7. ORDER BY将会遍历执行计划,以此确定结果集应该按照哪个或哪些列进行排序。
  8. LIMIT将在得到要返回的行之后,选择针对结果集的行数进行限制。

下面,我来给您举两个使用SQL语句的示例:

例1:查询学生成绩表中不及格的学生名单

SELECT name, score
FROM student_scores
WHERE score < 60;

在这个查询中,先从学生成绩表中选出其包含的数据,然后WHERE子句中的条件会被检查,只有分数小于60的被考虑, 在SELECT语句中选择出要展示的列,最后返回符合要求的结果。

例2:以订单号为条件,查询该订单内所有商品的名称及价格,并按照价格降序排列

SELECT item_name, price
FROM orders
JOIN order_items ON orders.order_id = order_items.order_id
JOIN items ON order_items.item_id = items.item_id
WHERE order.order_id = '12345'
ORDER BY price DESC;

在这个查询中,也是先从订单表、订单详情表和商品表中选出其包含的数据,然后使用JOIN将三张表相互关联,在WHERE子句中选出指定订单号的订单,然后在SELECT语句中选择要展示的列,最后按照价格降序排列返回符合要求的结果。

希望这个SQL语句执行顺序的攻略对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SQL语句执行顺序详解 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • MySQL事务与隔离级别的使用基础理论

    MySQL事务与隔离级别的使用基础理论攻略: 事务 在MySQL中,事务是指一组原子性、一致性、隔离性和持久性的操作。所谓原子性,是指一个事务中的所有操作要么全部成功,要么全部失败;一致性指事务执行后,系统状态必须保持一致状态;隔离性指各个事务之间相互独立、互不干扰;持久性指事务提交后,对于数据的修改必须永久保存。MySQL中,通过使用BEGIN、COMMI…

    database 2023年5月21日
    00
  • Starting MySQL.Manager of pid-file quit without updating file.[FAILED]的解决方法

    解决步骤如下: 1. 检查MySQL服务是否已经启动 运行以下命令检查MySQL服务是否已经正在运行: systemctl status mysql 如果该命令输出类似下面的结果,则表示MySQL服务正在运行: ● mysql.service – MySQL Community Server Loaded: loaded (/lib/systemd/syst…

    database 2023年5月22日
    00
  • SQL2008 详解直接将XML存入到SQL中

    SQL Server 2008 允许将 XML 数据存储在数据库中,有两种方式: XML 数据类型和 XML 数据库。其中 XML 数据类型是指将 XML 数据存储在表的列中,而 XML 数据库是指将 XML 数据存储在专用的 XML 数据库中。 在本文中,我们将重点讲解如何使用 XML 数据类型将 XML 存储在 SQL Server 2008 中。具体的…

    database 2023年5月21日
    00
  • MySQL索引的基本语法

    MySQL索引是提高MySQL查询性能的重要手段,本文将带您了解MySQL索引的基本语法,包括创建、添加和删除索引,以及查看和优化索引等相关操作。 1. 创建索引 在MySQL中,可以通过 CREATE INDEX 创建索引,语法如下: CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name ON table_na…

    database 2023年5月22日
    00
  • Mysql表的操作方法详细介绍

    我来为您详细讲解 Mysql 表的操作方法。下面将包含创建、修改、删除表格等操作。 创建表格 要创建一个表格,您需要使用 CREATE TABLE 语句。以下是创建表格的基本语法: CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype, …. ); 其…

    database 2023年5月22日
    00
  • 关于Linux服务器磁盘空间占满问题的解决方法

    关于 Linux 服务器磁盘空间占满问题,一般有以下几种解决方法。 一、查找占用空间大的文件 执行du -ah –max-depth=1 / | sort -hr命令,查找空间占用最大的文件或目录。 例如,运行上面的命令后,可以看到类似下面的输出结果: 2.5G / 2.5G /usr 1.2G /var 854M /opt 692M /home … …

    database 2023年5月22日
    00
  • SQL Server中JSON函数的用法详解

    SQL Server中JSON函数的用法详解 本文将为大家详细讲解SQL Server 中JSON函数的用法,包括以下部分:1. JSON数据类型介绍2. JSON的查询、修改、删除和插入3. SQL Server中JSON函数的详细说明4. 函数示例说明 1. JSON数据类型介绍 在SQL Server2016中首次引入了JSON数据类型,使我们可以在S…

    database 2023年5月21日
    00
  • 查看MySQL的系统帮助文档的3种方式

    在 MySQL 中,你可以使用以下几种方式查看系统帮助: 使用 HELP 命令 在 MySQL 的命令行界面中,你可以使用 HELP 命令来获取系统帮助。例如,输入以下命令: mysql> HELP; 这将显示 MySQL 帮助菜单的一部分,其中包括常用命令的简要说明。 如果你想查看某个命令的详细帮助信息,可以在 HELP 后面加上该命令的名称。例如,…

    MySQL 2023年3月9日
    00
合作推广
合作推广
分享本页
返回顶部