更新基本表中的記錄使用的sql命令是什么

更新基本表中的記錄使用的sql命令是什么

數據庫更新就一種方法update,?
其標準格式:update 表名 set 字段=值 where 條件?

不過根據數據的來源不同,還是有所區別的:

1、從外部輸入?
這種比較簡單?
例:

update?tb?set?UserName="XXXXX"?where?UserID="aasdd"

2、一些內部變量,函數等,比如時間等?
直接將函數賦值給字段

update?tb?set?LastDate=date()?where?UserID="aasdd"

3、對某些字段變量+1,常見的如:點擊率、下載次數等?
這種直接將字段+1然后賦值給自身

update?tb?set?clickcount=clickcount+1?where?ID=xxx

4、將同一記錄的一個字段賦值給另一個字段

update?tb?set?Lastdate=?regdate?where?XXX

5、將一個表中的一批記錄更新到另外一個表中?
table1?
ID f1 f2?
table2?
ID f1 f2?

先要將table2中的f1 f2 更新到table1(相同的ID)

update?table1,table2?set?table1.f1=table2.f1,table1.f2=table2.f2?where ?table1.ID=table2.ID

6、將同一個表中的一些記錄更新到另外一些記錄中?
表:a

ID month E_ID Price
1 1 1 2
2 1 2 4
3 2 1 5
4 2 2 5

先要將表中2月份的產品price更新到1月份中?
顯然,要找到2月份中和1月份中ID相同的E_ID并更新price到1月份中?
這個完全可以和上面的方法來處理,不過由于同一表,為了區分兩個月份的,應該將表重命名一下?
update a,a as b set a.price=b.price where a.E_ID=b.E_ID and a.month=1 and b.month=2

當然,這里也可以先將2月份的查詢出來,在用5的方法去更新

update?a,(select?*?from?a?where?month=2)as?b?set?a.price=b.price?where?a.E_ID=b.E_ID?and?a.month=1

推薦:《SQL視頻教程

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享