图片 7

SQL中的内连接与外连接

接连几日来运算格式

图片 1

链接运算由两部分组成:连接类型和一而再条件

三番两遍类型可分为:

  • INNER JOIN 内连接
  • LEFT OUTEENCORE JOIN   左外连接
  • SportageIGHT  OUTE中华V JOIN  右外接连
  • FULL OUTESportage JOIN 全外连接

接连条件可分为

  • NATURAL   自然连接(去掉重复属性)
  • ON   连接条件(保留重复属性)
  • USING 属性名1,属性名2… (保留钦命重复属性)

现实的组合有以下三种样式

瞩目:MYSQL未有全外连接

  • table1 INNE奥迪Q5 JOIN table2 ON 链接标准

SELECT *
FROM teacher INNER JOIN course
ON teacher.tn = course.tn

图片 2

地点的SQL语句中做了等值内连接,大家看来tn属性是再次的

  • table1 INNEOdyssey JOIN table2 USING (公共属性名)

SELECT *
FROM teacher INNER JOIN course
USING (tn)

图片 3

以USING中的属性作为接二连三条件(属性值相等才连接),并去掉重复属性(tn)

  • table1 LEFT JOIN table2 ON 链接标准

SELECT *
FROM teacher LEFT OUTER JOIN course
ON teacher.tn = course.tn

图片 4

左外连接会保留table1中的元组在结果聚焦不扬弃,使用ON条件,不去掉重复元组

  • table1 LEFT JOIN table2 USING (tn)

SELECT *
FROM teacher LEFT OUTER JOIN course
USING (tn)

图片 5
效果与上海教室黄金时代律,只是去掉重复属性(tn)

  • table1 RIGHT JOIN table2 USING (tn)

SELECT *
FROM teacher RIGHT OUTER JOIN course
USING (tn)

图片 6
保留table第22中学的元组

  • table1 NATURAL LEFT/RIGHT OUTER JOIN table2

SELECT *
FROM teacher  NATURAL LEFT OUTER JOIN course

图片 7
以此正是本来连接了,自然连接只好用在外连接在这之中,况且选拔当然连接是五个表中的国有性质都亟需展开等值决断

SQL中的连接能够分成内再三再四,外接连,以致交叉连接 (就是笛Carl积)
a. 交叉连接CROSS JOIN
若果不带WHERE条件子句,它将会回到被接连的五个表的笛Carl积,重返结果的行数等于五个表行数的乘积;
比方来讲,下列A、B、C 推行结果生龙活虎致,可是功能不一致等:
A:SELECT * FROM table1 CROSS JOIN table2
B:SELECT * FROM table1,table2
C:select * from table1 a inner join table2 b

至于关系代数连接运算的介绍请查看上边链接

内连接若无一点点名连接条件的话,和笛Carl积的穿插连接结果生机勃勃致,可是不相同于笛Carl积的地点是,未有笛Carl积那么复杂要先生成行数乘积的数据表,内一而再的频率要压倒笛Carl积的穿插连接。
唯独普通状态下,使用INNE奥迪Q5 JOIN要求钦赐连接条件。

b. 内连接INNER JOIN 两边表同一时候适合条件的重新整合

A:select a.*,b.* from table1 a,table2 b where a.id=b.id
B:select * from table1 a cross join table2 b where a.id=b.id (注:cross
join后加条件只好用where,无法用on)
C:select * from table1 a inner join table2 b on a.id=b.id

SQL中的种种JOIN(inner join,full outer join,left join,right join,cross
join 卡塔尔国

自然连接(会删除重复的列)

数据库的连接运算都以自然连接,因为不允许有双重的行(元组卡塔 尔(阿拉伯语:قطر‎存在。
例如: