sql中联接与合并的区别、用法及实例
1.join和工会之间的差异连接是在两个表连接之后生成表的同一部分的记录集。
联合是两组记录(字段是相同的),并一起成为一组新记录。
连接用于根据条件连接两个表,有四种主要类型:
内部联接:内部连接两个表中的记录,只有当属于两个表的至少一个行符合连接条件时,内联才返回到行。
左连接/左外连接:外部加入记录在两表包含在左表中的所有记录。如果一个左表记录没有在右表中匹配的记录,所有选定的名单列在右表相关的结果集是空值。据了解,在左表中的记录都显示即使不符合条件,结果集中的记录正确的类表字段为空值。
右连接/右外部连接:外部连接两个表中的记录,并包含右表中的所有记录。
完全联接/完全外部联接:完整的外部连接返回左表和右表中的所有行。它是左连接和右连接合并,所有左右两个表的数据都显示出来。
连接的基本语法:
选择表。从表1和表在表1. id = table2.id
SQL语句编写
内部连接内部连接:
复制代码代码如下所示:
选择msp.name,party.name
从MSP加入党在党=代码
或
复制代码代码如下所示:
选择msp.name,party.name
从MSP内部加入方
左连接左连接:
复制代码代码如下所示:
选择msp.name,party.name
来自MSP的左入党
右连接到右连接:
复制代码代码如下所示:
选择msp.name,party.name
从MSP对加入党党= party.code MSP。
完全连接(完全连接):
复制代码代码如下所示:
选择msp.name,party.name
从MSP全MSP加入党。党= party.code
UNION运算符
两个或多个查询的结果集合并为一个结果集,其中包含联合查询中所有查询的所有行。并集的结果集名称与联合运算符中第一个SELECT语句的结果集的列名相同,结果集的另一个SELECT语句将被忽略。
这些不同的用法中有两种是联合和联合所有,不同的是联盟从结果集中删除重复的行。如果使用联邦全部,则将包含所有行,重复行将不会被删除。
工会与工会的区别:
联合检查重复
联合所有不检查
例如,select'a'union select'a输出一行一个
例如,select'a'union所有select'a输出是两线
2。通过下面的例子,我们可以清楚地看到和理解2者之间的区别。
1个连接演示的两个典型例子
假设有两个表表和表,其中包含列和数据,分别如表1.1和表1.2。
表1.1表的数据库表
柱
columnb
columnc
X1
Y1
Z1
X2
Y2
Z2
X3
Y3
Z3
表1.2表的数据库表
柱
columnd
柱
X1
D1
E1
X2
D2
E2
X3
D3
E3
表1和表表共享柱。如果柱柱的价值是连接两个表的表和表,即连接状态表1.柱= table2.columna。此时获得的连接结果如表1.3所示。
表1.3和表表的连接表
柱
columnb
columnc
columnd
柱
X1
Y1
Z1
D1
E1
X2
Y2
Z2
D2
E2
X3
Y3
Z3
D3
E3
上述连接过程的实现代码可以表示如下:SELECT * FROM表加入表在表1.柱= table2.columna
典型表面记录合并操作2例
假设有两个表表和表,其中包含列和数据,分别如表2.1和表2.2。
表2.1表3数据库表
柱
columnb
columnc
X1
Y1
Z1
X2
Y2
Z2
X3
Y3
Z3
表2.2表的数据库表,
柱
columnd
柱
X4
Y4
Z4
X5
Y5
Z5
X6
Y6
Z6
在表3表和表表有相同的柱结构和相同的列数。列名可能不同。第一个表的列名是新表的列名。因此,可以使用联合操作符来连接两个表的记录集。连接结果如表2.3所示。
表2.3采用接头连接的表表的记录和表表
柱
columnb
columnc
X1
Y1
Z1
X2
Y2
Z2
X3
Y3
Z3
X4
Y4
Z4
X5
Y5
Z5
X6
Y6
Z6
上述连接过程的实现代码可以表示如下:SELECT * FROM表3联盟选择*从表4
不难发现两者和示例1和示例2之间的区别。