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 如有不当之处,请多指正。
分享到:
相关推荐
该工具的一个关键特性是能够调整脚本执行顺序。这允许用户根据业务需求或依赖关系定制执行流程,确保脚本按正确的顺序执行,避免因为先执行了依赖于后续脚本的命令而导致错误。 此外,脚本可视化功能为用户提供了一...
在SQL Server 2005(或2000)中,可以通过执行以下SQL语句来查看所有可用的排序规则: ```sql SELECT * FROM ::fn_helpcollations(); ``` #### 2.3 排序规则的实际应用 在创建数据库时,需要指定数据库的排序规则...
在SELECT语句的执行顺序中,数据库按照特定的顺序来处理SQL语句中的各个部分。首先处理FROM子句指定的表,然后是JOIN操作,接着是WHERE条件,依此类推。在这个过程中,SELECT和DISTINCT操作是在WHERE条件之后执行的...
SQL Server数据库中查询的优化技巧 摘要:在基于数据库的管理信息系统中,查询操作是最基本、最常用也是最复杂的操作之一。随着数据库中数据量的增加,例如表中数据记录数达到上百万甚至上千万条,单条顺序扫描查询...
这个文件很可能是包含了C#或ASP.NET的代码示例,演示了如何在SQL数据库中执行顺序插入的步骤。通常,这样的代码会包含连接数据库的代码段、创建表的SQL语句、以及插入数据的SQL命令。开发者可能会使用ADO.NET或其他...
标题中的“一条Sql的执行过程.doc”和描述中提到的“MySQL 实战 45 讲之查询 sql 的内部执行过程”共同指向了一个主题:理解SQL语句在MySQL数据库中的执行流程。这是一个重要的技术知识点,尤其对于数据库管理员和...
本教程将介绍SQL SELECT语句的基本概念和用法,帮助你理解和掌握如何在Oracle环境中执行SQL查询。 首先,SQL SELECT语句的主要功能是提取数据库中的特定数据。它可以从一个或多个表中选取列,并按照需求进行组合。...
### 数据库:看一句SQL语句在MySQL中如何被执行 #### MySQL 根底架构分析 在深入了解SQL语句如何在MySQL内部执行之前,我们需要先掌握MySQL的基础架构,这对于理解整个执行流程至关重要。 ##### 1.1 MySQL 根本...
- SQLServer的查询优化器是负责生成执行计划的组件,它根据查询语句、表统计信息和索引来决定最佳的执行路径。 - 优化器可能会选择全表扫描、索引扫描或索引查找等操作。 4. **索引的选择与设计** - 索引不是越...
4. **性能优化**:对于执行效率较低的查询,SQL助手可能会提供优化建议,比如添加索引、调整JOIN顺序或使用更高效的聚合函数等。 5. **历史记录**:分析器通常会保存用户的查询历史,当需要重复执行相似查询时,...
类SQL技术的优化主要集中在查询性能上,这包括对查询路径的优化,索引的利用,以及查询执行计划的改进。例如,通过预计算或索引加速查询,减少不必要的数据扫描,以及优化数据分布和分区策略,提高并发处理能力。 ...
3. **查询分析和优化**:SQL Assistant可以分析用户的查询语句,提供性能优化建议,如使用更有效的索引或调整查询顺序,以提高查询效率。 4. **数据库对象管理**:工具通常包含对数据库对象的管理功能,如创建、...
4. 全文索引(Full-text Index):用于全文搜索,可以快速查找文本中的关键词。 5. 空间索引(Spatial Index):针对地理或图形数据,提高空间查询效率。 二、存储过程 存储过程是一组预编译的SQL语句,可视为...
- **使用SET EXPLAIN命令**:最常用的方式是在服务器端执行SQL语句时添加`SET EXPLAIN ON`命令,该命令会将执行计划写入到默认名为`splexplain.out`的文件中。例如,下面的SQL语句将返回前10条客户记录,并将执行...
可以利用EXPLAIN命令来查看SQL的执行计划,包括执行顺序、扫描行数、是否使用索引等信息。 6. 索引的使用:合理创建和使用索引可以大大加快查询速度。但是不恰当的索引会降低写操作的性能。因此,了解如何选择合适...
3. **关键词高亮**:可能支持将SQL关键词(如SELECT、FROM、WHERE等)进行颜色标记,提升视觉效果。 4. **注释整理**:将多行或单行注释进行规范,使其更易读。 5. **去除冗余空格**:删除不必要的空格,保持代码...
SQL脚本是一系列按顺序执行的SQL命令,常用于初始化数据库结构,填充测试数据,或者进行批量数据操作。 二、CMS数据库结构 1. **内容表**:存储文章、页面、媒体文件等实际内容的数据表,可能包括ID、标题、内容、...
- **规范要求**:在动态SQL中使用绑定变量可以提高性能,尤其是在执行多次相同查询时。 - **示例**: ```plsql DECLARE v_sql VARCHAR2(100); v_dept_id NUMBER := 10; BEGIN v_sql := 'SELECT * FROM ...
7. **索引**:索引用于加速查询,分为聚集索引(数据行的物理顺序与索引顺序相同)和非聚集索引(索引项的顺序与数据行的物理顺序不同)。了解如何创建、管理及优化索引对提高数据库性能至关重要。 8. **视图**:...