连接运算格式
链接运算由两部分构成:连接类型和连接条件
连接类型可分为:
- INNER JOIN 内连接
- LEFT OUTER JOIN 左外连接
- RIGHT OUTER JOIN 右外连接
- FULL OUTER JOIN 全外连接
连接条件可分为
- NATURAL 自然连接(去掉重复属性)
- ON 连接条件(保留重复属性)
- USING 属性名1,属性名2… (保留指定重复属性)
具体的组合有以下几种形式
注意:MYSQL没有全外连接
- table1 INNER JOIN table2 ON 链接条件
SELECT * FROM teacher INNER JOIN course ON teacher.tn = course.tn
上面的SQL语句中做了等值内连接,我们看到tn属性是重复的
- table1 INNER JOIN table2 USING (公共属性名)
SELECT * FROM teacher INNER JOIN course USING (tn)
以USING中的属性作为连接条件(属性值相等才连接),并去掉重复属性(tn)
- table1 LEFT JOIN table2 ON 链接条件
SELECT * FROM teacher LEFT OUTER JOIN course ON teacher.tn = course.tn
左外连接会保留table1中的元组在结果集中不丢失,使用ON条件,不去掉重复元组
- table1 LEFT JOIN table2 USING (tn)
SELECT * FROM teacher LEFT OUTER JOIN course USING (tn)
效果与上图一致,只是去掉重复属性(tn)
- table1 RIGHT JOIN table2 USING (tn)
SELECT * FROM teacher RIGHT OUTER JOIN course USING (tn)
保留table2中的元组
- table1 NATURAL LEFT/RIGHT OUTER JOIN table2
SELECT * FROM teacher NATURAL LEFT OUTER JOIN course
这个就是自然连接了,自然连接只能用在外连接当中,并且使用自然连接是两个表中的公共属性都需要进行等值判断