数据库七种连接方式总结

数据库七种连接方式总结,第1张

部门表数据

内连接inner join表示A表和B表的共有部分数据。

左连接 left join 表示A表和B表的公共部分,再加上A表的独有部分。

右连接right join 表示A表和B表公共部分,在加上B表的独有部分。

查找A表独有部分,则需查找A表和B表的共有部分并加上A表的独有部分,在将A表和B表的共有部分剔除即可(也就是挑选B的主键为空的数据)。

查找B表独有部分,则需查找A表和B表的共有部分并加上B表的独有部分,在将A表和B表的共有部分剔除即可(也就是挑选A的主键为空的数据)。

全连接则表示将A表和B表的公共部分及A表、B表的独有部分,所有数据都查询出来

指导图的全连接 full outer join 在mysql 语法报错!但是可以通过union关键字进行查询。

UNION会把 重复的行去掉,返回的行都是唯一的。如果想保留重复行,可以使用 UNION ALL 关键字。

UNION其实就是将A表和B表的共有部分及A表的独有部分(即左连接left join)加上A、B表共有部分及B表的独有部分(即右连接right join)合并起来,并进行去重即可。

查询A表独有部分并加上B表独有部分

实际就是查询A表的独有部分和B表的独有部分,使用UNION进行连接即可。

内连接是保证两个表中所有的行都要满足连接条件,而外连接则不然。在外连接中,某些不满条件的列也会显示出来,也就是说,只限制其中一个表的行,而不限制另一个表的行。这种连接形式在许多情况下是非常有用的。外连接只能用于两个表中。

在 Ansi 语法形式中,包含下列三种外连接关键字:

◆Left Outer Join 包含了左表中的全部行(表达式中第一个表)

◆Right Outer Join 包括了右表中的全部行(表达式中第二个表)

◆Full Outer Join 包括了左表和右表中所有不满足条件的行

在 SQL Server 连接语法形式中,包括下列两种外连接运算符:

◆* = 包含了左表中的全部行(表达式中第一个表)

◆= * 包括了右表中的全部行(表达式中第二个表)

左外连接和右连接都可以产生同样的结果,关键是看表达式中出现的前后顺序。

举例如下:

b.外连接

b1.左连接

select courses.cno,max(coursename),count(sno)

from courses LEFT JOIN grades ON courses.cno=grades.cno

group by courses.cno

左连接特点:显示全部左边表中的所有项目,即使其中有些项中的数据未填写完全。

左外连接返回那些存在于左表而右表中却没有的行,再加上内连接的行。

b2.右连接

与左连接类似

b3.全连接

select sno,name,major

from students FULL JOIN majors ON students.mno=majors.mno

两边表中的内容全部显示


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存