外连接

外连接

外连接则扩充了内连接的功能,会把内连接中删除表源中的一些保留下来,由于保留下来的行不同,把外连接分为左外连接、右外连接和全外连接这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全外连接

原文地址:https://www.cnblogs.com/Setme/p/2536578.html