SQL Update
1. 定義
維基百科:
Update
指令用于更新數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
慕課解釋?zhuān)篣pdate,傳聞中增刪查改中的
改
,是更新數(shù)據(jù)庫(kù)數(shù)據(jù)的主要途徑。
2. 前言
本小節(jié),我們將一起學(xué)習(xí) SQL Update
。
一般情況下,不會(huì)使用 Update 來(lái)更新所有數(shù)據(jù),因此 Update 一般與 Where 一起搭配使用。
本小節(jié)我們將會(huì)以更新數(shù)據(jù)的多少來(lái)介紹 Update 的用法。
本小節(jié)測(cè)試數(shù)據(jù)如下,請(qǐng)先在數(shù)據(jù)庫(kù)中執(zhí)行:
DROP TABLE IF EXISTS imooc_user;
CREATE TABLE imooc_user
(
username varchar(20),
age int
);
INSERT INTO imooc_user(username,age) VALUES('pedro', 23), ('mike', 18), ('jerry', 18);
3. 語(yǔ)法
使用 Update 時(shí),我們需要搭配 Set。
使用語(yǔ)法如下:
UPDATE [table_name] SET [col]=[val] WHERE [col]=[val];
其中table_name
時(shí)數(shù)據(jù)表名稱(chēng),col
是字段名,val
是字段值。
4. 更新一條記錄
通過(guò) Where 的篩選,Update 可以做到一次只更新一條記錄。
4.1 例1、更新用戶年齡
請(qǐng)書(shū)寫(xiě) SQL 語(yǔ)句,更新imooc_user
表中用戶名為pedro
的年齡,使其年齡更新為18
。
分析:
由題干可知用戶名是篩選條件,即username=pedro
,我們只需更新年齡為18,即SET age = 18
。
語(yǔ)句:
整理可得語(yǔ)句如下:
UPDATE imooc_user SET age = 18 WHERE username='pedro';
結(jié)果如下:
+----------+-----+
| username | age |
+----------+-----+
| pedro | 18 |
+----------+-----+
4.2 例2、更新用戶姓名和年齡
Set 不僅可以更新單字段的值,還可以更新多字段的值。
請(qǐng)書(shū)寫(xiě) SQL 語(yǔ)句,更新imooc_user
表中用戶名為pedro
的年齡,使其用戶名為pedrogao
,年齡更新為19
。
分析:
同上,只需添加上username
的更新值即可,字段之間使用,
隔開(kāi)。
語(yǔ)句:
整理可得語(yǔ)句如下:
UPDATE imooc_user SET age = 19, username='pedrogao' WHERE username='pedro';
結(jié)果如下:
+----------+-----+
| username | age |
+----------+-----+
| pedrogao | 19 |
+----------+-----+
5. 更新多條記錄
改變 Where 的篩選條件,Update 還可以一次更新多條數(shù)據(jù)記錄。
5.1 例3、更新多用戶年齡
請(qǐng)書(shū)寫(xiě) SQL 語(yǔ)句,更新imooc_user
表中年齡為18
的用戶,使其用戶名為18s
。
分析:
同上,過(guò)濾條件變?yōu)榱?code>age,更新字段變成了username
。
語(yǔ)句:
整理可得語(yǔ)句如下:
UPDATE imooc_user SET username = '18s' WHERE age=18;
結(jié)果如下:
+----------+-----+
| username | age |
+----------+-----+
| pedrogao | 19 |
| 18s | 18 |
| 18s | 18 |
+----------+-----+
6. 小結(jié)
- 切勿直接使用
UPDATE imooc_user SET age = 18;
這樣的 SQL語(yǔ)句,會(huì)直接改掉所有的數(shù)據(jù)。 - 大部分的業(yè)務(wù)其實(shí)都是增刪查改,而 Update 是占比最大的。
- 熟練掌握 Update 并非一蹴而就,需要多多練習(xí)。