SQL连接查询

sql连接查询:把多张表的列组合在一起,产生新的结果表。
1、内连接
1.1 inner join相等连接
1.2 natural join自然连接
1.3 cross join交叉连接
2、外连接
2.1 left join左外连接
2.2 right join右外连接
2.3 full join全连接
3、自连接
在这里插入图片描述
内连接
内连接将A表中的每一行和B表中的每一行进行比较,并找出满足连接谓词的组合。 当连接谓词被满足,A和B中匹配的行会按列组合成结果集中的一行。连接产生的结果集,可以定义为首先对两张表做笛卡尔积(交叉连接)–将A中的每一行和B中的每一行组合,然后返回满足连接谓词的记录。实际上,SQL产品会尽可能用其他方式去实现连接,笛卡儿积运算时非常没有效率的。

SQL 定义了两种不同语法方式去表示“连接”:
“显示连接符号”,它显示地使用关键词JOIN。
“隐式连接符号”,需要把连接的表放到SELECT语句的FROM部分,并用逗号隔开。这样就构成了一个“交叉连接”,WHERE语句放置一些过滤谓词(过滤条件)。那些过滤谓词在功能上等价于显示连接符号。
自然连接
natural join 是inner join的进一步特例化。两表做自然连接时,两表中的所有名称相同且数字类型相同的列都将被比较,这是隐式的。输出join的上的部分。自然连接得到的结果表中,两表中名称相同的列只出现一次.
交叉连接
交叉连接又称笛卡尔连接。把A表中的每一行和B表中的每一行进行连接,它是所有类型的内连接的基础。等价于内连接的连接条件为“永真”。
外连接
外连接并不要求连接的两表的每一条记录在对方表中都一条匹配的记录. 连接表保留所有记录 – 甚至这条记录没有匹配的记录也要保留. 外连接可依据连接表保留左表, 右表或全部表的行而进一步分为左外连接, 右外连接和全连接.外连接没有隐式的连接符号

左外连接
以左表为主表,左表中的每一行都会出现在结果集中,右表匹配不上的则为null

右外连接
以右表为主表,右表中的每一行都会出现在结果集中,左表匹配不上的则为null

全连接
全连接是左右外连接的并集. 连接表包含被连接的表的所有记录, 如果缺少匹配的记录, 即以 NULL 填充.
如, 这允许我们查看每一个在部门里的员工和每一个拥有雇员的部门, 同时, 还能看到不在任何部门的员工以及没有任何员工的部门.
自连接
一个表和自己连接,此时可以把该表重命名为A和B,剩下的连接方式根据需要进行选择。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值