连接 (读书笔记)
来源:互联网 发布:opencv java 图片人脸 编辑:程序博客网 时间:2024/05/30 07:13
1 连接
Join 分下列几种形式:
- Inner Join
- Outer Join (Left 和 Right)
- Full Join
- Cross Join
2 内部连接
在表中存在至少一个匹配时,inner join关键字返回行。
select pbe.*, HumanResources.Employee.BusinessEntityID From Person.BusinessEntity pbe Inner join HumanResources.Employee hre on pbe.BusinessEntityID = hre.BusinessEntityID
以上代码会运行报错,原因:代码中别名和表可以混合使用,但是只要确定了使用表的别名,则必须一直使用别名。
内部连接与其他连接不同之处在于,内部链接是一个排他连接 —— 即排除在两表中没有匹配的所有记录。
因为 inner join 是默认连接类型,所以写法上常常可以不写 inner 关键字。
Notice: null值之间的比较 —— null值不等于null值
3 外部连接
Left Join 关键字从左表那里返回所有的行,即使在右表中没有匹配的行。Right Join 则从右。通常使用Join是解决多表连接最好的方法。
处理复杂的外部连接
select v.VendorName, a.Address from Vendors v left join VendorAddress va on v.VendorID = va.VendorID Join Address a on va.Address = a.AddressID
过程中,out join 会包含表中所有信息,而接下来的 inner join 会丢弃表中的某些记录。想要保留表中的所有数据有2种改法:
- 添加另一个外部连接
select v.VendorName, a.Address from Vendors v left join VendorAddress va on v.VendorID = va.VendorID left join Address a on va.AddressID = a.AddressID
- 改变连接的顺序
Select v.VendorName, a.Address from VendorAddress va join Address a on va.AddressID = a.AddressID right join Vendors v on v.VendorID = va.VendorID
总结: 第二种解决方法更好。应先使用内部连接,尽量少使用外部连接,这样可以减少代码中的错误。
4 完全连接
Full join 用来将join两侧的数据全部匹配,并返回所有的记录,不论记录在join的哪一侧的表中。完全连接在实战中几乎很好使用。
5 交叉连接
交叉连接不使用 on 运算符,而将join左侧的所有记录与另一侧的所有记录连接。简而言之,返回的是join两侧表记录的笛卡儿积。
交叉连接与任何其他连接语法相似,不过它使用cross关键字,示例如下:
select v.VendorName, a.Address from Vendors v Cross Join Address a
6 联合
Uion是一个特殊的运算符,用于使两个或两个以上的查询产生一个结果集。联合不是真正的连接,作用更像将一个查询返回的数据附加到另一个查询结果的末尾。
当使用 union 处理查询时,要注意几个关键点:
- 查询的列数要相同
- union 返回的结果集的标题仅从第一个查询获得
- 查询中对应列的数据类型也必须隐式一致,长度最好也一致(过长可能会被忽略)
- 与其他非 union查询不同, union查询的默认返回选项为 distinct,而不是all。 除非在 union查询中使用All关键字,才能返回重复的行。
0 0
- 连接 (读书笔记)
- 读书笔记:连接运算符##
- 松鼠书读书笔记(三)——HTTP连接管理
- C陷阱与缺陷读书笔记(第4章)连接
- 《收获,不止Oracle》读书笔记(二):表连接
- 《HTTP权威指南》读书笔记(3)-HTTP连接管理及对TCP性能的考虑
- 《TCP/IP详解》读书笔记(18章)-TCP连接的建立与中止
- 深入剖析Tomcat读书笔记(1)——tomcat的连接本质
- 【 Android官方文档读书笔记】连接网络
- 读书笔记--TCP连接建立与终止
- 【读书笔记】TCP连接的建立与终止
- 读书笔记第一章第五节 1.5连接MySQL
- 《com原理与应用读书笔记》---可连接对象
- 《基于ORACLE SQL优化》读书笔记-表的连接类型
- 《基于ORACLE SQL优化》读书笔记-表的连接方式
- [HTTP权威指南读书笔记]第四章—连接管理
- 【读书笔记】【收获,不止Oracle】哈希连接表(Hash)
- 读书笔记-限制服务器最大并发连接数的方法
- (java)First Bad Version
- SpringMVC 基础教程 框架分析
- 【设计模式】组合模式
- android 微信登录 2016-01-08
- memmove 和 memcpy的区别
- 连接 (读书笔记)
- [友盟推送]谈谈消息推送服务的"送达率"
- Ad Hoc手机测试
- 常用Jquery插件整理大全
- 基本序列和映射规则
- 计算机视觉一些代码
- Oracle 创建聚集索引
- Android中在Button控件上显示倒计时
- 用canvas画两条折线图