T-SQL基础(二)之关联查询

T-SQL基础(⼆)之关联查询
在上篇博⽂中介绍了T-SQL查询的基础知识,本篇主要介绍稍微复杂的查询形式。
表运算符苏小沫儿
包场中学表运算符的作⽤是把为其提供的表作为输⼊,经过逻辑查询处理,返回⼀个表结果。SQL Server⽀持四个表运算符:JOIN、APPLY、PIVOT、UNPIVOT,其中JOIN是标准SQL中的运算符,APPLY、PIVOT和UNPIVOT是T-SQL的扩展。
JOIN:联接查询时使⽤
APPLY:⽤于FROM⼦句中,分为CROSS APPLY和OUTER APPLY两种形式
批判理论PIVOT:⽤于⾏转列
UNPIVOT:⽤于列传⾏
联接查询
联接查询分为外联接、内联接、交叉联接,三者的区别在于如何应⽤逻辑查询处理阶段:
交叉联接仅应⽤⼀个阶段——笛卡尔乘积
他有个二弟汉寿亭侯
内联接应⽤两个阶段——笛卡尔乘积和基于谓词ON的筛选;荔枝叶瘿蚊
外联结应⽤三个极端——笛卡尔乘积,基于谓词ON的筛选,添加外部⾏;
内部⾏ & 外部⾏
内部⾏指的是基于谓词ON与另⼀侧匹配的⾏,外部⾏则是未匹配的⾏,外部⾏⽤NULL进⾏填充。内联接结果集仅保留内部⾏,外联接结果集返回内部⾏和外部⾏。
笛卡尔乘积
将⼀个输⼊表的每⼀⾏与另⼀个表的所有⾏匹配,即,如果⼀张表有m⾏a列,另⼀张表n⾏b列,笛卡尔乘积后得到的表有mn⾏,a+b列*。由此可以看出,对于数据量较⼤的表进⾏关联的话,会得到⼀张数据量更⼤的表,会有可能造成内存溢出的。
以下是⽹络上关于笛卡尔乘积的解释:
在数学中,两个集合X和Y的笛卡⼉积(Cartesian product),⼜称直积,表⽰为X × Y,第⼀个对象
是X的成员⽽第⼆个对象是Y的所有可能有序对的其中⼀个成员。假设集合A=a, b,集合B=0, 1, 2,则两个集合的笛卡尔积为(a, 0), (a,
1), (a, 2), (b, 0), (b, 1), (b, 2)。类似的例⼦有,如果A表⽰某学校学⽣的集合,B表⽰该学校所有课程的集合,则A与B
的笛卡尔积表⽰所有可能的选课情况。A表⽰所有声母的集合,B表⽰所有韵母的集合,那么A和B的笛卡尔积就为所有可能的汉字全拼。
举例如下:
零花钱不够偷电脑

本文发布于:2024-09-20 22:22:56,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/584300.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:联接   集合   可能   乘积   查询   阶段
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议