簡介
將查詢語句查詢的結果集作為資料插入到資料表中。
一、通過insert select語句形式向表中新增資料
例如,建立一張新錶addresslist來儲存班級學生的通訊錄資訊,然後這些資訊恰好存在學生表中,則可以從學生表中提取相關的資料插入建好的addresslist表中。
t-sql語句如下:
insertinto
addresslist(姓名,位址,郵箱)
select
name,address,email
from students
語法快記:該語句和常規的插入語句語法很相似,為了更好的記住語法,即可理解此插入語句把values替換成了查詢語句。
使用該語句插入資料的注意事項:
1.查詢語句部分其中列的個數、順序、資料型別必須與insert語句的指定列要保持一致,列名可以不相同。
2.insert語句插入資料的表必須是預先建立好的。
insert select語句形式中的查詢部分不僅可以是單錶,可以支援不同形式的查詢語句,只要保證查詢結果集的列和要插入資料的列是匹配的即可。
1.聯接查詢作為資料
insertinto
addresslist (name,address)
select a.username,b.address from
system_users a
inner
join base_customer b on a.code=b.code
2.union合併多個結果集作為資料
insertinto
addresslist(name,address)
select'張三
','洛杉磯
'union
select'李四
','舊金山
'union
select'王五
','華盛頓
'
3.資料來自其他資料庫(跨資料庫插入)
insertinto
studentinfo(name)
select lxr from agrodb.dbo.base_customer
二、通過select into語句形式將查詢結果集的資料新增到新資料表
select into語句形式的插入方式和insert into 語句形式插入方式有相同處和不同處。
相同:它們插入的資料都是來自select查詢結果集
不同:insert into 語句形式插入的資料表必須是預先建立,select into語句形式的插入的資料表是在執行該語句時新建立的。
t-sql語句如下:
selectname,address,email
into
addresslist
from students
語法快記:整體結構就是查詢語句的結構,即在from關鍵字之上指派了into關鍵字加新資料表名。
語句執行邏輯:
1.建立新資料表,新錶的資料結構來自於查詢語句指定的列。
2.將查詢結果集的資訊插入到新錶中,只會插入select 中指派的列,列可以指定部分也可以全部。
select into語句形式會執行插入資料和建立表兩種命令,這樣會延伸到乙個新問題:如何給新錶中指定乙個標識列?
因為標識列的資料是自增的,因此我們可以在select into語句中加入標識列的建立,語法如下:
selectidentity(int,1,1) as
aid ,students.name,students.address,students.email
into
addresslist
from students
讓select查詢結果隨機排序
原載自 前段時間客戶提出了乙個需求,就是想讓查詢的結果隨機排序一下。查詢了很多東西說的很是不明白,最後解決了問題。方案如下 只是在order by 後面加上一些東西。注 也許只適用與access哦,這個只在access環境中測試通過。select from tablename order by ri...
讓select查詢結果隨機排序
原載自 前段時間客戶提出了乙個需求,就是想讓查詢的結果隨機排序一下。查詢了很多東西說的很是不明白,最後解決了問題。方案如下 只是在order by 後面加上一些東西。注 也許只適用與access哦,這個只在access環境中測試通過。select from tablename order by ri...
select語句中更改查詢結果 case when
有時資料庫中為了儲存空間的節約,存了一些比較小的字段,這是可以在select語句中進行轉換。在 select 語句中用條件語句 如果,資料庫中乙個字段 gender 來儲存性別,存的是 1 0兩個值,這時可以用 select case when gender 1 then man else woma...