连接查询
上一节
下一节
连接查询指的是在两个或者多个表之间的查询,在连接之前,我们要分清关系表的主键和外键,也就是表的内部联系和表之间的联系。
我们以学习选课数据库的以下三个关系为例:

3.2.1 连接查询例题导入(6分钟)
题目1:查询选修课程为‘C01’的学生的姓名和成绩。
从上面的例子,我们再来总结一下连接查询的SQL语法:
首先,找查询的过程中的隐形和显性条件,看相关的属性涉及的关系表,然后再看关系表中涉及的公共属性,按照语法:
SELECT 属性列集合
FROM 涉及的表集合
WHERE 公共属性相等+其他条件集合
如本例题的:
SELECT S.Sno,SC.grade //S.Sn因为涉及共同属性,不能省略写成Sno,但SC.grade中,可以写成grade.
FROM S,SC//S和SC必须都要有,顺序可以随意
WHERE SC.Sno=SC.Sno and Cno='C01'// SC.Sno=SC.Sno必须要有,否则就不是等值连接,答案会出错。条件中and连接,条件顺序随意,但是不能少条件。
连接查询的注意事项(12分钟)
3.2.2 题目2:查询选修课程为‘数据结构’的学生的姓名和成绩。(6分钟)
以下是涉及到三个关系表的操作,步骤和前面的一致,只是多了一个表。通过前两个关系表建立的联系,再和第三个关系表建立联系。第一个表和第三个表无法直接建立联系,必须找到起到桥梁作用的关系表。
3.2.3 自身连接(6分钟)
涉及到自身和自身的连接的问题,同学们可以结合笛卡尔积和选择来进行。

