mysql單錶更新及多表更新

2021-08-17 21:05:47 字數 1805 閱讀 9443

歷經oracle,ms sql server,到現在的mysql,跨越了3種資料庫的學習與研究,現在對於mysql的表更新,單表字段更新與其他型別的rdbms資料庫一樣,多表級聯更新還是有些區別的,不過研究過後,發現還是蠻簡單的。

update 語句用於中修改資料庫表中的資料。

update 語句用於在資料庫表中修改資料。

update table_name

set column_name = new_value

where column_name = some_value

注釋:sql 對大小寫不敏感。update 與 update 等效。

這裡,關聯的兩張表為:tablename1、tablename2,如果需要進行關聯更新tablename1裡面的字段,

[html]view plain

copy

update tablename1 a,tablename2 b   

[html]view plain

copy

set a.grouping=b.grouping,a.size=b.size,a.description=b.description  

where a.catalog=b.catalog and a.`schema`=b.`schema` and a.name=b.name  

當然多表更新,還有其他的方法,具體方法說明如下:

方法一:直接更新,同上面一樣:

[sql]view plain

copy

update product p, productprice pp  

set pp.price = pp.price * 0.8  

where p.productid = pp.productid  

and p.datecreated < '2014-01-01'

方法二:使用inner join,然後更新:

[sql]view plain

copy

update product p  

inner

join productprice pp  

on p.productid = pp.productid  

set pp.price = pp.price * 0.8  

where p.datecreated < '2014-01-01'

方法三:使用left join,然後更新:

[sql]view plain

copy

update product p  

left

join productprice pp  

on p.productid = pp.productid  

set p.deleted = 1  

where pp.productid is

null

其實mysql還可以同時更新兩張表的資料的,如下:

[sql]view plain

copy

update product p  

inner

join productprice pp  

on p.productid = pp.productid  

set pp.price = pp.price * 0.8,  

p.dateupdate = curdate()  

where p.datecreated < '2014-01-01'

mysql批量更新 多表更新 多表刪除

mysql批量更新 多表更新 多表刪除 本節主要內容 mysql的批量更新 多表更新 多表刪除 一,批量更新 示例 update tepoi,pinf set tepoi.x pinf.fx,tepoi.y pinf.fy where tepoi.pid pinf.dmgis id and tepo...

mySQL之單錶更新

在資料表插入記錄後,如果有欄位更改的需求呢?update low primary ignore table refernece set col name1 col name2 where where condition root localhost test update user set age ...

mysql 多表關聯更新資料

場景 需要根據部門 department 表的city id更新對應user 使用者表 的city id欄位的值,使用者表與部門表的邏輯外來鍵 user表的dept id 至於為什麼這樣做你別管。user 使用者表 department 部門表 enabled 是否已刪除 update user u...