SQL中的内连接与外连接
关于关系代数连接运算的介绍请查看下面链接
http://www.cnblogs.com/xidongyu/articles/5980407.html
连接运算格式

链接运算由两部分构成:连接类型和连接条件
连接类型可分为:
- 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

这个就是自然连接了,自然连接只能用在外连接当中,并且使用自然连接是两个表中的公共属性都需要进行等值判断
SQL中的内连接与外连接的更多相关文章
- mysql,SQL标准,多表查询中内连接,外连接,自然连接等详解之查询结果集的笛卡尔积的演化
先附上数据. CREATE TABLE `course` ( `cno` ) NOT NULL, `cname` ) CHARACTER SET utf8 NOT NULL, `ctime` ) NO ...
- SQL中的连接可以分为内连接,外连接,以及交叉连接 。
SQL中的连接可以分为内连接,外连接,以及交叉连接 . 1. 交叉连接CROSS JOIN 如果不带WHERE条件子句,它将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积: 举例, ...
- 【SQL】SQL中笛卡尔积、内连接、外连接的数据演示
SQL的查询语句中,常使用到内连接.外连接,以及连接的基础--笛卡尔积运算. 在简单的SQL中,也许我们还分辨清楚数据如何连接,一旦查询复杂了,脑子也犯浆糊了,迷迷糊糊的. 本文,简单以数据形式记录连 ...
- SQL Server中内连接和外连接的区别
SQL Server中内连接和外连接的区别 假设一个数据库中有两张表,一张是学生表StudentInfo,一张是班级表ClassInfo,两张表之间用ClassId字段进行关联. 如果用内连接,正常的 ...
- SQL Server中的连接查询(内连接、外连接、交叉连接)
在数据库查询中,经常会用到两个有关联的表进行查询,需要把两个表中的数据按照某些条件查出来,这时就可以使用连接查询 连接查询分为三种:内连接.外连接和交叉连接 1. 内连接 内连接inner join ...
- 你真的会玩SQL吗?和平大使 内连接、外连接
你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...
- SQL - 内连接与外连接
PDF下载地址:SQL-内连接与外连接.pdf 连接查询在关系型数据库中经常用到,是多表联合查询的基础. 主要包含:内连接,外连接,交叉连接. SQL - 内连接与外连接 内连接 等值连接 不等值连接 ...
- 转:SQL的内连接与外连接
参考:http://www.cuiyongjian.com/post-130.html 在oracle的SQL语句常用的连接有内连接(inner join),外连接(outer join)等,内连接又 ...
- SQL的内连接与外连接
转自:http://blog.csdn.net/killerggf/article/details/6216102 有两个表A和表B. 表A结构如下: Aid:int:标识种子,主键,自增ID ...
- 你真的会玩SQL吗?内连接、外连接
原文:你真的会玩SQL吗?内连接.外连接 大多数人一般写多表查询会这样写select * from tbA ,tbB 没有用到JOIN关键字,太Low了,官网标准建议是用JOIN明确表间的关系,下面 ...
随机推荐
- Makefile关键字
@ makefile会把将要执行的命令行在命令执行前输出到屏幕上,使用@可以避免显示出命令本身 若@ echo 正在编译-则$make显示正在编译- 若echo 正在编译-则$make显示: echo ...
- python json
#-*-coding:utf-8-*- '''编码格式记得统一,不然容易出现中文乱码,推荐用utf-8''' import json ##################json单对象######## ...
- 深入理解C语言
语言只是一种工具,任何语言之间都是相通的,一通则百通,关键是要理解语言背后的思想,理解其思想,任何语言,拿来用就行了.语言没有好坏之分,任何语言既然存在自然有它存在的价值. 在一个到处是OOP的年代, ...
- C++浅析——继承类内存分布和虚析构函数
继承类研究 1. Code 1.1 Cbase, CTEST为基类,CTest2为其继承类,并重新申明了基类中的同名变量 class CBase { public: int Data; CBase() ...
- HttpURLConnection用法详解
针对JDK中的URLConnection连接Servlet的问题,网上有虽然有所涉及,但是只是说明了某一个或几个问题,是以FAQ的方式来解决的,而且比较零散,现在对这个类的使用就本人在项目中的使用经验 ...
- 第10章 同步设备I/O和异步设备I/O(2)_同步IO和异步IO基础
10.3 执行同步设备I/O (1)对设备读写操作的函数 ①ReadFile/WriteFile函数 参数 描述 hFile 文件句柄 pvBuffer 指向要接收文件数据的缓冲区或把缓冲区数据写入设 ...
- ComboBox的联动
窗体搭建: 实现功能: 加载年级下拉框 选中年级时加载出科目下拉框 加载年级下拉框: 第一步,在DAL层中写一个方法,检索所有的年级名称集合,返回的是泛型集合List<> public L ...
- TabBarController
1.两种方式创建系统TabBarController -(id)init{ self = [super init]; if( self ) { //newTask HSNewTaskViewContr ...
- Java 读取xlsx
读取特别大的xlsx文件时, 需要使用StreamingReader, 可以控制JVM内存峰值在200M以内 InputStream is = new FileInputStream(new File ...
- Linux下命令行安装配置android sdk
首先, 你得有个VPN 参考以下三篇完成Android SDK的安装 https://www.digitalocean.com/community/tutorials/how-to-build-and ...