1. 程式人生 > SQL入門教學 >13 SQL Update

13 SQL Update

1. 定義

維基百科:Update指令用於更新資料庫中的資料。

解釋:Update,傳聞中增刪查改中的,是更新資料庫資料的主要途徑。

2. 前言

本小節,我們將一起學習 SQL Update

一般情況下,不會使用 Update 來更新所有資料,因此 Update 一般與 Where 一起搭配使用。
本小節我們將會以更新資料的多少來介紹 Update 的用法。

本小節測試資料如下,請先在資料庫中執行:

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. 語法

使用 Update 時,我們需要搭配 Set。

使用語法如下:

UPDATE [table_name] SET [col]=[val] WHERE [col]=[val];

其中table_name時資料表名稱,col是欄位名,val是欄位值。

4. 更新一條記錄

通過 Where 的篩選,Update 可以做到一次只更新一條記錄。

4.1 例1、更新使用者年齡

請書寫 SQL 語句,更新imooc_user

表中使用者名稱為pedro的年齡,使其年齡更新為18

分析:

由題幹可知使用者名稱是篩選條件,即username=pedro,我們只需更新年齡為18,即SET age = 18

語句

整理可得語句如下:

UPDATE imooc_user SET age = 18 WHERE username='pedro';

結果如下:

+----------+-----+
| username | age |
+----------+-----+
| pedro    | 18  |
+----------+-----+

4.2 例2、更新使用者姓名和年齡

Set 不僅可以更新單欄位的值,還可以更新多欄位的值。

請書寫 SQL 語句,更新imooc_user表中使用者名稱為pedro的年齡,使其使用者名稱為pedrogao,年齡更新為19

分析:

同上,只需新增上username的更新值即可,欄位之間使用,隔開。

語句

整理可得語句如下:

UPDATE imooc_user SET age = 19, username='pedrogao' WHERE username='pedro';

結果如下:

+----------+-----+
| username | age |
+----------+-----+
| pedrogao | 19  |
+----------+-----+

5. 更新多條記錄

改變 Where 的篩選條件,Update 還可以一次更新多條資料記錄。

5.1 例3、更新多使用者年齡

請書寫 SQL 語句,更新imooc_user表中年齡為18的使用者,使其使用者名稱為18s

分析:

同上,過濾條件變為了age,更新欄位變成了username

語句

整理可得語句如下:

UPDATE imooc_user SET username = '18s' WHERE age=18;

結果如下:

+----------+-----+
| username | age |
+----------+-----+
| pedrogao | 19  |
| 18s      | 18  |
| 18s      | 18  |
+----------+-----+

6. 小結

  • 切勿直接使用UPDATE imooc_user SET age = 18;這樣的 SQL語句,會直接改掉所有的資料。
  • 大部分的業務其實都是增刪查改,而 Update 是佔比最大的。
  • 熟練掌握 Update 並非一蹴而就,需要多多練習。