SET=,SET=如果我的更新值Value是從一條sele">
update、select使用方法

update、select使用方法

ID:34726696

大小:67.68 KB

頁數(shù):3頁

時(shí)間:2019-03-10

update、select使用方法_第1頁
update、select使用方法_第2頁
update、select使用方法_第3頁
資源描述:

《update、select使用方法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、Update、select使用方法最常用的update語法是:UPDATESET=,SET=如果我的更新值Value是從一條select語句拿出來,而且有很多列的話,用這種語法就很麻煩第一,要select出來放在臨時(shí)變量上,有很多個(gè)哦第二,再將變量進(jìn)行賦值。列多起來非常麻煩,能不能像Insert那樣,把整個(gè)Select語句的結(jié)果進(jìn)行插入呢?就好象下面insertintotable1(c1,c2,c3)(selectv1,v2,v3fromtable2)答案是可以

2、的,具體的語法如下:UPDATESET(,)=(SELECT(,)FROMWHERE=)WHERE;?下面是這樣一個(gè)例子:兩個(gè)表a、b,想使b中的memo字段值等于a表中對(duì)應(yīng)id的name值表a:id,name1王2李3張表b:id,ClientName????????

3、?123(MSSQLServer)語句:updateb??set??ClientName???=a.name???froma,b???wherea.id=b.id??(Oralce)語句:updateb??set??(ClientName)???=??(SELECTnameFROMaWHEREb.id=a.id)updatesetfrom語句格式當(dāng)where和set都需要關(guān)聯(lián)一個(gè)表進(jìn)行查詢時(shí),整個(gè)update執(zhí)行時(shí),就需要對(duì)被關(guān)聯(lián)的表進(jìn)行兩次掃描,顯然效率比較低。對(duì)于這種情況,Sybase和SQLSERVER的解決辦法是使用UPDATE...SET...FROM...

4、WHERE...的語法,實(shí)際上就是從源表獲取更新數(shù)據(jù)。在SQL中,表連接(leftjoin、rightjoin、innerjoin等)常常用于select語句,其實(shí)在SQL語法中,這些連接也是可以用于update和delete語句的,在這些語句中使用join還常常得到事半功倍的效果。UpdateT_OrderFormSETT_OrderForm.SellerID=B.L_TUserIDFROMT_OrderFormALEFTJOINT_ProductInfo??BONB.L_ID=A.ProductID用來同步兩個(gè)表的數(shù)據(jù)!Oralce和DB2都支持的語法:UPDAT

5、EASET(A1,A2,A3)=(SELECTB1,B2,B3FROMBWHEREA.ID=B.ID)MSSQLServer不支持這樣的語法,相對(duì)應(yīng)的寫法為:UPDATEA??SETA1=B1,A2=B2,A3=B3??FROMALEFTJOINBONA.ID=B.ID個(gè)人感覺MSSQLServer的Update語法功能更為強(qiáng)大。MSSQLSERVER的寫法:UPDATEASETA1=B1,A2=B2,A3=B3FROMA,BWHEREA.ID=B.ID在Oracle和DB2中的寫法就比較麻煩了,如下:UPDATEASET(A1,A2,A3)=(SELECTB1,B2

6、,B3FROMBWHEREA.ID=B.ID)WHEREIDIN(SELECTB.IDFROMBWHEREA.ID=B.ID)例子表A代碼值1張三2李四3王五表B代碼值234更新表B的值,用表A的值,條件是表B的代碼=表A的表碼updateBbsetb.值=(selecta.值fromAawherea.代碼=b.代碼)如果A表沒有的,B表這個(gè)字段的值就為空了,后面加個(gè)什么條件,A表沒有的,B表不變呢updateBbsetb.值=(selecta.值fromAawherea.代碼=b.代碼)whereb.代碼in(selecta.代碼fromAa)或updateBbse

7、tb.值=(selecta.值fromAawherea.代碼=b.代碼)whereb.代碼in(selecta.代碼fromAainnerjoinBbona.代碼=b.代碼)

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。