aopstudio 的个人博客   >   标签墙   >   SQL 标签

数据库多表联合查询——笛卡尔积、自然连接、左外连接、右外连接、全外连接等介绍

2022-02-14

前言 面试的时候被面试官问到关于数据库多表查询的方式,其实以前都是学过的,但我当时只记得笛卡尔积(也没记起来这个术语,只知道是逗号分隔表名)和自然连接,有点惭愧。现在再重新整理并记录下来。 使用的表例子 来源于Abraham Silberschatz等著的《数据库系统概念(第6版)》中大学数据库的例子,可以参考这个链接:https://blog.csdn.net/m0_37961948/article/details/88426110 笛卡尔积 如果不限定任何条件,则表1中的每个元组和表2中的每个元组都会进行组合。这样的组合通常是没有意义的,一般会用where子句来限定查询的条件。比如我们想要查询每个教师的姓名和他教授的所有课程ID,我们就可以这样写 select name,course_id from instructor,teaches where instructor.ID=teaches.ID 如果不加where子句进行限定,那么查询出来就会有老师对应到其他老师教授的课程的结果。 自然连接 自然连接只考虑在两个表中都出现的属性上取值相同的元组对。回到instructor和te....