博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL中的内连接与外连接
阅读量:6215 次
发布时间:2019-06-21

本文共 1058 字,大约阅读时间需要 3 分钟。

关于关系代数连接运算的介绍请查看下面链接

连接运算格式

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

连接类型可分为:

  • 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

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

转载于:https://www.cnblogs.com/xidongyu/p/5997038.html

你可能感兴趣的文章
笨兔兔的故事——带你了解Ubuntu,了解Linux 第二章 醒来
查看>>
spark sql简单示例
查看>>
CSRF防范简介
查看>>
关于HTTP keep-alive的实验
查看>>
前嗅ForeSpider脚本教程:字段取值脚本
查看>>
分析NTFS文件系统内部结构
查看>>
android程序加载so动态库和jar包
查看>>
nagios插件性能数据显示格式
查看>>
创建临时表的语法
查看>>
数学相关
查看>>
深入理解Magento – 第三章 – 布局,块和模板
查看>>
外来键简介和sql语句
查看>>
Yii用ajax实现无刷新检索更新CListView数据
查看>>
LNMP--Nginx不记录指定文件日志
查看>>
在线聊天系统
查看>>
SQL Server 命名实例改为默认实例
查看>>
浅谈用户行为分析之用户身份识别:cookie 知多少?
查看>>
Java 下的 JSON库性能比较:JSON.simple vs. GSON vs. Jackson
查看>>
Log4j2 日志性能之巅
查看>>
我的友情链接
查看>>