SQL中的内连接与外连接--Java学习网

2021-05-31 16:12:45 浏览数 (1)

连接运算格式

链接运算由两部分构成:连接类型和连接条件

连接类型可分为:

  • 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

这个就是自然连接了,自然连接只能用在外连接当中,并且使用自然连接是两个表中的公共属性都需要进行等值判断

0 人点赞