sql的连接教程

sql的连接教程
对于SQL的连接学习可能会很混乱,我们知道SQL的连接语法有很多内部、外部和左边。有时,它是不明确的选择的结果是什么,有一个恐怖的物品编码(真不清楚为什么编码的恐怖也被墙)通过货车的维恩图解释SQL的加入。我觉得清晰易懂。

假设我们有两个表。

桌子是左边的那张桌子。
表B是右边的桌子。
每个记录中有四条记录,其中两个是相同的,如下所示:
复制代码代码如下所示:
ID名

1海盗1大头菜
2猴子2海盗
3忍者3达斯·维德
4意大利面4忍者

让我们看看不同的连接将产生什么。

SELECT * FROM中
内部联接TableB
在tablea.name = tableb.name

ID名

1海盗2海盗
3忍者4 ninjainner加入
结果的集中是A和B的交集。

SELECT * FROM中
全外连接TableB
在tablea.name = tableb.name

ID名

1海盗2海盗
2猴子空值
3忍者4忍者
4意大利面空零
零1大头菜
零3 Darth VaderFull外,加入A和B,但需要注意的是,零是一个记录,是不匹配的一个重要价值。

SELECT * FROM中
左外连接TableB
在tablea.name = tableb.name

ID名

1海盗2海盗
2猴子空值
3忍者4忍者
4意大利面空nullleft外连接产生的表一套完整,而在B表的匹配和非匹配的值,用空值代替。
SELECT * FROM中
左外连接TableB
在tablea.name = tableb.name
在tableb.id是空的

ID名

2猴子空值
4个意大利空null产生一个集合,该集合不在表中的B表中。
SELECT * FROM中
全外连接TableB
在tablea.name = tableb.name
在tablea.id是空的
或tableb.id是空的

ID名

2猴子空值
4意大利面空零
零1大头菜
空null 3达斯·维德生成一个数据集,该数据集不出现在表和b表中。

我们需要注册的是交叉连接中的一个交叉,这个连接不能使用这种类型的图,因为它是表A和B数据的组合,这是笛卡尔乘积,这是笛卡尔乘积:
复制代码代码如下所示:
SELECT * FROM中
交叉连接TableB

这个笛卡尔积将产生一个4×4=16的记录。一般来说,我们很少使用这个语法,但是我们必须小心,如果不使用嵌套SELECT语句,一般系统会产生笛卡尔积,然后过滤它,这对性能非常危险,特别是当表大的时候。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部