数据操作---多表连接查询

1、若一个查询同时涉及两个或两个以上的表,则称之为连接查询。

2、连接查询包括内连接、外连接和交叉连接等。

3、连接查询中用于连接两个表的条件称为连接条件或连接谓词。

4、一般格式为: 表名1.列名1 比较运算符 表名2.列名2

内连接

 

 

例1:查询计算机系学生的修课情况,要求列出学生的名字、所修课的课程号和成绩。

SELECT Sname, Cno, Grade FROM Student JOIN SC ON Student.Sno = SC.Sno WHERE Sdept = '计算机系'

例2:查询信息系修了VB课程的学生的修课成绩,要求列出学生姓名、课程名和成绩。

SELECT Sname, Cname, Grade FROM Student s JOIN SC ON s.Sno = SC. Sno JOIN Course c ON c.Cno = SC.Cno WHERE Sdept = '信息系' AND Cname = 'VB'

自连接:

  • 为特殊的内连接
  • 相互连接的表物理上为同一张表。
  • 必须为两个表取别名,使之在逻辑上成为两个表。

例3:查询每一门课的间接先修课(即先修课的先修课)

SELECT FIRST.Cno,SECOND.Cpno FROM Course FIRST join Course SECOND on first.cpno=second.cno

注意: 1)需要给表起别名以示区别。 2)由于所有属性名都是同名属性,必须使用别名前缀。

外连接

 

 

例4:查询学生的修课情况,包括修了课程的学生和没有修课的学生。

SELECT Student.Sno, Sname, Cno, Grade FROM Student LEFT OUTER JOIN SC ON Student.Sno = SC.Sno

 

posted on 2022-03-28 19:30  辰逸1  阅读(107)  评论(0编辑  收藏  举报