数据库中的join连接
来源:互联网 发布:阿里云计算是什么 编辑:程序博客网 时间:2024/06/06 05:20
数据库中的join详解:
连接的类型分为:内连接(Inner join),外连接(outer join),其中外连接又分为左外连接、右外连接和全外连接。
连接的条件有:natural、on<predicate>、using<A1,A2,......An>
任意的连接类型可以和任意的连接条件进行组合。
内连接:
内连接与自然连接基本相同,不同之处在于自然连接只能是同名属性的等值连接,而内连接可以使用using或on子句来指定连接条件,连接条件中指出某两字段相等(可以不同名)。inner join中关键字inner是可选的,当join字句中没有使用outer前缀时,默认是inner join。
A(a, b, c), B(a, d, e)
图示:
(1)显示连接(on)与隐式连接:
显示:
select * from A inner join Bon A.a=B.a;隐式:
select * from A,Bwhere A.a = B.a;以上两种写法是等价的。
(2)相等连接:
提供了一种可选的简短符号去表达相等连接,它使用 USING 关键字。
select * from A inner join Busing(a);与显示连接不同之处:结果去除重重复的属性列
(3)自然连接(natural join)
自然连接是一种特殊的等值连接,他要求两个关系表中进行比较的必须是相同的属性列,无须添加连接条件,并且在结果中消除重复的属性列。要求是两个这两个关系中参与比较的属性列必须是同名、同属性。如果两个关系中有多组这样的属性,默认是全部比较的。
sql语句:Select …… from 表1 natural join 表2,例如:
A(a, b, c), B(a, d, e)
select *from A natural join B;
(4)交叉连接(cross join)
交叉连接即笛卡尔积,结果为A×B。
select * from A cross join B;等价于隐式:
select * from A, B;
外连接:
假设有两个表,学生表和选课表,如果有一部分学生没有选课,即只在学生表中有他们的信息,而在选课表中没有他们信息。那么以学号做内连接时,结果中只会出现两个表中都有的那些学生的信息,把为选课的学生信息丢失。使用外连接,可以将没选课的学生信息也保存在结果中,在相应的属性填上null。表:A(a, b, c) B(a, d, e)
(1)左外连接(LEFT JOIN或LEFT OUTER JOIN)
左向外联接的结果集包括 LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
图示:
代码:
SELECT * FROM A LEFT OUTER JOIN BON A.a = B.a(2)右外连接(RIGHT JOIN 或 RIGHT OUTER JOIN)
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
代码:
SELECT * FROM A RIGHT OUTER JOIN BON A.a = B.a
(3)全外连接(FULL JOIN 或 FULL OUTER JOIN)
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
图示:
代码:
SELECT * FROM A FULL OUTER JOIN BON A.a = B.a
对数据库中连接的认识目前是这样的,以后有补充再修改。
0 0
- 数据库中的join连接
- 数据库中的连接(JOIN)
- 数据库查询中的连接操作(join)
- 数据库——SQL中的join连接
- 数据库中的左连接(left join),右连接(right join)和内连接(inner join)
- 数据库中的左连接(left join)和右连接(right join)区别
- 数据库中的左连接(left join)和右连接(right join)区别
- 数据库中的左连接(left join)和右连接(right join)区别
- 数据库中的左连接(left join)和右连接(right join)区别
- 数据库中的左连接(left join)和右连接(right join)区别
- 数据库中的左连接(left join)和右连接(right join)区别
- 数据库中的左连接(left join)和右连接(right join)区别
- 数据库中的左连接(left join)和右连接(right join)区别
- 数据库中的左连接(left join)和右连接(right join)区别
- Sql 数据库 join 连接
- 数据库 连接(JOIN)
- 【数据库】Join连接
- 数据库的join连接
- whoosh-learning1 schema&index
- 山东第八届ACM省赛总结
- 3.1 JS window对象&&document文档对象&&变量的作用域&&隐藏样式&&入口函数
- MVC模式
- DriverManagerDataSource
- 数据库中的join连接
- Java运行时异常和非运行时异常
- 摄像机视角优化
- LeetCode 15. 3Sum 三个正数之和
- 简述Servlet的生命周期
- 接口的特性
- XML入门
- kettle中"数据库查询"与"数据库连接"步骤的区别
- QT All Modules QT所有模块