日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
SQL點(diǎn)滴之如何編輯數(shù)據(jù)

數(shù)據(jù)庫(kù)中的數(shù)據(jù)編輯是我們遇到的最頻繁的工作,這一個(gè)隨筆中我來(lái)總結(jié)一下最常用的數(shù)據(jù)編輯。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到井陘網(wǎng)站設(shè)計(jì)與井陘網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請(qǐng)、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋井陘地區(qū)。

select into

經(jīng)常遇到一種情況是,我們希望創(chuàng)建一個(gè)新表,表中的數(shù)據(jù)來(lái)源于原有的一個(gè)表;原有一個(gè)表,但是這個(gè)表中的數(shù)據(jù)已經(jīng)很混亂,我們希望把這些數(shù)據(jù)備份出來(lái),然后把原有的表中的數(shù)據(jù)清除,重新導(dǎo)入;在這些情況下我們可以使用select into語(yǔ)句。

如果當(dāng)前用戶擁有建表權(quán)限,在select語(yǔ)句使用關(guān)鍵字into可以在數(shù)據(jù)庫(kù)中創(chuàng)建新的 表。這個(gè)語(yǔ)句只需要把into new_table_name加到選擇出的列名之后,from關(guān)鍵字之前,當(dāng)然數(shù)據(jù)可以來(lái)源于一個(gè)或多個(gè)表中。需要說(shuō)明的是在新表中只包含select字句中查詢的到的數(shù)據(jù),沒(méi)有任何鍵,約束,關(guān)系。下面實(shí)例:

 
 
 
 
  1. select top(10) *  
  2. into new_intervalwaitssample  
  3. from IntervalWaitsSample  
  4. select * from new_intervalwaitssample 

這個(gè)語(yǔ)句就將IntervalWaitsSample表中的前10行數(shù)據(jù)放在一個(gè)新建的表new_intervalwaitssample中。

insert into select

現(xiàn)在已經(jīng)有這個(gè)新表了,如果我們想再?gòu)脑鞩ntervalWaitsSample中選擇一些數(shù)據(jù)插入到這個(gè)新表中呢,這時(shí)候就需要使用insert into select語(yǔ)句了,下面實(shí)例:

 
 
 
 
  1. insert into new_intervalwaitssample  
  2. select * from IntervalWaitsSample where wait_type='ASSEMBLY_LOAD' 

這個(gè)語(yǔ)句就將原表IntervalWaitsSample中的所有wait_type='ASSEMBLY_LOAD'的數(shù)據(jù)插入到新表中了。

insert into select union

現(xiàn)在如果我們有一些已知的數(shù)據(jù)想把這些數(shù)據(jù)一次性寫(xiě)入到目標(biāo)表里面,應(yīng)該怎么辦呢,這時(shí)候union語(yǔ)句就很有用了,可以使用insert into select union語(yǔ)句,注意這個(gè)語(yǔ)句和insert into select很相似,差別就在于后面的select語(yǔ)句使用了union把多個(gè)select連接起來(lái)。

 
 
 
 
  1. insert into select value11 , value12 , value13   
  2. union select value21 , value22 , value23   
  3. union select  value31 , value32 , value33   
  4. … … 

下面是實(shí)例:

 
 
 
 
  1. insert into new_intervalwaitssample  
  2. select 'ASYNC_NETWORK_IO','2011-05-09 16:50:00.973','0.00' union 
  3. select 'ASYNC_NETWORK_IO','2011-05-09 17:00:00.020','0.00' union 
  4. select 'ASYNC_NETWORK_IO','2011-05-09 17:15:00.123','0.00' union 
  5. select 'ASYNC_NETWORK_IO','2011-05-09 17:25:00.190','0.00' 

使用表值構(gòu)造函數(shù)

我們還可以直接使用表值構(gòu)造函數(shù),這個(gè)更加簡(jiǎn)單直接,代碼如下:

 
 
 
 
  1. insert into new_intervalwaitssample  
  2. values   
  3. ('ASYNC_NETWORK_IO','2011-05-09 16:50:00.973','0.00'),  
  4. ('ASYNC_NETWORK_IO','2011-05-09 17:00:00.020','0.00'),  
  5. ('ASYNC_NETWORK_IO','2011-05-09 17:15:00.123','0.00'),  
  6. ('ASYNC_NETWORK_IO','2011-05-09 17:25:00.190','0.00') 

從表中“剪切”數(shù)據(jù)

還有一種情況,假設(shè)我們想從一個(gè)表中的數(shù)據(jù)刪除幾條數(shù)據(jù),然后把這些刪除的數(shù)據(jù)放到另外一個(gè)表中。這個(gè)動(dòng)作就像使用剪切,粘貼一樣。不過(guò)這種情況要注意,他只能從用戶表中剪切數(shù)據(jù),不能從視圖中剪切數(shù)據(jù)。它的語(yǔ)法如下

 
 
 
 
  1. Delete sourcetable  
  2. output deleted.value1,deleted.value2,deleted.value3  
  3. into targettable  
  4. from targettable where … … 

下面是實(shí)例
 

 
 
 
 
  1. delete WaitStats  
  2. output deleted.dt,  
  3. deleted.wait_type,  
  4. deleted.waiting_tasks_count,  
  5. deleted.wait_time_ms,  
  6. deleted.max_wait_time_ms,  
  7. deleted.signal_wait_time_ms  
  8. into new_waitestats  
  9. where WaitStats.wait_type='ABR' 

可見(jiàn)即可得的編輯

如果我們是應(yīng)用程序開(kāi)發(fā),我相信大多數(shù)人還是更愿意使用SQL Server Management Studio中的圖像化界面來(lái)操作數(shù)據(jù),畢竟提供了這么多強(qiáng)大的功能,為什么不用呢。記得我曾經(jīng)提到過(guò)Oracle中可以直接修改sql語(yǔ)句選擇得到的數(shù)據(jù),當(dāng)時(shí)質(zhì)問(wèn)Microsoft SQL Server為何沒(méi)有提供這樣強(qiáng)大的功能。呵呵,今天發(fā)現(xiàn)SQL Server還是提供了這樣的功能。不過(guò)這種修改只能是單獨(dú)一個(gè)表,如果在這個(gè)查詢語(yǔ)句中有內(nèi)連接之類的估計(jì)就不行了。廢話不說(shuō),上圖:

1.點(diǎn)擊要修改的表右擊選擇Edit top 200 rows

2.當(dāng)打開(kāi)編輯界面的時(shí)候,SQL server上面會(huì)多出一個(gè)標(biāo)簽 ,鼠標(biāo)滑到這個(gè)標(biāo)簽"Query Designer"上,再滑到Panel上,再滑到SQL上,點(diǎn)擊SQL,或者在編輯界面右擊也能看到。如圖1

圖1

這時(shí)候在上面的文字區(qū)就可以編寫(xiě)自己想要修改的數(shù)據(jù)的查詢語(yǔ)句如下列:

 
 
 
 
  1. SELECT     TOP (1000) dt, wait_type, waiting_tasks_count, wait_time_ms, max_wait_time_ms, signal_wait_time_ms  
  2. FROM         new_waitestats  
  3. WHERE     (wait_type = 'ABR') 

3.這里我們想要修改wait_type=’ABR’的數(shù)據(jù),點(diǎn)擊查詢按鈕 ,在下面的表格內(nèi)就可以看到所有符合條件的數(shù)據(jù),這時(shí)候就可以修改這些數(shù)據(jù)了,注意改好之后按回車(chē)鍵才會(huì)寫(xiě)到數(shù)據(jù)庫(kù)里面。這樣做是不是很偷懶呢呵呵,不用寫(xiě)update語(yǔ)句,直接在里面修改。

使用編輯器復(fù)制粘貼數(shù)據(jù)

還有一種情況可以使用編輯器代替上面的insert into select語(yǔ)句, 如果兩個(gè)表的字段完全一樣,我們從一個(gè)表中查詢得到數(shù)據(jù),然后復(fù)制到另外一個(gè)表中。

1.首先點(diǎn)擊數(shù)據(jù)行的開(kāi)頭,選中整行,然后點(diǎn)擊copy如圖2

2.然后右擊想要插入數(shù)據(jù)的第二個(gè)表,鼠標(biāo)拖動(dòng)滾動(dòng)條到最后,直到顯示一行全部都是空值的一行,然后右擊paste,按回車(chē)鍵,這樣一條數(shù)據(jù)就插入進(jìn)去了。如圖3

這些都是在平時(shí)工作中見(jiàn)到的,覺(jué)得很有意思在這里記錄下來(lái)。這些雕蟲(chóng)小技對(duì)于數(shù)據(jù)庫(kù)技術(shù)大牛來(lái)時(shí)不值得一提,還望大牛們看到了不要笑我班門(mén)弄斧啊。

原文鏈接:http://www.cnblogs.com/tylerdonet/archive/2011/05/13/2045831.html

【編輯推薦】

  1. 淺述遠(yuǎn)程Service Broker的實(shí)現(xiàn)
  2. Service Broker基礎(chǔ)應(yīng)用(下)
  3. Service Broker基礎(chǔ)應(yīng)用(上)
  4. SQL點(diǎn)滴之備份還原數(shù)據(jù)庫(kù)中的小把戲
  5. SQL使用中的點(diǎn)滴回憶

網(wǎng)站欄目:SQL點(diǎn)滴之如何編輯數(shù)據(jù)
本文URL:http://www.5511xx.com/article/cdojjco.html