`
net_liu
  • 浏览: 232588 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SQL好习惯和执行原理

阅读更多
SQL好习惯和执行原理


一:查询的逻辑执行顺序

(1) FROM

(2) ON

(3)  JOIN

(4) WHERE

(5) GROUP BY

(6) WITH {cube | rollup}

(7) HAVING

(8) SELECT (9) DISTINCT (11) 

(10) ORDER BY

标准的SQL 的解析顺序为:

(1).FROM 子句 组装来自不同数据源的数据

(2).WHERE 子句 基于指定的条件对记录进行筛选

(3).GROUP BY 子句 将数据划分为多个分组

(4).使用聚合函数进行计算

(5).使用HAVING子句筛选分组

(6).计算所有的表达式

(7).使用ORDER BY对结果集进行排序


二 执行顺序:

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

2.ON:对vt1表应用ON筛选器只有满足< join_condition> 为真的行才被插入vt2

3.OUTER(join):如果指定了 OUTER JOIN保留表(preserved table)中未找到的行将行作为外部行添加到vt2 生成t3如果from包含两个以上表则对上一个联结生成的结果表和下一个表重复执行步骤和步骤直接结束

4.WHERE:对vt3应用 WHERE 筛选器只有使< where_condition> 为true的行才被插入vt4

5.GROUP BY:按GROUP BY子句中的列列表对vt4中的行分组生成vt5

6.CUBE|ROLLUP:把超组(supergroups)插入vt6 生成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 并返回调用者

分享到:
评论

相关推荐

    SQLServer数据库表中数据导出成SQL语句工具

    此外,定期备份源数据库是防止数据丢失的好习惯。 6. **其他工具与替代方案**:除了这个特定的MHT格式工具,SQL Server还提供了其他的内置功能和第三方软件,例如SQL Server Management Studio(SSMS)的“任务”-&gt;...

    SQL Injection (SQL注入攻击)

    同时,使用最新的SQL Server版本和更新可以提供更好的安全特性,如输入验证、SQL Server的内置防火墙(如Transparent Data Encryption, TDE)等。 在测试阶段,应进行详尽的渗透测试,模拟各种可能的SQL注入攻击,...

    可视化sql查询语句生成器

    在压缩包文件“Sql生成”中,可能包含有各种示例查询、配置文件、帮助文档或教程,帮助用户更好地理解和使用这种工具。通过学习和实践,用户不仅可以提高SQL查询的技能,还能提升数据处理的能力,这对于任何与数据库...

    SQL挂起清除

    在IT领域,尤其是在数据库管理中,我们经常遇到各种问题,其中一种常见的问题是“SQL挂起清除...通过理解其工作原理和正确使用,IT管理员和数据库专业人员可以更高效地处理这类故障,确保SQL Server的顺利安装和运行。

    sqlserver优化笔记

    ### SQL Server 优化知识点 #### 一、SQL性能优化技巧 ...实践证明,合理的SQL编写习惯与良好的索引管理策略是实现这一目标的关键。此外,定期审查并调整现有的SQL脚本与索引设置也是保持系统高效运行的重要环节。

    SQL好习惯:编写支持可搜索的SQL

    在SQL编程中,养成良好的编码习惯对于代码的可读性、可维护性和性能至关重要。本文主要探讨了如何编写支持可搜索的SQL,特别是在处理子查询时的...同时,理解SQL的执行顺序和集合操作的原理也是提高SQL技能的重要环节。

    SQLServer密码修改器

    在执行SQL Server密码修改器时,这个文件会帮助程序在Windows操作系统中正确显示和运行,例如处理DPI感知、权限要求等。 在使用此工具时,有几点需要注意: 1. 确保你有权限访问SQL Server实例,这可能需要网络管理...

    ORACLE 11g SQL 权威指南第十六章 SQL优化 中文扫描)

    避免在WHERE子句中使用函数也是一个好习惯,因为函数调用可能会增加额外的计算成本,从而延长查询时间。 #### 3. 使用表连接而非多个查询 当需要从多个相关表中检索数据时,使用JOIN操作代替多个独立查询能大幅...

    ORACLE_SQL性能优化(全).pptx

    - **性能问题**:性能不佳通常源于开发人员对SQL效率的忽视或对SQL执行原理的不了解。 - **调整方法**:包括业务功能、数据设计、流程设计、SQL语句、物理结构、内存、I/O等方面的调整。 - **SQL优化机制**:了解...

    SQL 习惯性优化.doc

    ### SQL 习惯性优化知识点详解 #### 一、优化的重要性及背景 - **优化的意义**:优化SQL语句能够显著提升数据库性能,进而提高应用程序的整体响应速度和用户体验。 - **资源消耗**:据统计,SQL语句往往占据了...

    SQL注入漏洞演示源代码-曾是土木人

    在提供的“SQL注入漏洞实例演示”中,你可能会找到一个模拟的易受攻击的Web应用,通过分析和运行这个示例,你可以更好地了解SQL注入是如何发生的,并学习如何修复它。README.md文件应该包含了关于如何设置和测试这个...

    sql优化(完整版)

    低效SQL可能源于开发人员忽视效率或对SQL执行原理缺乏理解。 2. **SQL处理过程** - **共享SQL区域**:Oracle存储已解析的SQL语句,减少重复解析,提高性能。 - **SQL语句处理的阶段**:包括解析、执行和提取结果...

    SQL反模式中文高清带目录完整版

    SQL反模式是指在使用SQL进行数据库设计和编程时常见的错误做法或不良习惯。这些反模式在实践中可能会导致性能下降、数据不一致、难以维护等问题。以下是一些可能与“SQL反模式”相关的知识点: 1. SQL反模式的定义...

    SQL注入漏洞演示源代码

    此“SQL注入漏洞演示源代码”提供了一个实际的示例,帮助我们理解这种漏洞的原理和防范方法。 SQL注入是攻击者通过在输入字段中插入恶意的SQL代码,以欺骗服务器执行非预期的数据库操作。这种漏洞通常发生在Web应用...

    SQL实验报告

    **存储过程**是预先编译好的SQL语句集合,可以视为可重复使用的功能模块。`sp_helptext`是一个系统存储过程,用于查看其他存储过程的源代码。在实验中,通过`sp_helptext`查看`byroyalty`存储过程的内容,有助于理解...

    ORACLE_SQL性能优化(全).ppt

    【ORACLE SQL性能优化】是数据库管理中的重要环节,尤其对于使用Oracle数据库的企业而言,优化SQL...开发人员不仅需要理解SQL的执行原理,还要掌握Oracle数据库的特性,以便做出更明智的优化决策,提高系统的整体性能。

    SQL语句格式化工具

    - **在线工具**:例如SQLFiddle、DB-Fiddle等网站提供在线的SQL执行和格式化功能,只需粘贴SQL语句,点击格式化按钮即可。 - **IDE插件**:多数数据库管理或开发IDE(如SQL Server Management Studio、DBeaver、...

    sql优化脚本

    3. **程序SQL语句优化**:这部分内容可能集中在应用程序如何更好地与数据库交互,如批量处理数据而不是单条插入,使用预编译的SQL语句以提高执行速度,以及如何有效地使用事务管理。此外,可能会讨论到错误的SQL编程...

    jsp连接SQL Server2005一个简单的例子附带驱动程序

    连接数据库后,你可以创建`Statement`对象来执行SQL语句,或者使用更高级的`PreparedStatement`来防止SQL注入。执行查询后,可以使用`ResultSet`对象遍历查询结果。 此外,别忘了在完成数据库操作后关闭连接,以...

Global site tag (gtag.js) - Google Analytics