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