`
逝去的梦
  • 浏览: 15476 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SQL查询中关键词的执行顺序

    博客分类:
  • sql
阅读更多
1、查询中常用到的关键词有:

SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY

其中,SELECT与FROM是必需的,其他关键词则是可选的。

2、这些关键词的书写顺序:

SELECT 字段列表

FROM 表名

WHERE 记录筛选条件

GROUP BY 分组字段列表

HAVING 分组筛选条件

ORDER BY 排序字段列表

3、WHERE与HAVING的区别:

WHERE是对记录进行筛选;而HAVING是对按GROUP BY进行分组后的组进行筛选。

HAVING只有在使用GROUP BY 后才能使用。

4、GROUP BY的两个作用:

第一个作用是,将从表中取出的记录按照一个或者多个字段进行分组;

第二个作用是,去重,其本质仍然是分组。

5、这些关键词的解析/执行顺序:

FROM->WHERE->GROUP BY->HAVING->SELECT->ORDER BY

具体的说:

FROM:组装来自不同数据源的记录

WHERE:根据指定的条件过滤上一步检索出的记录

GROUP BY:对上面过滤后的记录按指定条件分组

SUM/AVG/COUNT:使用聚合函数进行计算

HAVING:对所有分组根据指定条件进行过滤

SELECT:从上一步过滤后的各个分组记录中提取指定查询的字段列表(包括聚合字段、计算字段、表达式字段等)

ORDER BY:对上一步查询得到的结果集按照排序字段列表进行排序,并输出排序结果

6、GROUP BY 字段1,字段2——先对所有记录按照字段1进行分组,然后对分组后的结果再在没组内按照字段2分组。

7、ORDER BY 字段1,字段2——先按照字段1进行排序,再按照字段2进行排序。

8、排序规则关键字:ASC(升序,默认)、DESC(降序)。

9、COUNT关键字,作计数使用。COUNT(*)是做候选数据集的整体计数,COUNT(字段)是对某字段进行计数。如果某列出现NULL值时,COUNT(*)会算入该列,COUNT(字段)则不会算入该列。



举例:

在学生成绩表中,把班级为1班的学生成绩按照学生姓名分组,并且筛选分组结果,汇总计算各个学生的总成绩,选出总成绩大于600分的学生列表,并按照总分从高到低排列。

SQL语句如下:

select std_name, sum(score) as sum_score

from grade_table

where class_id=1

group by std_name

having sum(score)>600

order by 2 asc


在上面的示例中SQL语句的执行顺序如下:

①首先执行FROM子句,从grade_table表检索记录;

②执行WHERE子句,筛选出grade_table表中class_id=1的所有记录;

③执行GROUP BY子句,把grade_table表按std_name列进行分组;

④计算SUM()聚集函数,求出每个std_name的score之和;

⑤执行HAVING子句,筛选出sum(score)大于600的分组;

⑥提取std_name,sum(score)两个字段,产生新的结果集;

⑦执行ORDER BY子句,把⑥的结果集按sum(score)字段升序排列。



参考资料:

[1]查询语句中select from where group by having order by的执行顺序

[2]sql关键字的解释执行顺序

[3]sql关键词执行先后顺序

感谢!

文中如有错误和描述不当,欢迎指正!

作者:飞行狮三多 邮箱:hbsygfz@163.com 如有不当之处,请多指正。
分享到:
评论

相关推荐

    SQLServer脚本批量执行工具

    该工具的一个关键特性是能够调整脚本执行顺序。这允许用户根据业务需求或依赖关系定制执行流程,确保脚本按正确的顺序执行,避免因为先执行了依赖于后续脚本的命令而导致错误。 此外,脚本可视化功能为用户提供了一...

    在sql中实现汉语拼音查询

    在SQL Server 2005(或2000)中,可以通过执行以下SQL语句来查看所有可用的排序规则: ```sql SELECT * FROM ::fn_helpcollations(); ``` #### 2.3 排序规则的实际应用 在创建数据库时,需要指定数据库的排序规则...

    SQL基础知识第2版.pdf

    在SELECT语句的执行顺序中,数据库按照特定的顺序来处理SQL语句中的各个部分。首先处理FROM子句指定的表,然后是JOIN操作,接着是WHERE条件,依此类推。在这个过程中,SELECT和DISTINCT操作是在WHERE条件之后执行的...

    SQL server数据库中查询的优化技巧.pdf

    SQL Server数据库中查询的优化技巧 摘要:在基于数据库的管理信息系统中,查询操作是最基本、最常用也是最复杂的操作之一。随着数据库中数据量的增加,例如表中数据记录数达到上百万甚至上千万条,单条顺序扫描查询...

    sql测试数据库与顺序插入的小代码

    这个文件很可能是包含了C#或ASP.NET的代码示例,演示了如何在SQL数据库中执行顺序插入的步骤。通常,这样的代码会包含连接数据库的代码段、创建表的SQL语句、以及插入数据的SQL命令。开发者可能会使用ADO.NET或其他...

    一条Sql的执行过程.doc

    标题中的“一条Sql的执行过程.doc”和描述中提到的“MySQL 实战 45 讲之查询 sql 的内部执行过程”共同指向了一个主题:理解SQL语句在MySQL数据库中的执行流程。这是一个重要的技术知识点,尤其对于数据库管理员和...

    ORACLE__SQL语句教学

    本教程将介绍SQL SELECT语句的基本概念和用法,帮助你理解和掌握如何在Oracle环境中执行SQL查询。 首先,SQL SELECT语句的主要功能是提取数据库中的特定数据。它可以从一个或多个表中选取列,并按照需求进行组合。...

    数据库:看一句SQL语句在MySQL中如何被执行.doc

    ### 数据库:看一句SQL语句在MySQL中如何被执行 #### MySQL 根底架构分析 在深入了解SQL语句如何在MySQL内部执行之前,我们需要先掌握MySQL的基础架构,这对于理解整个执行流程至关重要。 ##### 1.1 MySQL 根本...

    SQLServer 索引查询优化指南

    - SQLServer的查询优化器是负责生成执行计划的组件,它根据查询语句、表统计信息和索引来决定最佳的执行路径。 - 优化器可能会选择全表扫描、索引扫描或索引查找等操作。 4. **索引的选择与设计** - 索引不是越...

    SQL助手企业查询分析器中自动出现提示

    4. **性能优化**:对于执行效率较低的查询,SQL助手可能会提供优化建议,比如添加索引、调整JOIN顺序或使用更高效的聚合函数等。 5. **历史记录**:分析器通常会保存用户的查询历史,当需要重复执行相似查询时,...

    分布式顺序表类SQL技术的实现和优化.pdf

    类SQL技术的优化主要集中在查询性能上,这包括对查询路径的优化,索引的利用,以及查询执行计划的改进。例如,通过预计算或索引加速查询,减少不必要的数据扫描,以及优化数据分布和分区策略,提高并发处理能力。 ...

    sql assistant,sql助手,sql自动提示工具

    3. **查询分析和优化**:SQL Assistant可以分析用户的查询语句,提供性能优化建议,如使用更有效的索引或调整查询顺序,以提高查询效率。 4. **数据库对象管理**:工具通常包含对数据库对象的管理功能,如创建、...

    SQL Sever资料集锦

    4. 全文索引(Full-text Index):用于全文搜索,可以快速查找文本中的关键词。 5. 空间索引(Spatial Index):针对地理或图形数据,提高空间查询效率。 二、存储过程 存储过程是一组预编译的SQL语句,可视为...

    Informix 11 SQL性能调整

    - **使用SET EXPLAIN命令**:最常用的方式是在服务器端执行SQL语句时添加`SET EXPLAIN ON`命令,该命令会将执行计划写入到默认名为`splexplain.out`的文件中。例如,下面的SQL语句将返回前10条客户记录,并将执行...

    Effective MySQL之SQL语句最优化.pdf

    可以利用EXPLAIN命令来查看SQL的执行计划,包括执行顺序、扫描行数、是否使用索引等信息。 6. 索引的使用:合理创建和使用索引可以大大加快查询速度。但是不恰当的索引会降低写操作的性能。因此,了解如何选择合适...

    sql语句格式化小工具

    3. **关键词高亮**:可能支持将SQL关键词(如SELECT、FROM、WHERE等)进行颜色标记,提升视觉效果。 4. **注释整理**:将多行或单行注释进行规范,使其更易读。 5. **去除冗余空格**:删除不必要的空格,保持代码...

    CMS database sql script

    SQL脚本是一系列按顺序执行的SQL命令,常用于初始化数据库结构,填充测试数据,或者进行批量数据操作。 二、CMS数据库结构 1. **内容表**:存储文章、页面、媒体文件等实际内容的数据表,可能包括ID、标题、内容、...

    DBA对Oracle SQL编写规范的总结

    - **规范要求**:在动态SQL中使用绑定变量可以提高性能,尤其是在执行多次相同查询时。 - **示例**: ```plsql DECLARE v_sql VARCHAR2(100); v_dept_id NUMBER := 10; BEGIN v_sql := 'SELECT * FROM ...

    SQL Server 练习题(Q).doc

    7. **索引**:索引用于加速查询,分为聚集索引(数据行的物理顺序与索引顺序相同)和非聚集索引(索引项的顺序与数据行的物理顺序不同)。了解如何创建、管理及优化索引对提高数据库性能至关重要。 8. **视图**:...

Global site tag (gtag.js) - Google Analytics