内连接和外连接的区别

本文详细介绍了SQL中的内连接和外连接。内连接只显示符合连接条件的记录,而外连接会返回至少一张表的全部数据,即使没有匹配。通过实例解释了内连接、外连接(左外、右外、全外)以及交叉连接的概念和应用场景,强调了正确选择连接类型对于查询性能的重要性。
摘要由CSDN通过智能技术生成

内连接的特性是只显示符合连接条件的记录,外连接必然会返回其中一张表的全部数据,哪怕不匹配。

假设一个数据库中有两张表,一张是学生表StudentInfo,一张是班级表ClassInfo,两张表之间用ClassId字段进行关联。

如果用内连接(inner join on),正常的写法是这样的:

Select StudentInfo.*,ClassInfo.* from StudentInfo inner join ClassInfo on StudentInfo.ClassId=ClassInfo.ClassId

用这种写法不会出现笛卡尔积,但是内连接是允许省略连接条件的,也就是可以省略掉on后面的内容,所以如果写成这样:

Select StudentInfo.*,ClassInfo.* from StudentInfo,ClassInfo

也是可以通过编译的,但是这样一来就产生了一个笛卡尔积。但是因为怕产生笛卡尔积而拒绝使用内链接是不正确的,只要不省略掉连接条件,是不会产生全部的笛卡尔积,会产生过滤后的笛卡尔积。

笛卡尔积:
假设集合A={a,b},集合B={

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值