SQL初認(rèn)識——19:修改數(shù)據(jù)之UPDATE

UPDATE

如果要更新數(shù)據(jù)庫表中的記錄,我們就必須使用UPDATE語句。

update-sql

UPDATE語句的基本語法是:

UPDATE <表名> SET 字段1=值1, 字段2=值2, ... WHERE ...;

例如,我們想更新students表id=1的記錄的name和score這兩個(gè)字段,先寫出UPDATE students SET name='大牛', score=66,然后在WHERE子句中寫出需要更新的行的篩選條件id=1:

-- 更新id=1的記錄

UPDATE students SET name='大牛', score=66 WHERE id=1;

-- 查詢并觀察結(jié)果:

SELECT * FROM students WHERE id=1;

Run

注意到UPDATE語句的WHERE條件和SELECT語句的WHERE條件其實(shí)是一樣的,因此完全可以一次更新多條記錄:

-- 更新id=5,6,7的記錄

UPDATE students SET name='小牛', score=77 WHERE id>=5 AND id<=7;

-- 查詢并觀察結(jié)果:

SELECT * FROM students;

Run

在UPDATE語句中,更新字段時(shí)可以使用表達(dá)式。例如,把所有80分以下的同學(xué)的成績加10分:

-- 更新score<80的記錄

UPDATE students SET score=score+10 WHERE score<80;

-- 查詢并觀察結(jié)果:

SELECT * FROM students;

Run

其中,SET score=score+10就是給當(dāng)前行的score字段的值加上了10。

如果WHERE條件沒有匹配到任何記錄,UPDATE語句不會報(bào)錯(cuò),也不會有任何記錄被更新。例如:

-- 更新id=999的記錄

UPDATE students SET score=100 WHERE id=999;

-- 查詢并觀察結(jié)果:

SELECT * FROM students;

Run

最后,要特別小心的是,UPDATE語句可以沒有WHERE條件,例如:

UPDATE students SET score=60;

這時(shí),整個(gè)表的所有記錄都會被更新。所以,在執(zhí)行UPDATE語句時(shí)要非常小心,最好先用SELECT語句來測試WHERE條件是否篩選出了期望的記錄集,然后再用UPDATE更新。

MySQL

在使用MySQL這類真正的關(guān)系數(shù)據(jù)庫時(shí),UPDATE語句會返回更新的行數(shù)以及WHERE條件匹配的行數(shù)。

例如,更新id=1的記錄時(shí):

mysql> UPDATE students SET name='大寶' WHERE id=1;

Query OK, 1 row affected (0.00 sec)

Rows matched: 1? Changed: 1? Warnings: 0

MySQL會返回1,可以從打印的結(jié)果Rows matched: 1 Changed: 1看到。

當(dāng)更新id=999的記錄時(shí):

mysql> UPDATE students SET name='大寶' WHERE id=999;

Query OK, 0 rows affected (0.00 sec)

Rows matched: 0? Changed: 0? Warnings: 0

MySQL會返回0,可以從打印的結(jié)果Rows matched: 0 Changed: 0看到。

小結(jié)

使用UPDATE,我們就可以一次更新表中的一條或多條記錄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容