MySQL學習之數(shù)據(jù)更新操作詳解
UPDATE 語句
UPDATE 語句用于修改表的記錄,語法如下
UPDATE IGNORE 表名 SET 字段1=值1, 字段2=值2, 字段3=值3, ...... WHERE 條件1 ...... ORDER BY ...... LIMIT ......; -- 注意:IGNORE - 是可選條件,使用后,會針對有沖突的修改記錄忽略 -- 注意:WHERE - 也是可選條件,使用了就是有條件的修改記錄;不使用就是無條件的修改記錄,也就是針對全表范圍進行記錄的修改 -- 注意:ORDER BY - 之所以使用排序主要是針對類似多條記錄,批量遞增的形式去修改(比如說員工工資的統(tǒng)一普調(diào),員工工號的遞增加1)。 -- 注意:LIMIT - UPDATE 語句中的 LIMIT 子句只能寫一個參數(shù),不能像之前那樣寫兩個參數(shù)。
UPDATE 語句的執(zhí)行順序:UPDATE ---> WHERE ---> ORDER BY ---> LIMIT ---> SET
UPDATE 語句練習①
把每個員工的編號和上司的編號 +1 ,利用 “ORDER BY” 子句完成。
“UPDATE” - SQL語句演示案例①:
UPDATE t_emp SET empno = empno + 1, mgr = mgr + 1 ORDER BY empno DESC; -- 這里解釋一下,為什么會這樣。 -- 當我們更新第一個員工的工號 +1 的時候,實際上他的下一位員工編號是與當前員工編號 +1 的結(jié)果是沖突的,這就是我們使用 ORDER BY 的原因
UPDATE 語句練習②
將月收入前3名的員工月薪減 100 ,使用 LIMIT 子句完成。
“UPDATE” - SQL語句演示案例②:(首先按照月收入排成降序,然后取前3條記錄,然后再執(zhí)行 "UPDATE" 的操作)
UPDATE t_emp SET sal = sal - 100 ORDER BY sal + IFNULL(comm,0) DESC LIMIT 3;
UPDATE 語句練習③
將 10 部門中,工齡超過 20 年的員工,底薪增加 200 。
“UPDATE” - SQL語句演示案例③:(篩選 10 部門與工齡超過20年的員工寫在 "WHERE" 子句即可,底薪增加 200 寫在SET子句)
UPDATE t_emp SET sal = sal + 200 WHERE deptno=10 AND DATEDIFF(NOW(),hiredate)/365 >= 20;
UPDATE 語句的表連接
因為相關子查詢的效率非常低,所以我可以利用表連接的方式來改造 “UPDATE” 語句。
表連接的 “UPDATE” 語句可以修改多張表的記錄。
UPDATE 語句的表連接的語法如下:(內(nèi)連接方式)
UPDATE 表1 JOIN 表2 ON 條件 SET 字段1=值1, 字段2=值2, ......; -- 這里的字段是比較有意思的,不是說 SET 關鍵字修改的字段只能來自一張表,它可以來自 被關聯(lián)的任意一張表。
UPDATE 語句的表連接的語法如下:(內(nèi)連接變種方式)
UPDATE 表1, 表2 SET 字段1=值1, 字段2=值2, ...... WHERE 連接條件;
UPDATE 語句練習④
把 ALLEN 調(diào)往 “RESEARCH” 部門,職務調(diào)整為 “ANALYST”。
這個需求的 SQL 語句牽扯到兩張表,這里呢我們可以通過子查詢的方式來實現(xiàn)。但是 UPDATE 語句中的子查詢?yōu)橄嚓P子查詢,所以并不建議使用。比較合適的方式就是實用 “表連接” 的方式來實現(xiàn),具體參考 “UPDATE 語句的表連接” 語法。
通過練習題的方式更鼓 “UPDATE” 的語法還是挺有意思的,可以開闊思路,有助于我們鞏固 “UPDATE” 的語法。
到此這篇關于MySQL學習之數(shù)據(jù)更新操作詳解的文章就介紹到這了,更多相關MySQL數(shù)據(jù)更新內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MYSQL數(shù)據(jù)庫數(shù)據(jù)拆分之分庫分表總結(jié)
這篇文章主要介紹了MYSQL數(shù)據(jù)庫數(shù)據(jù)拆分之分庫分表總結(jié),需要的朋友可以參考下2016-07-07mysql Out of memory (Needed 16777224 bytes)的錯誤解決
至于我改的這幾個值是不是正確的解決方法,目前還不知道。先貼出來2012-07-07MySql樹形結(jié)構(gòu)(多級菜單)查詢設計方案
本文主要介紹了MySql樹形結(jié)構(gòu)(多級菜單)查詢設計方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-03-03mysql中批量插入數(shù)據(jù)(1萬、10萬、100萬、1000萬、1億級別)
本文主要介紹了mysql中批量插入數(shù)據(jù)(1萬、10萬、100萬、1000萬、1億級別),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-08-08