1.等值联接查询
等值联接在内部联接的联接条件中使用“=”运算符。它返回两个表中的所有列,但只返回在联接列中具有相等值的行。
【例4-27】 将“学生”表和“专业”表进行等值联接。
代码如下。
结果如图4-28所示。
注意:
在多表查询时,如果要引用不同表的同名属性,则应在列名前加上表名前缀,即用“表名.属性名”的形式加以区分。
内部联接的运算符也可用于非等值联接,但不常用。
2.自然联接查询
在等值联接查询中,如果SELECT子句中不存在重复列则称为自然联接查询。
图4-28 等值联接
【例4-27】 的结果集中存在两个重复的Zyh列,下面的例子讲的就是如何去掉重复列。
【例4-28】 查询学生的学号、姓名、专业名。
代码如下。
结果如图4-29所示。
图4-29 自然联接
3.自联接查询
一个表可以与自己进行联接,称为自联接。使用自联接的时候必须为表指定别名,以示区别。
【例4-29】 查询至少学过两门课的学生学号。
代码如下。
结果如图4-30所示。
图4-30 自联接
还可以按下面形式书写代码。
4.左向外部联接查询
内部联接消除了与另一个表中的行不匹配的行,而外部联接返回FROM子句中提到的至少一个表的所有行。在左向外部联接中,将返回左表中的所有行,其中左表不满足条件的记录在拼接时,右表的相应列中填充NULL值。(www.xing528.com)
【例4-30】 将“课程”表与“教师”表进行左向外部联接,查看教学任务安排情况。
代码如下。
结果如图4-31所示。
图4-31 左向外部联接
5.右向外部联接查询
在右向外部联接中,将返回右表中的所有行,其中右表不满足条件的记录在拼接时,左表的相应列中填充NULL值。
【例4-31】 将“课程”表与“教师”表进行右向外部联接,查看教学任务安排情况。
代码如下。
结果如图4-32所示。
图4-32 右向外部联接
6.完整外部联接查询
在完整外部联接中,将返回两个表的所有行。其中,左表中不满足条件的记录在拼接时,右表的相应列中填充NULL值;右表中不满足条件的记录在拼接时,左表的相应列中填充NULL值。
【例4-32】 将“课程”表与“教师”表进行完整外部联接,查看教学任务安排情况。
代码如下。
结果如图4-33所示。
图4-33 完全外部联接
7.联接三个或更多的表
在FROM子句中允许使用多个ON实现联接三个或更多的表。
【例4-33】 将“课程”表与“教师”表进行完整外部联接,查看教学任务安排情况。
代码如下。
结果如图4-34所示。
图4-34 三个表联接
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。