关于数据库的左外连接 右外连接的意思是什么

关于数据库的左外连接 右外连接的意思是什么,第1张

1、左外连接:

用左外连接,指查询出来的是在右表中没有对应左表中的记录以及符合条件(cid=ocustomer_id)的数据,比如:

customers为左表,orders为右表

select cid,ocustomer_id,cname,oid order_id,order_number from customers c left outer join orders o on cid=ocustomer_id;

2、右外连接:

正好和左外连接相反,查询出来的结果是在左表中没有对应的项和以及符合条件(cid=ocustomer_id)的数据

左连接select from table1 as a left join table2 as b on aid = bid

右连接select from table1 as a right join table2 as b on aid = bid

连接分内连接,外连接,交叉连接,等值连接和自连接。内连接是在公共的列上使用比较 *** 作符从多表中抽取数据。(某一公共属性如EmployeeID,它是A表的主键和B表的外键)1左连接返回left outer join 关键字左侧指定的表的所以行和右侧指定的表的匹配的行。2右连接返回right outer join 关键字右侧指定的表的所以行和左侧指定的表的匹配的行。3完全外连接返回来自两个表的所以匹配和非匹配行使用full outer join 关键字。交叉连接就是笛卡尔积,A表有5行,B表有10行,使用交叉连接就有50行。等值连接是内连接的一种特殊形式,它是要选择所有表的所以属性列。自连接就是一个表和自己连接。为区分同一个表的两个实例,表被给出两个别名。

左连接和右连接区别为:语法公式不同、基础表不同、结果集不同。

一、语法公式不同

1、左连接:左连接的关键字是left join,语法公式为select from dave a left join bl b on a id=b id。

2、右连接:右连接的关键字是right join,语法公式为select from dave a right join bl b on a id=b id。

二、基础表不同

1、左连接:左连接的基础表为left join左侧数据表。

2、右连接:右连接的基础表为right join右侧数据表。

三、结果集不同

1、左连接:左连接的结果集为left join左侧数据表中的数据,再加上left join左侧与右侧数据表之间匹配的数据。

2、右连接:右连接的结果集为rightjoin右侧数据表中的数据,再加上rightjoin左侧与右侧数据表之间匹配的数据。

假设a表有两个字段,Aid、name, b 表也有两字段 Bid,nameid

其中 nameid是Aid在b 表中的外键。

a表有数据如下:

Aid name

1 a

2 b

3 c

b表有数据如下:

Bid nameid

1 1

2 1

3 1

4 2

5 2

用左连接,就是以左边那个表为标准,左边那表(表a)的所有记录必须得全部出现,例如:

select from a left join b on aAid=bnameid

结果应应该为:

Aid name Bid nameid

1 a 1 1

1 a 2 1

1 a 3 1

2 b 4 2

2 b 5 2

3 c NULL NULL

表a 的 Aid为1的出现了三次,Aid为2的出现了两次,Aid为3的出现了一次,全部都出现了。但因为在表b中没有以Aid为3对应的记录,所以用null来填充。

同样道理,用右连接,就是以右边那个表为标准,

例如:select from a right join b on aAid=bnameid

结果应该为:

Aid name Bid nameid

1 a 1 1

1 a 2 1

1 a 3 1

2 b 4 2

2 b 5 2

表b的记录必须全部出现,但没有出现 a表中Aid为3的记录,是因为b表中没有以之对应的记录,而且此时是以b表为标准的。

1、左连接, 左边的表不加限制,返回包括左表中的所有记录和右表中联结字段相等的记录

右连接),右边的表不加限制,返回包括右表中的所有记录和左表中联结字段相等的记录

全连接,左右两边的表都不加限制,只返回两个表中联结字段相等的行。

2、 左连接是已左边表中的数据为基准,若左表有数据右表没有数据,则显示左表中的数据右表中的数据显示为空。左联接的结果集包括 LEFT 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。

3、 右联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。

数据库查询分为 单表查询、连接查询、嵌套查询、集合查询

其中连接查询指涉及两个及以上表的查询,有等值连接、非等值连接、自然连接、自身连接、外连接五种

等值连接和非等值连接指where子句的查询条件(由比较运算符连接起来的条件,比较运算符有= >= <= > < != 等)比如:

select student,sc from student,sc where studentsno=scsno

自身连接是对本身表的连接,即内连接,即给自己取一个别名,当作两张表使用

如查询每一们课的间接先修课

select firstcno,secondcpno from course first ,course second where firstcpno=secondcno

(其中cno为课程号,cpno为先修课号)

外连接为连接信息不全时使用,增加一个万能行,比如学生95003没有选课,那么在选课表(sc)中就没有相应的元组,但是我们想从student表为主体列出每个学生的基本情况及选课情况,若没个学生没有选课,只输出其基本情况,选课信息为空即可,这是就要用到外连接,比如:

select student,sccno,scgrade from studentsc

where studentsno=scsno();

其中scsno() 中的号就是右连接,若号出现在左边,就为左连接

自然连接指在广义笛卡儿积中去掉重复属性列的连接

具体资料请参阅一些数据库书籍:)

以上就是关于关于数据库的左外连接 右外连接的意思是什么全部的内容,包括:关于数据库的左外连接 右外连接的意思是什么、数据库的左连接和右连接怎么写、请问在数据库中什么时候用左连接什么时候用右连接等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9448573.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存