很简单的知识点,今天有点搞不清楚左外连接,右外连接:详见以下:

--表stu 
id name 
1, Jack 
2, Tom 
3, Kity 
4, nono 
--表exam 
id grade 
1, 56 
2, 76 
11, 89

内连接 (显示两表id匹配的) 
select stu.id,exam.id,stu.name, exam.grade from stu inner join exam on stu.id=exam.id

-------------------------------- 
1 1 Jack 56 
2 2 Tom 76

左连接(显示join 左边的表的所有数据,exam只有两条记录,所以stu.id,grade 都用NULL 显示) 
select stu.id,exam.id,stu.name, exam.grade from stu left join exam on stu.id=exam.id 
1 1 Jack 56 
2 2 Tom 76 
3 NULL Kity NULL 
4 NULL nono NULL

右连接(与作连接相反,显示join右边表的所有数据) 
select stu.id,exam.id,stu.name, exam.grade from stu right join exam on stu.id=exam.id 
1 1 Jack 56 
2 2 Tom 76 
NULL 11 NULL 89

 
 
内连接取交集,外连接分左和右, 
左连接左边的全取, 
右连接右边的全取

 

内连接:进行连接的两个表对应的相匹配的字段完全相同的连接。

外连接又分为左外连接和右外连接。 
左连接即LEFT OUTER JOIN: 
两个表进行左连接时会返回左边表中的所有的行和右边表中与之相匹配的列值没有相匹配的用空值代替。

右连接即RIGHT OUTER JOIN: 
两个表进行右连接时会返回右边表中的所有的行和左边表中与之相匹配的列值没有相匹配的用空值代替。

 
内联接:显示两个表想匹配的行,左连接显示JION左表的行,右表没有想匹配的,用NUL代替!右联接和左连接相反,全连接和左右连接的合计。

使用左向外联接 
假设在 city 列上联接 authors 表和 publishers 表。结果只显示在出版商所在城市居住的作者(本例中为 Abraham Bennet 和 Cheryl Carson)。

若要在结果中包括所有的作者,而不管出版商是否住在同一个城市,请使用 SQL-92 左向外联接。下面是 Transact-SQL 左向外联接的查询和结果: 

 

sql数据库中常用连接的更多相关文章

  1. SQL数据库中临时表、临时变量和WITH AS关键词创建“临时表”的区别

    原文链接:https://www.cnblogs.com/zhaowei303/articles/4204805.html SQL数据库中数据处理时,有时候需要建立临时表,将查询后的结果集放到临时表中 ...

  2. SQL Server中常用的SQL语句(转):

    SQL Server中常用的SQL语句 转自:http://www.cnblogs.com/rainman/archive/2013/05/04/3060428.html 1.概述 名词 笛卡尔积.主 ...

  3. SQL Server中内连接和外连接的区别

    SQL Server中内连接和外连接的区别 假设一个数据库中有两张表,一张是学生表StudentInfo,一张是班级表ClassInfo,两张表之间用ClassId字段进行关联. 如果用内连接,正常的 ...

  4. Android学习笔记——保存数据到SQL数据库中(Saving Data in SQL Databases)

    知识点: 1.使用SQL Helper创建数据库 2.数据的增删查改(PRDU:Put.Read.Delete.Update) 背景知识: 上篇文章学习了保存文件,今天学习的是保存数据到SQL数据库中 ...

  5. Android - 数据存储 -在SQL数据库中保存数据

    对于重复的或结构化的数据,保存到数据库中是很好的选择,比如联系人信息.这里假设你对SQL数据库大体上了解然后帮助你学习Android上的SQLite数据库.在Android数据库上需要用到的API可以 ...

  6. 分布式SQL数据库中部分索引的好处

    在优锐课的java学习分享中,探讨了分布式SQL数据库中部分索引的优势,并探讨了性能测试,结果等. 如果使用局部索引而不是常规索引,则在可为空的列上(其中只有一小部分行的该列不具有空值),然后可以大大 ...

  7. SQL语句:把Excel文件中数据导入SQL数据库中的方法

    1.从Excel文件中,导入数据到SQL数据库情况一.如果接受数据导入的表不存在 select * into jd$ from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ...

  8. PowerDesigner 设计数据库中常用脚本

    PowerDesigner 设计数据库中常用脚本 数据库设计 物理模型设置 Name转Comment脚本 '********************************************** ...

  9. SQL Server 中断开连接到指定数据库的所有连接

    常用的情形是在部署测试数据库时需要通过SQL代码自动重新创建数据库,在删除的时候往往会发生错误,错误信息一般会指出目前有用户连接到这个数据库上,因此不能删除. 实现的方式是通过查询指定数据库中活跃的 ...

随机推荐

  1. 洛谷P1028数的计算

    https://www.luogu.org/problemnew/show/P1028 只用递归会超时,需要用递归型动规,用一个数组保存已经算过的值,避免重复计算. 求数字为n的方案数的最优子结构为: ...

  2. win7 32位机安装VMware win7 64位虚拟机

    VMware10虚拟机怎么安装win7系统(详细教程):https://jingyan.baidu.com/article/86f4a73ec62e8f37d65269a1.html 然而上述教程想不 ...

  3. Ural 1091 Tmutarakan Exams

    Tmutarakan Exams Time Limit: 1000ms Memory Limit: 16384KB This problem will be judged on Ural. Origi ...

  4. BNUOJ 14381 Wavio Sequence

    Wavio Sequence Time Limit: 3000ms Memory Limit: 131072KB This problem will be judged on UVA. Origina ...

  5. cookie & cookies

    cookie & cookies "use strict"; /** * * @author xgqfrms * @license MIT * @copyright xgq ...

  6. zoj——2588 Burning Bridges

    Burning Bridges Time Limit: 5 Seconds      Memory Limit: 32768 KB Ferry Kingdom is a nice little cou ...

  7. MySQL Workbench查看和修改表字段的Comment值

    查看: 选择单个表->[右键]->[Table Inspector] 再选择Columns选项卡即可,把表格拉倒最后一列. 编辑: 选择单个表->[右键]->[Alter Ta ...

  8. FreeMarker与Spring MVC 4结合错误:Caused by: java.lang.NoClassDefFoundError: org/springframework/ui/freemarker/FreeMarkerConfiguration

    添加spring-context-support的依赖到POM: <!-- spring-context-support --> <!-- https://mvnrepository ...

  9. 在Linux上配置DRBD部署

    drbd 工作原理DRBD是一种块设备,能够被用于高可用(HA)之中.它相似于一个网络RAID-1功能.当你将数据写入本地 文件系统时,数据还将会被发送到网络中还有一台主机上.以同样的形式记录在一个文 ...

  10. 箭头函数的 this

    在非严格模式下,匿名函数和定时器中的 this 由于没有默认的宿主对象,因此指向 window: 而在严格模式下,匿名函数和定时器中的 this 由于没有默认的宿主对象,因此为 undefined. ...