例如:当我们想查询所有学生的基本情况和其选修课情况,若某个学生没有选课,则输出他的基本信息,其选课信息为空即可,这时就要使用到外连接。
SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade
FROM Student,SC
WHERE Student.Sno=SC.Sno(*)
外连接的表示方法为,在连接谓词的某一边加符号*(有的数据库系统中用+)。外连接就好像是为符号*所在边的表(本例是SC表)增加一个“万能”的行,这个行全部由空值组成,它可以和另一边的 表(本例是Student表)中所有不满足连接条件的元组进行连接。本例中即与Student表的95003和95006元组进行连接。由于这个“万能”行的各列全部是空值,因此在连接结果中,95003和95004两行中来自SC表的属性值全部为空值
执行结果如下所示:
Student.Sno Sname Ssex Sage Sdept Cno Grade
------------------------------------------------------------------------
95001 李勇 男 20 CS 1 92
95001 李勇 男 20 CS 2 85
95001 李勇 男 20 CS 3 88
95002 刘晨 女 19 IS 2 90
95002 刘晨 女 19 IS 3 80
95003 王敏 女 18 MA
95004 张力 男 19 IS
如果外连接符出现在连接条件的右边,称其为有右连接(如本例),如果连接符号出现在连接条件的左边,称其为左外连接