位置: 编程技术 - 正文

T-SQL 查询语句的执行顺序解析(sql中查询语句)

编辑:rootadmin

(5)SELECT (5-2) DISTINCT(5-3)TOP(<top_specification>)(5-1) <select_list>

(1)FROM (1-J) <left_table> <join_type> JOIN <right_table> on <on_predicate>

(2)WHERE <where_predicate>

(3)GROUP BY <group_by_specification>

(4)HAVING <having_predicate>

(6)ORDER BY <order_by_list>;

  每一步都会生成一个虚拟表,该虚拟表会作为下一步的输入。这些虚拟表对于调用者是不可用的,只有最后一步生成的虚拟表才会返回给调用者。如果在查询中没有指定某一个子句,则会跳过相应的步骤。接下来就简单地描述一下这些不同的逻辑步骤。

(1)FROM FROM阶段标识出查询的来源表,处理表运算符,每个表运算符也会应用一系列子阶段。例如,在联接运算中涉及的阶段是(1-J1)笛卡尔积、(1-J2)ON筛选器和(1-J3)添加外部行。FROM阶段生成虚拟表VT1。

(1-J1)笛卡尔积 这个阶段对表运算符涉及的两个表执行笛卡尔积(交叉联接),生成虚拟表VT1-J1。

(1-J2)ON筛选器 这个阶段对VT1-J1中的行根据ON子句中出现的谓语进行筛选。只有让该谓语取值为TRUE的行,才能插入VT1-J2中。

(1-J3)添加外部行 如果指定了OUTER JOIN(相对于CROSS JOIN 或 INNER JOIN),则将保留表(preserved table)中没有找到匹配的行,作为外部行添加到VT1-J2中,生成VT1-J3。

(2)WHERE 这个阶段根据在WHERE子句中出现的谓语(<where_predicate>)对于VT1中的行进行筛选。只有让谓语计算结果为TRUE的行,才会插入VT2中。

(3)GROUP BY 按照GROUP BY子句中指定的列名列表,将VT2中的行进行分组,生成VT3。

(4)HAVING 根据HAVING子句中出现的谓语(<having_predicate>)对VT3中的分组进行筛选。只有让谓语计算结果为TRUE的组,才会插入到VT4。

(5)SELECT 处理SELECT子句中的元素,生成VT5。

(5-1)计算表达式 计算SELECT列表中的表达式,生成VT5-1。

(5-2)DISTINCT 删除VT5-1中的重复行,生成VT5-2。

(5-3)TOP 根据ORDER BYi子句定义的逻辑排序,从VT5-2中选择前面指定数量或百分比的行,生成表VT5-3。

(6)ORDER BY 根据ORDER BY子句中指定的列名列表,对VT5-3中的行进行排序,生成游标VC6。

标签: sql中查询语句

本文链接地址:https://www.jiuchutong.com/biancheng/348876.html 转载请保留说明!

上一篇:学习SQL语句(强大的group by与select from模式)(sql 语句)

下一篇:sql存储过程获取汉字拼音头字母函数(sql中存储过程的用法)

  • 补缴以前年度附加税怎么做账
  • 金蝶软件中怎么登记应该税费
  • 业务员报销差旅费会计分录怎么做
  • 增值税改革后增值税申报表怎么填写
  • 资产负债表损益表模板
  • 差额开票如何入账
  • 申报扣除的广告费支出须符合哪些条件
  • 小规模纳税人费用发票怎么做账
  • 简易征收进项税额转出什么意思
  • 公司账户存定期 定期要做利息出纳账吗
  • 企业录用失业人员有税收优惠吗
  • 个人所得税的税收优惠项目有哪些
  • 超出发票使用范围
  • 小规模纳税人出租房屋增值税税率是多少
  • 没有外管证就开具了发票
  • 在建工程摊销是啥意思
  • 地产商自持是什么意思
  • 收到政府征地补偿款
  • 客户到款打到子公司账上如何转回
  • 社保网上申报操作指南
  • 代扣税款手续费管理办法
  • 腾讯电脑管家中蓝牙在哪
  • 政策性搬迁损失扣除年度
  • 股东以非货币出资办理什么手续
  • wordpress 常用函数
  • 新开的酒店怎么做宣传
  • 企业类型变更是什么意思
  • 住宅专项维修资金是什么
  • windows pythonpath
  • phpgd库怎么开
  • 进口付汇和出口收汇
  • 退还多缴纳税款
  • 零售企业商品盘点发生溢余后,在查明原因前,应按
  • python 多线程处理
  • 高新企业奖励要交企业所得税吗
  • 借款合同 印花
  • 劳务公司是怎么运作的
  • 自来水公司水表安装标准
  • 企业所得税的扣除是什么意思
  • 财务报表审计的定义
  • 企业所得税退回应交税费会计分录
  • sqlserver2012无法新建表
  • 股权转让产生的个人所得税
  • 失控发票要补交所得税吗
  • 本月记账之前是不是要结转上月
  • 银行期初余额录少了怎么办
  • 委外加工半成品入库的会计分录
  • 银行存款账面余额是企业还是银行
  • 法人购买设备投入企业
  • 化肥贸易行业
  • 无追保理是投资理财吗
  • 微信收款怎样记账
  • 企业购买的结构性存款怎样做账
  • 系统多交税款放在哪里
  • linux开机启动ftp
  • 如何移植操作系统
  • xp系统无法停用wifi连接
  • autorun.dll
  • macos 关闭屏幕
  • 如何快速查询身份证号码
  • 如何隐藏与显示元素
  • macbookpro安装双系统win7系统
  • scards32.exe - scards32是什么进程 有什么用
  • mom.exe是什么进程
  • 如何显示文件后缀名
  • 邮箱应用程序
  • linux文件系统的根目录的i节点号为
  • Windows搭建代理服务器
  • ExtJS Ext.MessageBox.alert()弹出对话框详解
  • python 数独破解器
  • 浅谈jQuery中Ajax事件beforesend及各参数含义
  • shell 计算表达式
  • jquery插件开发方法
  • Python中random模块
  • 十九届三中全会主题
  • 机打发票真伪查询
  • 宁夏到新疆多少公里?
  • 企业的赞助费如何入账
  • 工信厅有什么实权
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设