SQL 更新數(shù)據(jù)(UPDATE 語句)

在本教程中,您將學(xué)習(xí)如何使用SQL更新數(shù)據(jù)庫(kù)表中的記錄。

更新表數(shù)據(jù)

在前面的章節(jié)中,我們學(xué)習(xí)了如何根據(jù)各種條件插入數(shù)據(jù)以及如何從數(shù)據(jù)庫(kù)表中選擇查詢數(shù)據(jù)。在本教程中,我們將學(xué)習(xí)執(zhí)行一項(xiàng)更重要的任務(wù),即更新數(shù)據(jù)庫(kù)表中的現(xiàn)有記錄。

語法

UPDATE語句用于更新表中的現(xiàn)有數(shù)據(jù)。

UPDATE table_name SET column1_name = value1, column2_name = value2,...WHERE condition;

在這里,column1_name,column2_name,...是要更新其值的數(shù)據(jù)庫(kù)表的列或字段的名稱。您還可以使用在上一章中學(xué)到的 OR和 AND 運(yùn)算符組合多個(gè)條件。

警告:UPDATE語句中的WHERE子句指定應(yīng)更新的記錄。 如果省略WHERE子句,則所有記錄將被更新。

讓我們看一些示例,演示其實(shí)際工作方式。

假設(shè)我們?cè)跀?shù)據(jù)庫(kù)中有一個(gè)employees表,該表具有以下記錄:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       1 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       5 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       3 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       4 |
|      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |
+--------+--------------+------------+--------+---------+

更新單列

以下SQL語句將更新employees表的emp_name字段并設(shè)置一個(gè)新值,其中employee id(即emp_id)等于3。

UPDATE employees SET emp_name = 'Sarah Ann Connor'
WHERE emp_id = 3;

執(zhí)行后,結(jié)果表將如下所示:

+--------+------------------+------------+--------+---------+
| emp_id | emp_name         | hire_date  | salary | dept_id |
+--------+------------------+------------+--------+---------+
|      1 | Ethan Hunt       | 2001-05-01 |   5000 |       1 |
|      2 | Tony Montana     | 2002-07-15 |   6500 |       5 |
|      3 | Sarah Ann Connor | 2005-10-18 |   8000 |       3 |
|      4 | Rick Deckard     | 2007-01-03 |   7200 |       4 |
|      5 | Martin Blank     | 2008-06-24 |   5600 |    NULL |
+--------+------------------+------------+--------+---------+

更新多列

同樣,您可以使用以逗號(hào)分隔的列名和值對(duì)的列表來更新多個(gè)列。以下示例將更新employees表中emp_id為5 的現(xiàn)有員工的salarydept_id字段。

UPDATE employees
SET salary = 6000, dept_id = 2
WHERE emp_id = 5;

執(zhí)行后,結(jié)果表將如下所示:

+--------+------------------+------------+--------+---------+
| emp_id | emp_name         | hire_date  | salary | dept_id |
+--------+------------------+------------+--------+---------+
|      1 | Ethan Hunt       | 2001-05-01 |   5000 |       1 |
|      2 | Tony Montana     | 2002-07-15 |   6500 |       5 |
|      3 | Sarah Ann Connor | 2005-10-18 |   8000 |       3 |
|      4 | Rick Deckard     | 2007-01-03 |   7200 |       4 |
|      5 | Martin Blank     | 2008-06-24 |   6000 |       2 |
+--------+------------------+------------+--------+---------+
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清