位置: 编程技术 - 正文

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中存储过程的用法)

  • 当月出口的货物,可以过几个月申报吗
  • 建筑企业简易计税和一般计税分开核算
  • 通货膨胀有什么危害?
  • 初级会计计划成本法例题
  • 劳务工报价单
  • 公司购入烟酒会计处理
  • 拖欠安装费
  • 小规模纳税人超过500万可以不转一般纳税人吗
  • 购置新建商品房,自房屋交付使用
  • 企业会计核算基础
  • 从小规模取得3%农产品进项税额抵扣
  • 投资性房地产房租计入什么会计科目
  • 出口货物免抵退税额城市维护建设税
  • 补记以前年度往来款
  • 企业为员工购买的补充医疗保险
  • 没有座机怎么填固定电话
  • 学校有没有纳税人识别号
  • 差额开票的会计分录
  • 如何确定合并报表的范围简答题
  • 农产品收购发票怎么做账
  • 公司为职工缴纳的医保不计入账户吗
  • 汽车运输增值税专用发票多少税点
  • 销售利润率和毛利率计算
  • 订阅报纸属于会计科目吗
  • 社会保险费缴费凭据在哪查
  • 融资租入固定资产计提折旧吗
  • 购入土地建厂房要交的税
  • 高新企业研发费用占销售收入的比例
  • win7系统我的电脑图标不见了
  • 台式电脑机箱怎么选
  • 因有减免税款不退怎么办
  • nginx不支持ipv6
  • 进项税加计抵扣最新政策2019
  • 员工离职补偿金账务处理
  • 以不动产作价出资入股
  • 季度报表本期金额和累计金额
  • vue3 技巧
  • jsp使用教程
  • 未分配利润为负的原因
  • 厂房推倒重建和改扩建的税务处理
  • Python IDE之Thonny的介绍
  • 增值税比对票表不通过
  • 辞退员工补偿金怎么计算
  • 将资本公积转为资本会计科目
  • 拍卖车牌收入需要缴纳什么税
  • 公司雇佣退休人员工资怎么发
  • 处置无形资产属于投资活动吗
  • 免抵退不得抵扣税额什么意思
  • 销售成品油的税率
  • 基本户收到零余额转款怎么做分录
  • 处理报废的固定资产账务处理
  • 外币资本金入账汇率怎样选择
  • 留底税额怎么入账
  • 建筑发票可以一次性抵扣吗
  • 补贴算报酬吗
  • 注册会计师转所规定
  • 私企需要计提盈余公积吗
  • sql语句基础题及答案
  • Windows server 2003 最后一代cpu
  • sql server设置主键primary key
  • 微软系统无法开机怎么办
  • centos添加自启动
  • linux仿mac
  • linux 操作系统
  • grub修复引导windows10
  • Win7系统如何开启移动到文件夹选项
  • 苹果Mac系统怎么安装
  • redhat linux6.5安装教程
  • win8系统怎么打开运行
  • win8任务栏点击没反应
  • WIN7系统屏幕亮度哪里设置
  • win7微软账户
  • nodejs formidable
  • javascript+HTML5 Canvas绘制转盘抽奖
  • javascript用的多吗
  • 12123怎么上传交强险
  • 贵州电子税务局app下载
  • 湖北国家税务局发票查询
  • 2015年1毛硬币直径?
  • 宏酷集团创始人简介
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设