<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      SQL點(diǎn)滴14—編輯數(shù)據(jù)

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

        

      select into

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

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

      select top(10) *
      into new_intervalwaitssample
      from IntervalWaitsSample
      select * from new_intervalwaitssample

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

         

      insert into select

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

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

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

        

      insert into select union

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

      insert into select value11 , value12 , value13

      union select value21 , value22 , value23

      union select value31 , value32 , value33

      … …

      下面是實(shí)例:

      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'

        

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

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

      insert into new_intervalwaitssample
      values
      (
      'ASYNC_NETWORK_IO','2011-05-09 16:50:00.973','0.00'),
      (
      'ASYNC_NETWORK_IO','2011-05-09 17:00:00.020','0.00'),
      (
      'ASYNC_NETWORK_IO','2011-05-09 17:15:00.123','0.00'),
      (
      '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)作就像使用剪切,粘貼一樣。不過這種情況要注意,他只能從用戶表中剪切數(shù)據(jù),不能從視圖中剪切數(shù)據(jù)。它的語法如下

      Delete sourcetable
      output deleted.value1,deleted.value2,deleted.value3
      into targettable
      from targettable where … …

      下面是實(shí)例

      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'

      要注意的是這里有一個(gè)很少見的關(guān)鍵字deleted,它是當(dāng)前要?jiǎng)h除的表的別名,這個(gè)有點(diǎn)像類中的this關(guān)鍵字。

        

      可見即可得的編輯

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

      1. 點(diǎn)擊要修改的表右擊選擇Edit top 200 rows
      2. 當(dāng)打開編輯界面的時(shí)候,SQL server上面會(huì)多出一個(gè)標(biāo)簽 ,鼠標(biāo)滑到這個(gè)標(biāo)簽上,再滑到Panel上,再滑到SQL上,點(diǎn)擊SQL,或者在編輯界面右擊也能看到。如圖1

        圖1
        這時(shí)候在上面的文字區(qū)就可以編寫自己想要修改的數(shù)據(jù)的查詢語句如下列:
        SELECT TOP (1000) dt, wait_type, waiting_tasks_count, wait_time_ms, max_wait_time_ms, signal_wait_time_ms
        FROM new_waitestats
        WHERE (wait_type = 'ABR')
      3. 這里我們想要修改wait_type=’ABR’的數(shù)據(jù),點(diǎn)擊查詢按鈕 ,在下面的表格內(nèi)就可以看到所有符合條件的數(shù)據(jù),這時(shí)候就可以修改這些數(shù)據(jù)了,注意改好之后按回車鍵才會(huì)寫到數(shù)據(jù)庫里面。這樣做是不是很偷懶呢呵呵,不用寫update語句,直接在里面修改。

        

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

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

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

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

      posted @ 2011-05-13 20:55  nd  閱讀(2755)  評(píng)論(4)    收藏  舉報(bào)
      主站蜘蛛池模板: 蜜臀av午夜精品福利| 人人人澡人人肉久久精品| 久久久久久av无码免费网站| 久久国产国内精品国语对白| 国产一区二区三区小说| 97成人碰碰久久人人超级碰oo| 久久精品国产久精国产果冻传媒| 国产极品精品自在线不卡| 亚洲国产精品一区二区第一页| 中国大陆高清aⅴ毛片| 国产精品高清国产三级囯产AV| 少妇午夜啪爽嗷嗷叫视频| 无码人妻精品一区二区三区下载| 欧美激情综合色综合啪啪五月| 人妻av无码系列一区二区三区| 精品久久久久中文字幕日本| 福利在线视频一区二区| 中文字幕第一页国产| 日夜啪啪一区二区三区| 久爱无码精品免费视频在线观看 | 少妇无套内谢免费视频| 亚洲国产成人av毛片大全| 日韩精品人妻av一区二区三区| 自拍偷拍视频一区二区三区| 亚洲综合精品第一页| 性人久久久久| 四川丰满少妇无套内谢| 国产精品啪| 国产精品成人观看视频国产奇米| 国产高清在线男人的天堂| 午夜成人无码免费看网站| 九九热爱视频精品视频| 无码精品人妻一区二区三李一桐 | www插插插无码免费视频网站| 国产美女久久久亚洲综合| 亚洲无码a∨在线视频| 色偷偷www.8888在线观看| 国产精品va在线观看h| 18禁美女裸体爆乳无遮挡| 亚洲国产精品成人无码区| 亚洲色偷偷色噜噜狠狠99|