sql server几种Join的区别测试方法与union表的合并
/* sql server几种Join的区别测试方法
主要来介绍下Inner Join , Full Out Join , Cross Join , Left Join , Right Join的区别。 Inner Join:筛选两边都有的记录
Full Out Join:两边都筛选出来,匹配能匹配的,不能匹配的用NULL列出
Cross Join:列出两边所有组合,也称为笛卡尔集 A×B
Left Join:以左边的表为主表,列出主表所有记录,匹配能匹配的,不能匹配的用 NULL列出
Right Join:以右边的表为主表,列出主表所有记录,匹配能匹配的,不匹配的用NULL列出
*/
--创建测试表
CREATE TABLE CONSUMERS
(
CONSUMER_ID INT NOT NULL,
CONSUMER_NAME VARCHAR(10) NOT NULL
) CREATE TABLE ORDERS
(
CONSUMER_ID INT NOT NULL,
ORDER_ID VARCHAR(10) NOT NULL) --编测试数据
INSERT CONSUMERS VALUES ( 1, 'AA')
INSERT CONSUMERS values ( 2, 'BB')
INSERT CONSUMERS values ( 3, 'CC') INSERT ORDERS VALUES ( 2, 'O100001')
INSERT ORDERS VALUES ( 3, 'O100002')
INSERT ORDERS VALUES ( 3, 'O100003')
INSERT ORDERS VALUES ( 4, 'O100004') --Inner Join
--筛选两边都有的记录
SELECT *
FROM ORDERS o INNER JOIN CONSUMERS c
ON o.CONSUMER_ID = c.CONSUMER_ID --Full Out Join
--两边都筛选出来,匹配能匹配的,不能匹配的用NULL列出
SELECT *
FROM ORDERS o FULL OUTER JOIN CONSUMERS c
ON o.CONSUMER_ID = c.CONSUMER_ID --Cross Join
--列出两边所有组合,即笛卡尔集A×B
SELECT *
FROM ORDERS o CROSS JOIN CONSUMERS c --Left Join
--以左边的表为主表,列出主表所有记录,匹配能匹配的,不能匹配的用NULL列出
SELECT *
FROM CONSUMERS c left join ORDERS o
on c .CONSUMER_ID = o .CONSUMER_ID --Right Join
--以右边的表为主表,列出主表所有记录,匹配能匹配的,不能匹配的用NULL列出
SELECT *
FROM CONSUMERS c RIGHT JOIN ORDERS o
on c .CONSUMER_ID = o .CONSUMER_ID
select * from T1 union all select * from T2 ---不合并重复数据
select * from T1 union select * from T2 ---合并重复数据
/* sql server几种Join的区别测试方法主要来介绍下Inner Join , Full Out Join , Cross Join , Left Join , Right Join的区别。
Inner Join:筛选两边都有的记录 Full Out Join:两边都筛选出来,匹配能匹配的,不能匹配的用NULL列出 Cross Join:列出两边所有组合,也称为笛卡尔集 A×B Left Join:以左边的表为主表,列出主表所有记录,匹配能匹配的,不能匹配的用 NULL列出 Right Join:以右边的表为主表,列出主表所有记录,匹配能匹配的,不匹配的用NULL列出*/--创建测试表CREATE TABLE CONSUMERS (CONSUMER_ID INT NOT NULL,CONSUMER_NAME VARCHAR(10) NOT NULL) CREATE TABLE ORDERS(CONSUMER_ID INT NOT NULL, ORDER_ID VARCHAR(10) NOT NULL)
--编测试数据INSERT CONSUMERS VALUES ( 1, 'AA')INSERT CONSUMERS values ( 2, 'BB')INSERT CONSUMERS values ( 3, 'CC') INSERT ORDERS VALUES ( 2, 'O100001')INSERT ORDERS VALUES ( 3, 'O100002')INSERT ORDERS VALUES ( 3, 'O100003')INSERT ORDERS VALUES ( 4, 'O100004')
--Inner Join--筛选两边都有的记录SELECT *FROM ORDERS o INNER JOIN CONSUMERS cON o.CONSUMER_ID = c.CONSUMER_ID
--Full Out Join--两边都筛选出来,匹配能匹配的,不能匹配的用NULL列出SELECT *FROM ORDERS o FULL OUTER JOIN CONSUMERS cON o.CONSUMER_ID = c.CONSUMER_ID
--Cross Join--列出两边所有组合,即笛卡尔集A×BSELECT *FROM ORDERS o CROSS JOIN CONSUMERS c
--Left Join--以左边的表为主表,列出主表所有记录,匹配能匹配的,不能匹配的用NULL列出SELECT * FROM CONSUMERS c left join ORDERS oon c .CONSUMER_ID = o .CONSUMER_ID
--Right Join--以右边的表为主表,列出主表所有记录,匹配能匹配的,不能匹配的用NULL列出SELECT * FROM CONSUMERS c RIGHT JOIN ORDERS oon c .CONSUMER_ID = o .CONSUMER_ID
sql server几种Join的区别测试方法与union表的合并的更多相关文章
- SQL Server 几种锁的区别
NOLOCK(不加锁) 此选项被选中时,SQL Server 在读取或修改数据时不加任何锁. 在这种情况下,用户有可能读取到未完成事务(Uncommited Transaction)或回 ...
- SQL Server,MySQL,Oracle三者的区别
SQL Server,MySQL,Oracle三者的区别 2016-10-14 转自:SQL Server,MySQL,Oracle三者的区别 目录 1 Oracle.Sql Server.MySql ...
- sql server 维护计划与作业关系区别
sql server 维护计划与作业关系区别 对于二者的区别,你可以把维护计划看作是针对数据库进行维护的作业模板.自定义作业具有更广泛的用途,当然,也具有更复杂的操作.所以,如果 仅仅是做个数据库优化 ...
- SQL Server中INNER JOIN与子查询IN的性能测试
这个月碰到几个人问我关于"SQL SERVER中INNER JOIN 与 IN两种写法的性能孰优孰劣?"这个问题.其实这个概括起来就是SQL Server中INNER JOIN与子 ...
- 数据库 --> SQL Server 和 Oracle 以及 MySQL 区别
SQL Server 和 Oracle 以及 MySQL 区别 三者是目前市场占有率最高(依安装量而非收入)的关系数据库,而且很有代表性.排行第四的DB2(属IBM公司),与Oracle的定位和架构非 ...
- SQL Server char,varchar,nchar,nvarchar区别
SQL Server char,varchar,nchar,nvarchar区别 (1) 定义: char: 固定长度,存储ANSI字符,不足的补英文半角空格. nchar: 固 ...
- SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表)
原文:SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表) 作为SQL Server 2016(CTP3.x)的另一 ...
- 【SQL Server高可用性】数据库复制:SQL Server 2008R2中通过数据库复制,把A表的数据复制到B表
原文:[SQL Server高可用性]数据库复制:SQL Server 2008R2中通过数据库复制,把A表的数据复制到B表 经常在论坛中看到有人问数据同步的技术,如果只是同步少量的表,那么可以考虑使 ...
- SQL Server之LEFT JOIN、RIGHT LOIN、INNER JOIN的区别
很多人刚入门的时候分不清LEFT JOIN.RIGHT LOIN 和 INNER JOIN的区别,对它们的定义比较模糊,今天就简单的介绍一下它们的区别,对于入门的人来说,应该能够帮助你们理解. lef ...
随机推荐
- P2P原理和NAT打洞
1. P2P协议--点对点通信 1.1 常用的P2P协议 1.1.1 电驴(eMule) 一个电驴网络由服务器端和客户端两部分组成. 服务器端是客户端连接的.为了搜索和查找可以下载用户的桥梁.客户通过 ...
- pta08-图7 公路村村通 (30分)
08-图7 公路村村通 (30分) 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N ...
- Windows Store 应用获得设备 ID 的几种方案
本文为个人博客备份文章,原文地址: http://validvoid.net/solutions-get-device-id-for-uwp/ 通过生成唯一的设备 ID 进行数据统计是应用开发中一个非 ...
- phpcms v9 安装
把文件放到根目录下install文件夹下, 打开127.0.0.1:89/install/index.html
- 关于hibernate字段映射@colunm出现的问题以及jpa驼峰大写转_小写的问题探究
关于hibernate字段映射@colunm出现的问题以及jpa驼峰大写转_小写的问题探究2018年04月24日 15:47:26 守望dfdfdf 阅读数:735 标签: @colunmhibern ...
- Hibernate课程 初探一对多映射5-1 课程总结
1 单方一对多 xml one-to-many 配置 实体类 一方添加保存多方集合 2 单方多对一 xml many-to-one 配置 实体类 多方添加保存一方引用 3 常用属性 inver ...
- js屏蔽鼠标操作
document.body.onselectstart=document.body.oncontextmenu=function(){ return false;}
- sharepoint2007就地升级2010系列(三)升级系统
OK,上两篇我们完成sharepoint2007的预览,以及升级前的补丁准备.今天我们来正式进行升级windows server系统以及SQL数据库 升级之前首先确定 search服务停止而且被禁用, ...
- Miner3D Basic基础版
——强大的数据可视化软件 数据分析并不很复杂,Miner3D Basic基础版首先使用简单的方法,创造了强劲的图形驱动的数据处理模型,然后通过一个完整的视图为基本的交互环境,对基本数据进行分析,并通过 ...
- [QualityCenter]QC是什么?发展历程是怎样?
QC,即Quality Center,是一个基于Web的测试管理工具.它可以组织和管理应用程序测试流程的所有阶段,包括制定测试需求.计划测试.执行测试和跟踪缺陷.此外,通过Quality Center ...