在網(wǎng)上看到的,記錄下,實(shí)現(xiàn)多行多列更新
創(chuàng)新互聯(lián)公司憑借專(zhuān)業(yè)的設(shè)計(jì)團(tuán)隊(duì)扎實(shí)的技術(shù)支持、優(yōu)質(zhì)高效的服務(wù)意識(shí)和豐厚的資源優(yōu)勢(shì),提供專(zhuān)業(yè)的網(wǎng)站策劃、成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)站優(yōu)化、軟件開(kāi)發(fā)、網(wǎng)站改版等服務(wù),在成都10年的網(wǎng)站建設(shè)設(shè)計(jì)經(jīng)驗(yàn),為成都上千多家中小型企業(yè)策劃設(shè)計(jì)了網(wǎng)站。
update table1 r
set (r.city,r.COUNTY,r.CELL_NAME,r.CELL_UK)
=
( select
m.company_name,m.COUNTY_NAME,m.cell_name,m.cell_uk
FROM table2 m where m.flow_id = r.flow_id
)
where exists (select 1 from table2 m where m.flow_id = r.flow_id )
創(chuàng)建聯(lián)合主鍵如下:
ALTER TABLE ADD CONSTRAINTS '約束名' PRIMARY KEY (COLUMN,COLUMN,...);
跟Sql
Server類(lèi)似。
可以使用編程,或者使用PL/SQL連接Oracle數(shù)據(jù)庫(kù),
登陸連接后,使用以下Sql:
update
table
set
id='TT'
where
a='XX';
以上語(yǔ)句,就是將表table中列a='XX'的所有id列改為“TT”。
條件可以添加多個(gè),更新的字段也可以添加多個(gè),比如:
update
table
set
id1='TT',id2='CC'
where
a='XX'
and
b='YY'
;
oracle中update多列用逗號(hào)分隔。
如test表中有如下數(shù)據(jù):
要修改id為3的這條數(shù)據(jù)將id改成6,name改成趙六,用如下語(yǔ)句:
update?test?set?id=6,name='趙六'?where?id=3;
commit;
更改后的結(jié)果:
什么叫批量更新一列記錄? 是要一次性更新多條記錄么,如果是這樣的話只能逐條去些UPDATE語(yǔ)句。不過(guò)可以把需要更新的所有數(shù)據(jù)全部存到excel表格里,然后用CONCATENATE函數(shù)去寫(xiě)SQL語(yǔ)句
update主要由where條件決定更新對(duì)象,不寫(xiě)where條件會(huì)更新全表。
如
update table set column1 = 'a' where column1 = '1';
這條語(yǔ)句就是把所有column1列值為'1'的行的column1列都更新成'a'
假設(shè)表a中有多個(gè)字段(province ,city)需要從b表獲取(兩張表的mobile一樣),總結(jié)了幾種寫(xiě)法。
一、update a set a.province=(select province from b where b.mobile=a.mobile);
update a set a.city=(select cityfrom b where b.mobile=a.mobile);
這種寫(xiě)法效率太低,尤其是號(hào)碼有上萬(wàn)條的時(shí)候,所以拋棄。
二、update a set a.province=b.province,a.city=b.city from a inner join b on a.mobile=b.mobile.
或者update a set a.province=b.province,a.city=b.city from a,b where a.mobile=b.mobile.
三、update a inner join b on a.mobile=b.mobile set a.province=b.province,a.city=b.city
注意:第二種和第三種寫(xiě)法在Oracle行不通的,老是報(bào)錯(cuò),折騰了好長(zhǎng)時(shí)間,最后還是用下面的語(yǔ)句解決了問(wèn)題
四、update a set(a.province,a.city)=(select province,city from b where b.mobile=a.mobile)
其實(shí)第四種方法是第一種方法的合并。