SQL宝典:探究内连接,外连接,交叉连接 含实例(简体版)

本文详细介绍了SQL中的三种主要连接类型:内连接、外连接和交叉连接。内连接用于列出与连接条件匹配的数据行,分为等值连接、不等连接和自然连接;外连接则返回不仅包含符合连接条件的行,还包括左表、右表或两个表的所有数据行;交叉连接返回两个表所有数据行的笛卡尔积。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

探究内连接,外连接,交叉连接
(一)内连接内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。
内连接分三种:
1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。
使用等值连接,,在选择列表中列出LandTbl和TownTbl表中重复列(TownCode):
例:Select * from LandTbl as A inner join TownTbl as B on A.TownCode=B.TownCode
2、不等连接:在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。
这些运算符包括>、>=、<=、<、!>、!<和<>。
例:Select * from LandTbl as A inner join TownTbl as B on A.TownCode<>B.TownCode
3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。
使用自然连接,在选择列表中删除LandTbl和TownTbl表中重复列(TownCode):
Select A.*, B.CityCode, B.TownName from LandTbl as A inner join TownTbl as B on A.TownCode=B.TownCode

(二)外连接内连接时,返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。
左外连接,显示符全条件的数据行及左边数据表中不符合条件的数据行
例:
Select A.*, B.CityCode, B.TownName from LandTbl as A left (OUTER) join TownTbl as B on A.TownCode=B.TownCode
右外连接,显示符全条件的数据行及右边数据表中不符合条件的数据行
例:
Select A.*, B.CityCode, B.TownName from LandTbl as A right (OUTER) join TownTbl as B on A.TownCode=B.TownCode
全外连接,显示符全条件的数据行及左边和右边数据表中不符合条件的数据行
例:
Select A.*, B.CityCode, B.TownName from LandTbl as A full (OUTER) join TownTbl as B on A.TownCode=B.TownCode
(三)交叉连接交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。
select A.*, B.CityCode, B.TownName from LandTbl cross join TownTbl

(-^_^-)


附(供參考):

表TownTbl
栏位名称 中文描述
CityCode 县市代码
TownCode 乡镇代码
TownName 乡镇名称

表LandTbl
栏位名称 中文描述
LandCode土地代号
LandName 土地名称
LandQty 土地面积
TownCode 乡镇代码
Type 土地类别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值