1.2 本篇小说内容概要

1   概述

1.3 本篇文章内容总结

1.1  已发布【SqlServer系列】文章

在SQL语句中,关于表连接,若根据表的数量来划分,能够划分为单表连接、两表连接和两表以上连接,在本篇小说中,首要教师两表连接,别的多表连接原理相近。

  • 【SqlServer种类】SQLSE酷路泽VEPRADO安装教程 

  • 【SqlServer种类】数据库三大范式

  • 【SqlServer种类】表单查询
  • 【SqlServer系列】表连接
  • 【SqlServer系列】子查询
  • 【SqlServer连串】开启Sqlserver远程访谈
  • 【SqlServer类别】集结运算

至于表连接有众多档案的次序,本文主要教师交叉连接,内接二连三,外接连,自连接。

1.2  本篇随笔内容概要

1.4 本章测量检验样表和Sql

图片 1

政工场景:有两张表,分为为买主表Customers和消费者订单表Orders,SQL语句分别如下:

1.3  本篇小说内容归纳

创制Customes并开头化

在SQL语句中,关于表连接,若依据表的数量来划分,能够划分为单表连接、两表连接和两表以上连接,在本篇文章中,主要助教两表连接,其余多表连接原理相符。

--CREATE TABLE CustomersCREATE TABLE Customers( CustID VARCHAR(50) NOT NULL, --顾客ID CustName VARCHAR(50),--顾客姓名 CustCompany VARCHAR(50) --顾客公司)--Initial CustomersINSERT INTO Customers VALUES('SXN-DD-01','赵武','A')INSERT INTO Customers VALUES('SXN-DD-02','刘杨','B')INSERT INTO Customers VALUES('SXN-DD-03','张永为','C')INSERT INTO Customers VALUES('SXN-DD-04','李龙飞','D')INSERT INTO Customers VALUES('SXN-FF-01','邓华','E')INSERT INTO Customers VALUES('SXN-HH-01','张涛明','F')

关于表连接有成都百货上千项目,本文首要传授交叉连接,内接连,外接连(左外界连接,右外界连接,全连接),自连接。

询问结果为:

1.4  本章测验样表和Sql

开创Order表并开始化

业务场景:有两张表,分为为买主表Customers和买主订单表Orders,SQL语句分别如下:

CREATE TABLE Orders( CustID VARCHAR(50) NOT NULL, --顾客ID OrdetID VARCHAR(50) --订单ID)--Initial OrdersINSERT INTO Orders VALUES('SXN-DD-01','SCCCCFFFFFSSOX002')INSERT INTO Orders VALUES('SXN-DD-02','SCCCCFFFFFSSOX0X2')INSERT INTO Orders VALUES('SXN-DD-03','')INSERT INTO Orders VALUES('SXN-DD-04','')INSERT INTO Orders VALUES('SXN-DD-05','SCCCCFFFFFSSOX0H2')INSERT INTO Orders VALUES('SXN-DD-06','')

始建Customes并初步化

询问结果为:

 1 --CREATE TABLE Customers
 2 CREATE TABLE Customers
 3 (
 4    CustID VARCHAR(50) NOT NULL,  --顾客ID
 5    CustName  VARCHAR(50),--顾客姓名
 6    CustCompany VARCHAR(50) --顾客公司
 7 )
 8 
 9 --Initial Customers
10 
11 INSERT INTO Customers VALUES('SXN-DD-01','赵武','A')
12 INSERT INTO Customers VALUES('SXN-DD-02','刘杨','B')
13 INSERT INTO Customers VALUES('SXN-DD-03','张永为','C')
14 INSERT INTO Customers VALUES('SXN-DD-04','李龙飞','D')
15 INSERT INTO Customers VALUES('SXN-FF-01','邓华','E')
16 INSERT INTO Customers VALUES('SXN-HH-01','张涛明','F')

2 难点引进

询问结果为:

Q1:写叁个查询,生成从1到1000的平头类别。

图片 2

3 交叉连接

始建Order表并发轫化

3.1 SQL示例及示范结果

 1 CREATE TABLE Orders
 2 (
 3   CustID VARCHAR(50) NOT NULL,  --顾客ID
 4   OrdetID VARCHAR(50)  --订单ID
 5 )
 6 
 7 --Initial Orders
 8 
 9 INSERT INTO Orders VALUES('SXN-DD-01','SCCCCFFFFFSSOX002')
10 INSERT INTO Orders VALUES('SXN-DD-02','SCCCCFFFFFSSOX0X2')
11 INSERT INTO Orders VALUES('SXN-DD-03','')
12 INSERT INTO Orders VALUES('SXN-DD-04','')
13 INSERT INTO Orders VALUES('SXN-DD-05','SCCCCFFFFFSSOX0H2')
14 INSERT INTO Orders VALUES('SXN-DD-06','')
 SELECT C.CustID,C.CustName,C.CustCompany,O.CustID,O.OrdetIDFROM Customers AS CCROSS JOIN Orders AS O

查询结果为:

结果:

图片 3

3.2 示例结果解析

 

穿插连接使用重要字CROSS
JOIN实行询问,查询的结果为笛卡儿积,从如上结果能够看看,查询出的结果共有36行数据,因为Customers表和Orders表分别有6条记下,6X6=36;

 

3.3 小结

2   难点引进

a.在逻辑上,交叉连接是风华正茂种最简便易行的连接;b.交叉连接只兑现多个逻辑管理步骤———笛卡儿积;c.操作:对输入的八个表张开操作,把它们连接起来,生成两个的笛卡儿积,将在多少个输入表的每行与另二个表的所以行开展匹配,要是三个表有m行,而另五个表有n行,将收获m
x n行的接果集;d.结构: SELECT tb1.tb1ConumName,tb2.tb2ConumName FROM
table1 AS tb1 CROSS JOIN table2 AS tb2e.交叉连接使用的严重性字:CROSS
JOIN
;f.交叉连接生成的接果集是叁个设想表,虚构表中的各列直接来源参加连接的多少个表;

 Q1:写多少个查询,生成从1到1000的整数体系。

4 内连接

3   交叉连接

4.1 SQL示例及示范结果

3.1   SQL示例及示范结果

SELECT C.CustID,C.CustName,C.CustCompany,O.CustID,O.OrdetID FROM Customers AS C INNER JOIN Orders AS O ON C.CustID=O.CustID
1 SELECT  C.CustID,C.CustName,C.CustCompany,O.CustID,O.OrdetID
2 FROM Customers AS C
3 CROSS JOIN Orders AS O

结果:

结果:

4.2 示例结果分析

图片 4

内接连在时有时无连接的功底上附加过滤条件ON,如上例子中用Customers.CustID=Orders.CustID作为过滤条件,结果分明。

3.2   示例结果剖析

4.3 小结

穿插连接使用主要字CROSS
JOIN进行查询,查询的结果为笛卡儿积,从如上结果能够看出,查询出的结果共有36行数据,因为Customers表和Orders表分别有6条记下,6X6=36;

内对接准绳为笛Carl积+客户谓词过滤:它首先像交叉连接同样,对八个输入表张开笛Carl积运算,然后依据客商钦点的谓词对结果开展过滤;

3.3  小结

5 外连接

a.在逻辑上,交叉连接是一种最简单的联接;
b.交叉连接只实现一个逻辑处理步骤———笛卡儿积;
c.操作:对输入的两个表进行操作,把它们连接起来,生成两者的笛卡儿积,即将一个输入表的每行与另一个表的所以行进行匹配,如果一个表有m行,而另一个表有n行,将得到m x n行的接果集;
d.结构:
  SELECT  tb1.tb1ConumName,tb2.tb2ConumName
  FROM table1 AS tb1 
  CROSS JOIN table2 AS tb2
e.交叉连接使用的关键字:CROSS JOIN ;
f.交叉连接生成的接果集是一个虚拟表,虚拟表中的各列直接源于参与连接的两个表;

5.1
SQL示例及示范结果(只解析左外界连接,因为右连接和全连接原理也是同风度翩翩的卡塔尔国

 

SELECT C.CustID,C.CustName,C.CustCompany,O.CustID,O.OrdetID FROM Customers AS C LEFT OUTER JOIN Orders AS O ON C.CustID=O.CustID

4   内连接

结果:

4.1   SQL示例及示范结果

5.2 示例结果深入分析

1 SELECT  C.CustID,C.CustName,C.CustCompany,O.CustID,O.OrdetID
2 FROM Customers AS C
3 INNER JOIN Orders AS O
4 ON C.CustID=O.CustID

如上以Cutomers表作为左保留表,连接右表Orders列CustID缺乏SXN-FF-01和SXN-HH-01,为了以左保留表为准绳,用NULL占位符来填充。

结果: