连接查询
同时涉及到两个以上的查询
-
连接条件:用来连接两个表的条件
[<表名1>]<列名1><比较运算符>[<表名2>]<列名2>
【例】Student.Sno=SC.Sno -
连接字段:连接条件的列名称
如:Sno为上面例子中的连接字段
注意:连接字段类型必须是可比的,但名字不必相同
等值连接与非等值连接查询
等值连接
连接运算符为=
[例3.49]查询每个学生及其选修课程的情况
SELECT Student.* , SC.*
FROM Student,SC
WHERE Student.Sno=SC.Sno
通俗理解,等值连接就相当于对两个表做笛卡尔积,然后在笛卡尔积的结果里面挑出符合条件的部分。
自然连接
[例3.50]对[例3.49]用自然连接完成。
SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade
FROM Student,SC
WHERE Student.Sno=SC.Sno;
自然连接也可看作是在广义笛卡尔积R×S中选出同名属性上符合相等条件元组,再进行投影,去掉重复的同名属性,组成新的关系。
自然连接和一般的等值连接相比,可以省略多余重复的列,效果如下:
一条SQL语句可以同时完成选择和连接查询
[例3.51]查询选修2号课程且成绩在90分以上的所有学生的学号和姓名。
SELECT Student.Sno,Sname
FROM Student,SC
WHERE Student.Sno=SC.Sno AND SC.Cno=‘2’ AND