1. 程式人生 > 實用技巧 >MySQL教程84-UPDATE 修改資料(更新資料)

MySQL教程84-UPDATE 修改資料(更新資料)

MySQL中,可以使用 UPDATE 語句來修改、更新一個或多個表的資料。

UPDATE 語句的基本語法

使用 UPDATE 語句修改單個表,語法格式為:

UPDATE <表名> SET 欄位 1=1 [,欄位 2=值 2… ] [WHERE 子句 ]
[ORDER BY 子句] [LIMIT 子句]

語法說明如下:

  • <表名>:用於指定要更新的表名稱。
  • SET子句:用於指定表中要修改的列名及其列值。其中,每個指定的列值可以是表示式,也可以是該列對應的預設值。如果指定的是預設值,可用關鍵字 DEFAULT 表示列值。
  • WHERE子句:可選項。用於限定表中要修改的行。若不指定,則修改表中所有的行。
  • ORDER BY子句:可選項。用於限定表中的行被修改的次序。
  • LIMIT子句:可選項。用於限定被修改的行數。
注意:修改一行資料的多個列值時,SET 子句的每個值用逗號分開即可。

修改表中的資料

【例項 1】在 tb_courses_new 表中,更新所有行的 course_grade 欄位值為 4,輸入的 SQL 語句和執行結果如下所示。

mysql> UPDATE tb_courses_new
    -> SET course_grade=4;
Query OK, 3 rows affected (0.11 sec)
Rows matched: 4  Changed: 3
Warnings: 0 mysql> SELECT * FROM tb_courses_new; +-----------+-------------+--------------+------------------+ | course_id | course_name | course_grade | course_info | +-----------+-------------+--------------+------------------+ | 1 | Network | 4 | Computer Network |
| 2 | Database | 4 | MySQL | | 3 | Java | 4 | Java EE | | 4 | System | 4 | Operating System | +-----------+-------------+--------------+------------------+ 4 rows in set (0.00 sec)

根據條件修改表中的資料

【例項 2】在 tb_courses 表中,更新 course_id 值為 2 的記錄,將 course_grade 欄位值改為 3.5,將 course_name 欄位值改為“DB”,輸入的 SQL 語句和執行結果如下所示。

mysql> UPDATE tb_courses_new
    -> SET course_name='DB',course_grade=3.5
    -> WHERE course_id=2;
Query OK, 1 row affected (0.13 sec)
Rows matched: 1  Changed: 1  Warnings: 0
mysql> SELECT * FROM tb_courses_new;
+-----------+-------------+--------------+------------------+
| course_id | course_name | course_grade | course_info      |
+-----------+-------------+--------------+------------------+
|         1 | Network     |            4 | Computer Network |
|         2 | DB          |          3.5 | MySQL            |
|         3 | Java        |            4 | Java EE          |
|         4 | System      |            4 | Operating System |
+-----------+-------------+--------------+------------------+
4 rows in set (0.00 sec)
注意:保證 UPDATEWHERE 子句結束,通過 WHERE 子句指定被更新的記錄所需要滿足的條件,如果忽略 WHERE 子句,MySQL 將更新表中所有的行。