SQL笔记——连接查询

连接查询
定义

将两个(以上)的表先连接起来在进行查询

等值连接
实例

查询选修了课程的学生以及所选课程的情况

SELECT S.*,SC.*
FROM S,SC
WHERE S.Sno=SC.Sno;
执行过程

1.先在表1当中取出第一个元组x1,然后从头开始扫描表2,逐一查找满足连接条件的元组x2,找到后就将x1和x2连接成一个元组,记为x,x即为结果表当中的一个元组,注意,一趟搜索之后所得到的x可能不止一个,也可能为0

2.然后取出表1的第二个元组重复上述操作,直到表1中的元组取完为止

自身连接
定义

一个表于自己本身进行连接

例子

查询有先选课的课程的课程号和他的先选课的先选课的课程号

SELECT a.Cno,b.Cpno
FROM C as a,C as b
WHERE a.Cpno=b.Cno;
外连接
定义表

以指定表为连接主体,将主体表当中的所有元组都输出

构建过程

非主体表有"虚行"的存在,该元组全部由空值组成

虚行可以于主体表当中不满足连接条件的元组进行连接,来自非主体表当中的元素仍旧为空值

连接类型

1.内连接

​ 即普通连接(用WHERE中表达的连接),还有一种表达形式:

	<1> INNER JOIN <2> ON <连接条件>

2.左外连接(左边的表为主体表,右边表有虚行)

	<1> LEFT OUTER JOIN <2> ON <连接条件>

3.右外连接(右边的表为主体表,左边表有虚行)

	<1> LEFT OUTER JOIN <2> ON <连接条件>

4.全外连接(左边表和右边表都有虚行)

	<1> LEFT OUTER JOIN <2> ON <连接条件>
例子

查询所有学生信息以及选课情况

	SELECT S.*,Cno,Grade
	FROM S LEFT OUTER JOIN SC ON (S.Sno=SC.Sno)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值