`

sql语句解析顺序

阅读更多
标准的 SQL 的解析顺序为:
(1).FROM 子句, 组装来自不同数据源的数据
(2).WHERE 子句, 基于指定的条件对记录进行筛选
(3).GROUP BY 子句, 将数据划分为多个分组
(4).使用聚合函数进行计算
(5).使用 HAVING 子句筛选分组
(6).计算所有的表达式
(7).使用 ORDER BY 对结果集进行排序


举例说明: 在学生成绩表中 (暂记为 tb_Grade), 把 “考生姓名”内容不为空的记录按照 “考生姓名” 分组, 并且筛选分组结果, 选出 “总成绩” 大于 600 分的.
标准顺序的 SQL 语句为:
select 考生姓名, max(总成绩) as max总成绩
from tb_Grade
where 考生姓名 is not null
group by 考生姓名
having max(总成绩) > 600
order by max总成绩

在上面的示例中 SQL 语句的执行顺序如下:
(1). 首先执行 FROM 子句, 从 tb_Grade 表组装数据源的数据
(2). 执行 WHERE 子句, 筛选 tb_Grade 表中所有数据不为 NULL 的数据
(3). 执行 GROUP BY 子句, 把 tb_Grade 表按 “学生姓名” 列进行分组
(4). 计算 max() 聚集函数, 按 “总成绩” 求出总成绩中最大的一些数值
(5). 执行 HAVING 子句, 筛选课程的总成绩大于 600 分的.
(7). 执行 ORDER BY 子句, 把最后的结果按 “Max 成绩” 进行排序. copyright 好易用

总结: copyright 好易用

select A
from B
where C
group by D
having E
order by F

顺序:
查询将在B中按照C条件获取数据,并过滤出结果数据集的字段A,–>
将得到的数据按照D进行分组。所以D必须是A中的某一个/多个字段–>
对分组进行筛选。所以E也必须是A中的某一个/多个字段–>
对筛选进行排序。所以E也必须是A中的某一个/多个字段
分享到:
评论

相关推荐

    sql解析顺序

    SQL 语句的解析顺序是一个复杂的过程,它涉及到多个步骤和子句的执行顺序。在这篇文章中,我们将详细地讲述 SQL 语句的解析顺序,包括 FROM、WHERE、GROUP BY、HAVING、SELECT 等子句的执行顺序。 首先,FROM 子句...

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

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

    HW_SQL_TOOL.rar_SQL 解析_python sql_sql解析_sql语句 python_tool

    Python有许多库支持SQL解析,例如`sqlparse`,它是一个非执行性的SQL解析库,可以解析SQL语句并返回一个解析树。 在描述中提到的"Python SQL 结构处理类"可能是一个自定义的Python类,它扩展了`sqlparse`或者其他...

    sql语句中用问号代替参数

    注意,参数的位置是基于它们在SQL语句中出现的顺序,从1开始计数。 ### 总结 使用问号参数化查询是编写安全、高效SQL语句的关键实践。它不仅可以防范SQL注入,还能优化性能,同时减少因字符串拼接导致的潜在错误。...

    Sql语句收藏 Sql语句收藏

    ### SQL语句一 #### 原始SQL语句: ```sql select *, (select count(0) from [picture] where album_id = [album].id) as piccount From [Album] Where id in (5,6,8,1,3,4) orderby charindex(',' + ltrim(rtrim...

    通过分析SQL语句的执行计划优化SQL.doc

    当一条SQL语句首次执行并解析后,其执行计划会被存储在系统全局区域SGA的共享池中,供后续相同的SQL语句复用,避免重复解析带来的资源消耗。共享SQL语句的关键在于SQL文本的严格匹配,包括空格、换行等细节。通过...

    非常好用的SQL语句优化34条+sql语句基础

    以下是对"非常好用的SQL语句优化34条+sql语句基础"这一主题的详细解析: 1. **索引优化**:索引是提高查询速度的关键。创建合适的索引(主键、唯一索引、全文索引等)能显著提升数据检索效率。但同时要注意,过多的...

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

    ### SQL语句中SELECT语句的执行顺序 在SQL语言中,`SELECT`语句是进行数据查询的核心工具。为了确保查询结果的准确性和效率,理解`SELECT`语句内部的执行顺序至关重要。本文将详细解析`SELECT`语句各子句的执行...

    Oracle数据库sql语句的基本操作详解

    本文将深入解析Oracle SQL语句的基本操作,帮助初学者更好地理解和应用这些技巧,从而提高数据库查询效率。 首先,理解选择最有效率的表名顺序至关重要。在FROM子句中,Oracle会按照从右到左的顺序处理表,这意味着...

    SQL语句练习--数据库

    ### SQL语句练习知识点解析 #### 一、创建数据库与数据表 1. **创建数据库:** - **SQL语句:** `CREATE DATABASE student;` - **知识点解析:** 这条命令用于创建一个新的数据库`student`。在创建数据库时,...

    Oracle SQL语句跟踪

    2. 执行计划:显示了Oracle如何执行SQL语句,包括操作符、执行顺序、成本估算等。 3. 性能统计:如执行时间、CPU时间、I/O次数等。 4. 等待事件:揭示了SQL语句在等待什么资源,这有助于识别性能瓶颈。 5. PL/SQL...

    SQL技巧 常用SQL操作语句

    此SQL语句使用`SELECT INTO`语法来创建新表`b`,其结构与表`a`完全相同。由于`WHERE 1<>1`条件永远不会满足,因此不会有任何数据被插入到新表`b`中,从而实现了仅复制表结构而不复制数据的目的。 #### 2. 拷贝表...

    ORACLE 优化sql语句提高oracle执行效率 .doc

    4. 减少访问数据库的次数:Oracle 在内部执行了许多工作:解析 SQL 语句,估算索引的利用率,绑定变量、读数据块等。因此,减少访问数据库的次数可以提高执行效率。 5. 在 SQL*Plus、SQL*Forms 和 Pro*C 中重新设置...

    sql语句优化之降龙十八掌

    本文将详细阐述"sql语句优化之降龙十八掌",逐一解析这十八个优化技巧,帮助你成为SQL优化的高手。 第一掌:避免对列的操作 在编写SQL语句时,尽量避免在WHERE子句中对列进行计算或函数操作,因为这样会导致无法...

    oracle 查看前数据库中: 谁在运行什么 SQL语句

    - `v$sqltext` 视图则存储了所有已硬解析的SQL语句文本,每条SQL语句可能由多个块(piece)组成,地址(address)用于将这些块连接起来。 2. **SQL查询解析**: - 给定的SQL查询是通过关联`v$session` 和 `v$...

    SQL、pl/sql基础语句大全

    7. **SQL执行顺序**:在SQL语句中,`FROM`子句首先执行,确定数据源;然后是`WHERE`子句,过滤满足条件的行;接着是`SELECT`,选择需要的列;最后是`ORDER BY`,对结果进行排序。 对于初学者来说,理解和掌握这些...

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

    否则,命令解析器将SQL语句解析成解析树,接着预处理阶段检查语义并处理权限。对于SELECT查询,查询优化器会生成最佳执行计划。 3. 执行:访问控制模块检查用户权限,表管理模块负责打开和锁定表,调用合适的存储...

    sql完全优化语句汇总

    1. **选择有效的表名顺序**:在编写SQL语句时,应考虑表的处理顺序。在Oracle中,FROM子句后面的表按照从右到左的顺序处理,所以应将记录最少的表(基础表)放在最后,以减少数据处理。 2. **WHERE子句的连接顺序**...

Global site tag (gtag.js) - Google Analytics