数据库的常见的各种连接解释[亲测有效]

数据库的常见的各种连接解释[亲测有效]在使用关系数据库时,我们经常会用到连接多张表来获取记录。对于左连接,右连接,内连接等各种连接,新手往往容易理不清。

欢迎大家来到IT世界,在知识的湖畔探索吧!

数据库的常见的各种连接解释[亲测有效]

在使用关系数据库时,我们经常会用到连接多张表来获取记录。对于左连接,右连接,内连接等各种连接,新手往往容易理不清,因此作如下记录,以下以oracle为例:

1、内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符)。包括相等联接和自然联接。

内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 a和b表中a的id号和b的parent_id号相同的所有行:select a.*,b.* from a inner join b on a.id=b.parent_id 。

数据库的常见的各种连接解释[亲测有效]

2、外联接。外联接可以是左向外联接、右向外联接或完整外部联接。

在 FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:

1)LEFT JOIN或LEFT OUTER JOIN

左向外联接的结果集包括 LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。例如: select a.*,b.* from a left join b on a.id=b.parent_id 。

2)RIGHT JOIN 或 RIGHT OUTER JOIN

右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。例如: select a.*,b.* from a right join b on a.id=b.parent_id 。

3)FULL JOIN 或 FULL OUTER JOIN

完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。例如:select a.*,b.* from a full join b on a.id=b.parent_id 。

数据库的常见的各种连接解释[亲测有效]

3、交叉联接

交叉联接有两种,显式的和隐式的,不带ON子句,返回的是两表的乘积,也叫笛卡尔积。

语句1:隐式的交叉连接,没有CROSS JOIN。例如:select o.id, o.order_number, c.id, c.name from orders o , customers c where o.id=1;;

语句2:显式的交叉连接,使用CROSS JOIN。例如:select o.id,o.order_number,c.id, c.name from orders o cross join customers c where o.id=1;

语句1和语句2的结果是相同的。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/18384.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信