1. 查询处理可分成逻辑处理和物理处理,逻辑处理上各阶段有特定的顺序,但为优化查询,在保证结果集正确的条件下,物理处理顺序并不按照逻辑处理顺序执行,如果在INNER JOIN时,WHERE语句中的过滤条件会在INNER JOIN之前执行。

2. LEFT JOIN 和RIGHT JOIN 的逻辑处理顺序:

A)两表做笛卡尔积(CROSS JOIN)

B)ON筛选器

C)将保留表中未匹配到的记录作为外部行添加到结果集

3. 在逻辑处理中,TOP的执行顺序优先于ORDER BY,查询按照ORDER BY语句指定的顺序(无ORDER BY情况下使用默认顺序)选取指定数量的行生成结果集,在对结果集排序。

4. 对查询结果有三种筛选器:ON+WHERE+HAVING, 逻辑处理中,ON 运行于表连接时,WHERE 运行表连接之后GROUP BY之前,HAVING 运行于GROUP BY之后TOP语句之前

5. T1 LEFT JOIN T2时,T1 为保留表, T1 RIGHT JOIN T2时, T2为保留表,ON 筛选器对保留表的过滤并不是最终的,而WHERE对保留表过滤的数据是最终的。

6. 同时操作:在对表中多列进行更新时,对所有列的更新操作被认为在同一时间点完成,SQL Server会在更新前保存各列要更新的值,因此不必担心UPDATE T1 SET C1=C2,C2=C1语句中的执行顺序

TSQL--逻辑查询处理的更多相关文章

  1. T-SQL逻辑查询处理

    引言 本文是对<Microsoft SQL SERVER 2008技术内幕 T-SQL查询>中的第一章做的阅读笔记,这一章的主要内容是分析SQL查询中各子句的执行顺序.如果你对此已了然于胸 ...

  2. T-SQL逻辑查询

    理解T-SQL的逻辑查询顺序是学习SQL Server的基础. T-SQL逻辑执行顺序 (8)    SELECT (9) DISTINCT (11) <TOP_specification> ...

  3. 《T-SQL查询》读书笔记Part 1.逻辑查询处理知多少

    一.关于T-SQL T-SQL是ANSI和ISO SQL标准的MS SQL扩展,其正式名称为Transact-SQL,但一般程序员都称其为T-SQL. 二.逻辑查询处理各个阶段 2.1 逻辑查询处理流 ...

  4. T-SQL动态查询(4)——动态SQL

    接上文:T-SQL动态查询(3)--静态SQL 前言: 前面说了很多关于动态查询的内容,本文将介绍使用动态SQL解决动态查询的一些方法. 为什么使用动态SQL: 在很多项目中,动态SQL被广泛使用甚至 ...

  5. T-SQL动态查询(1)——简介

    起因: 由于最近工作需要及过去一直的疑问,所以决定着手研究一下动态SQL.由于离开一线开发有点年头了,很多技巧性的东西没有过多研究,作为DBA和<SQL Server性能优化与管理的艺术> ...

  6. 【读后感1】SQL2008技术内幕- SQL逻辑查询处理

    引言观点 1. 编程语言日新月异,但是从没有人否定sql 在现代编程中的巨大作用和 持续的可利用性.SQL以对人类友好的阅读体验提供数据查询能力( 相比其他编程语言 ), 同时在各种数据库平台中,基础 ...

  7. 你真的会玩SQL吗?之逻辑查询处理阶段

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  8. 【转】SQL Server T-SQL高级查询

    SQL Server T-SQL高级查询 高级查询在数据库中用得是最频繁的,也是应用最广泛的. Ø 基本常用查询 --select select * from student; //查询student ...

  9. 45、SQL逻辑查询语句执行顺序

    一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOI ...

  10. T-SQL动态查询(3)——静态SQL

    接上文:T-SQL动态查询(2)--关键字查询   本文讲述关于静态SQL的一些知识和基础技巧. 简介: 什么是静态SQL?静态SQL是和动态SQL相对而言的,其实我们没必要过于纠结精确定义,只要大概 ...

随机推荐

  1. [转]FluentData

    本文来自:http://fluentdata.codeplex.com/wikipage?title=Fluency&referringTitle=Home Documentation  Fl ...

  2. win7右下角的网络连接图标不见了~终极必杀技

    1.打开程序管理器(ctrl+alt+delete) 2.在进程那里找到"explorer.exe",然后按结束进程(此时工具栏会消失) 3.然后在文件(程序管理器左上角),点击& ...

  3. python + docker, 实现天气数据 从FTP获取以及持久化(四)-- 数据准备

    前情提要 在之前的文章里,我们已经掌握从FTP上面下载天气数据然后插入到数据库中. 但是如何将我们已有的数据放到生产环境中呢? 思考 首先,我们先简单的理一理现在的情况. 目前: FTP上面已有半个月 ...

  4. 关于在github上 下载源码 clone 非 master 分支的代码

    https://blog.csdn.net/u012302552/article/details/80680497

  5. c#静态构造函数与构造函数

    构造函数这个概念,在我们刚开始学习编程语言的时候,就被老师一遍一遍的教着.亲,现在你还记得静态构造函数的适用场景吗?如果没有,那么我们一起来复习一下吧. 静态构造函数是在构造函数方法前面添加了stat ...

  6. Sql Server-使用Sql Server自带的分词功能实现字段关键词提取(分词能力很低,慎用)

    “创建全文索引 启动服务 在SQL Server配置管理工具中,找到'SQL Full-text Filter Daemon Launcher'服务用本地用户启动. 创建全文目录 打开需要创建全文目录 ...

  7. MPI 计时器函数 MPI_Wtime()

    ▶ 计时器函数 MPI_Wtime() 以及头文件 timer.h 中的宏函数 GET_TIME(),类似 time.h 中函数 clock() 的用法.注意 函数 clock() 记录的是CPU时间 ...

  8. angularjs中的$http详解

    语法: 要将区别先弄清$http服务,它是对原生XMLHttpRequest对象的简单封装,是只能接受一个参数的方法, 这个方法会返回一个promise对象,具有sccess和error两个方法.当然 ...

  9. c#二维码建立与识别

    QrCodeEncodingOptions options = new QrCodeEncodingOptions(); options.CharacterSet = "UTF-8" ...

  10. Cardboard Talk02 Accelerometer

    操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Android studio 3.0.0 | Cardboard 1.0 在深入讨论具体实现之前,有必要了解一下Andro ...