UNION:操作符用于合并两个或多个select语句的结果集。
注意 union内部的select语句必须拥有相同的列数并且字段类型相同,且顺序相同。
INSERT: 批量插入结果集
1. insert into table
select x,y from A
UNION select z,k from B ;
2. insert into table
select x,y,z from A where 1=1;
3.批量导入表数据 ,不导入表约束
select x,y,z into B from A where 1=1;
SELECT INTO FROM 与INSERT INTO SELECT的区别?
1,INSERT INTO SELECT语句
语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
要求目标表Table2必须存 如果不存在,系统则会提示对象无效。2,SELECT INTO FROM语句
语句形式为:SELECT vale1, value2 into Table2 from Table1
要求目标表Table2不存在,因为在插入时会自动创建表Table2,好处:将Table1中指定字段数据复制到Table2中。4.批量导入某表中的某列数据INSERT INTO dbo.CusTemp (证件号码) SELECT 证件号码 FROM dbo.CusTemp2
LEFT JOIN 和 RIGHT JOIN
LEFT JOIN 或 LEFT OUTER JOIN。
左向外连接的结果集包括LEFT OUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。
左向外连接的结果集包括LEFT OUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。
如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
如果左表的某行在右表中匹配出两行或多行,则在相关联的结果集中显示两行或多行
例子:
a表 id name b表 id job parent_id
1 张3 1 23 1
2 李四 2 34 2
3 王武 3 34 4
a.id同parent_id 存在关系
内连接
例子:
a表 id name b表 id job parent_id
1 张3 1 23 1
2 李四 2 34 2
3 王武 3 34 4
a.id同parent_id 存在关系
内连接
内连接。(典型的连接运算,使用像 = 或 <> 之类的比较运算符)。包括相等连接和自然连接。
内连接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students 和 courses 表中学生标识号相同的所有行。
内连接 结果会小于等于 a 或 b表 的数据。
select a.*,b.* from a inner join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
左连接 如果b表有两个parent_id =1 的数据,查询的结果会是4行,
select a.*,b.* from a inner join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
左连接 如果b表有两个parent_id =1 的数据,查询的结果会是4行,
left join 会把on 后面所有满足条件的结果查询出来,结果 会大于等于a表的数据。
select a.*,b.* from a left join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
3 王武 null
右连接
select a.*,b.* from a right join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
null 3 34 4
select a.*,b.* from a left join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
3 王武 null
右连接
select a.*,b.* from a right join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
null 3 34 4