資料庫中的資料編輯是我們遇到的最頻繁的工作,這乙個隨筆中我來總結一下最常用的資料編輯。
select into
經常遇到一種情況是,我們希望建立乙個新錶,表中的資料**於原有的乙個表;原有乙個表,但是這個表中的資料已經很混亂,我們希望把這些資料備份出來,然後把原有的表中的資料清除,重新匯入;在這些情況下我們可以使用select into語句。
如果當前使用者擁有建表許可權,在select語句使用關鍵字into可以在資料庫中建立新的 表。這個語句只需要把into new_table_name加到選擇出的列名之後,from關鍵字之前,當然資料可以**於乙個或多個表中。需要說明的是在新錶中只包含select字句中查詢的到的資料,沒有任何鍵,約束,關係。下面例項:
select top(10) *
into new_intervalwaitssample
from intervalwaitssample
select * from new_intervalwaitssample
這個語句就將intervalwaitssample表中的前10行資料放在乙個新建的表new_intervalwaitssample中。
insert into select
現在已經有這個新錶了,如果我們想再從原表intervalwaitssample中選擇一些資料插入到這個新錶中呢,這時候就需要使用insert into select語句了,下面例項:
insert into new_intervalwaitssample
select * from intervalwaitssample where wait_type=assembly_load
這個語句就將原表intervalwaitssample中的所有wait_type=assembly_load的資料插入到新錶中了。
insert into select union
現在如果我們有一些已知的資料想把這些資料一次性寫入到目標表裡面,應該怎麼辦呢,這時候union語句就很有用了,可以使用insert into select union語句,注意這個語句和insert into select很相似,差別就在於後面的select語句使用了union把多個select連線起來。
insert into select value11 , value12 , value13
union select value21 , value22 , value23
union select value31 , value32 , value33
… …下面是例項:
insert into new_intervalwaitssample
select async_network_io,2011-05-09 16:50:00.973,0.00 union
select async_network_io,2011-05-09 17:00:00.020,0.00 union
select async_network_io,2011-05-09 17:15:00.123,0.00 union
select async_network_io,2011-05-09 17:25:00.190,0.00
從表中「剪下」資料
還有一種情況,假設我們想從乙個表中的資料刪除幾條資料,然後把這些刪除的資料放到另外乙個表中。這個動作就像使用剪下,貼上一樣。不過這種情況要注意,他只能從使用者表中剪下資料,不能從檢視中剪下資料。它的語法如下
delete sourcetable
output deleted.value1,deleted.value2,deleted.value3
into targettable
from targettable where … …
下面是例項
delete waitstats
output
deleted.dt,
deleted.wait_type,
deleted.waiting_tasks_count,
deleted.wait_time_ms,
deleted.max_wait_time_ms,
deleted.signal_wait_time_ms
into new_waitestats
where waitstats.wait_type=abr
要注意的是這裡有乙個很少見的關鍵字deleted,它是當前要刪除的表的別名,這個有點像類中的this關
SQL點滴14 編輯資料
資料庫中的資料編輯是我們遇到的最頻繁的工作,這乙個隨筆中我來總結一下最常用的資料編輯。select into 經常遇到一種情況是,我們希望建立乙個新錶,表中的資料 於原有的乙個表 原有乙個表,但是這個表中的資料已經很混亂,我們希望把這些資料備份出來,然後把原有的表中的資料清除,重新匯入 在這些情況下...
記錄點滴14
記錄點滴 142012年6 月3日星期日 大二第二學期 第15周 哈嘍,上個星期的 wwj,你現在還好吧。寫這篇記錄之前,先問候一下上個星期的 wwj。換個開場白,換乙個心情來告別這個星期的 wwj吧。說實在,這個星期的心情,可以用 沉悶 來形容。因為什麼呢,我自己憋著不對任何人說,也找不到任何人能...
記錄點滴14
記錄點滴14 2012年6月3日星期日 大二第二學期 第15周 哈嘍,上個星期的wwj,你現在還好吧。寫這篇記錄之前,先問候一下上個星期的wwj。換個開場白,換乙個心情來告別這個星期的wwj吧。說實在,這個星期的心情,可以用 沉悶 來形容。因為什麼呢,我自己憋著不對任何人說,也找不到任何人能讓我把自...