sql数据库的表连接方式图文详解

sql数据库表连接,主要分为:内连接外连接(左连接、右连接 、全连接)、交叉连接,今天统一整合一下,看看他们的区别。

首先建表填充值。

学生表:student(id,姓名,年龄,性别 )

成绩表:score(id,学生id,成绩)

一、内连接(inner join……on)

select student.* ,Score.* from student inner join Score on student.id=Score.sid

查询结果如下:

关系如下图:

总结:inner join取两表的交集。

二、外连接

外连接包括 左连接、右连接、全连接  (left|right | full outer join ……on),其中outer可以省略

(1)左连接(left join ……on)

select student.* ,Score.* from student left join Score on student.id=Score.sid

查询结果如下:

关系如下图:

总结:left join 以左表为准,查询出左表的所有数据,右表中有对应的则显示出来,没有对应的则显示为null.

注:A left join B on  与  A,B where  有相同效果,如下:

select student.* ,Score.* from student inner join Score on student.id=Score.sid

select student.* ,Score.* from student,Score where student.id=Score.sid

(2)右连接(right join ……on)

select student.* ,Score.* from student right join Score on student.id=Score.sid

关系如下图:

总结:right join 以右表为准,查询出右表的所有数据,左表中有对应的则显示出来,没有对应的则显示为null.

(3)全连接(full join ……on)

select student.* ,Score.* from student full join Score on student.id=Score.sid

总结:full join 是为left和right的集合,某表中某一行在另一表中无匹配行,则相应列的内容为NULL。

三、交叉连接(cross join),注意没有on条件

select student.* ,Score.* from student cross join Score

叉联接也称作笛卡尔积。相当于两个表中的所有行进行排列组合。

若表a有X行,表b有Y行,则将返回XY行记录。

时间: 2024-10-10 22:34:48

sql数据库的表连接方式图文详解的相关文章

FineBI学习系列之FineBI与IBM DB2数据连接(图文详解)

不多说,直接上干货! 这是来自FineBI官网提供的帮助文档 http://help.finebi.com/http://help.finebi.com/doc-view-562.html 目录: 1.描述 2.操作 3.注意事项 1.描述 IBM DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下. DB2提供了高层次的数据利用性.完整性.安全性.可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令

FineBI学习系列之FineBI与IBM Informix数据连接(图文详解)

不多说,直接上干货! 这是来自FineBI官网提供的帮助文档 http://help.finebi.com/http://help.finebi.com/doc-view-563.html 目录: 1.描述 2.操作 1.描述 Informix是IBM公司出品的关系数据库管理系统(RDBMS)家族.作为一个集成解决方案,它被定位为作为IBM在线事务处理(OLTP)旗舰级数据服务系统.下面我们介绍如何在FineBI中连接Informix数据库. 2.操作 2.1 配置信息 驱动     URL  

FineBI学习系列之FineBI与HBase数据连接(图文详解)

不多说,直接上干货! 这是来自FineBI官网提供的帮助文档 http://help.finebi.com/http://help.finebi.com/doc-view-584.html 目录: 1.描述 2.操作 3.注意事项 1.描述 Hbase作为大数据平台的重要组成部分,在数据存储方面起到了至关重要的作用,因此BI连接Hbase也是必不可少的功能之一.FineBI提供的方法是通过phoenix连接hbase,下面我们将详细介绍如何进行连接. 2.操作 2.1 配置信息   驱动 URL

数据库多表连接方式介绍-HASH-JOIN

1.概述 hash join是一种数据库在进行多表连接时的处理算法,对于多表连接还有两种比较常用的方式:sort merge-join 和 nested loop. 为了比较清楚的介绍hash join的使用场景以及为何要引入这样一种连接算法,这里也会顺带简单介绍一下上面提到的两种join方式. 连接方式是一个什么样的概念,或者说我们为何要有而且有好几种,对于不太了解数据库的人来讲可能这些是开头的疑惑.简单来讲,我们将数据存在不同的表中,而不同的表有着它们自身的表结构,不同表之间可以是有关联的,

SqlServer2005 数据库发布、订阅配置图文详解

一:准备条件 <1>软件准备条件 机器A端:SqlServer2005 Management Studio + WinServer 2003 Enterprise (作为发布服务器) 机器B端:Sqlserver2005 Management Studio Express + WinXP(作为订阅服务器) (可以用别的,不过订阅服务器版本不得高于发布服务器版本) <2>数据库复制准备条件 1. 所有被同步的数据表尽量要用主键,如果没有主键也没有关系,SqlServer会提示为表自动

sql sever 2008表连接方式总结

use master go if exists(select * from sysdatabases where name = '学生管理系统') drop database 学生管理系统 create database 学生管理系统 on primary ( name = '学生管理系统_data', filename = 'E:\temp\学生管理系统_data.mdf', size = 10MB, filegrowth = 1MB ) log on ( name = '学生管理系统_log

SQL优化之表连接方式

1.嵌套循环(DESTED LOOPS) Note:嵌套循环被驱动表必须走索引,而且索引只能走INDEX UNIQUE SCAN或者INDEX RANGE SCAN SQL> select /*+gather_plan_statistics use_nl(e,d) leading(e)*/* from emp e,dept d where d.deptno=e.deptno; 已选择14行. 执行计划 -----------------------------------------------

EF三种编程方式图文详解

Entity Framework4.1之前EF支持"Database First"和"Model First"编程方式,从EF4.1开始EF开始支持支持"Code First"编程方式,今天简单看一下EF三种编程方式. 开始介绍这三种EF操作方式之前,首先在Visual Studio 2013中建立一个数据库连接,这里我们以"EFDemo"数据库为例: 说明:在这里我用的是Lenovo\SQLEXPRESS这个数据库,当然用l

FineBI学习系列之FineBI与Spark数据连接(图文详解)

不多说,直接上干货! 这是来自FineBI官网提供的帮助文档 http://help.finebi.com/http://help.finebi.com/doc-view-581.html 目录: 1.描述 2.操作 3.注意事项 1.描述 Spark是一种通用的大数据快速处理引擎.Spark使用Spark RDD. Spark SQL. Spark Streaming. MLlib. GraphX成功解决了大数据领域中离线批处理.交互式查询.实时流计算.机器学习与图计算等最重要的任务和问题.S