外连接
外连接则扩充了内连接的功能,会把内连接中删除表源中的一些保留下来,由于保留下来的行不同,把外连接分为左外连接、右外连接和全外连接这3种连接。
1.左外连接
左外连接保留了第一个表的所有行,但只包含第二个表与第一表匹配的行。第二个表相应的空行被放入NULL值。
左外连接的语法:
use student SELECT fieldlist FROM table1 left join table2 ON table1.column=table2.column
下面把“student”表和“grade”表左外连接,第一个表“student”有不满足连接条件的行。在查询分析器中输入的SQL语句如下:
use student select * from student left join grade on student.学号=grade.学号
实现的过程如图1所示。
2.右外连接
右外连接保留了第二个表的所有行,但只包含第一个表与第二个表匹配的行。第一个表相应空行被入NULL值。
图1左外连接
右外连接的语法:
use student SELECT fieldlist FROM table1 right join table2 ON table1.column=table2.column
下面把“grade”表和“course”表右外连接,第二个表“course”有不满足连接条件的行。在查询分析器中输入的SQL语句如下:
use student select * from grade right join course on course.课程代号=grade.课程代号
实现的过程如图2所示。
图2右外连接
3.全外连接
全外连接会把两个表所有的行都显示在结果表中。
全外连接的语法:
use student SELECT fieldlist FROM table1 full join table2 ON table1.column=table2.column
把“grade”表和“course”表实现全连接,两个表都有不满足连接条件的行。在查询分析器中输入的SQL语句如下:
use student select * from grade full join course on course.课程代号=grade.课程代号
实现的过程如图3所示。
图3全外连接