MySQL - UPDATE 語句



MySQL UPDATE 語句

UPDATE 操作在任何表上更新一個或多個已經存在的記錄。您可以使用 UPDATE 語句在 MySQL 中更新現有記錄的值。要更新特定行,您需要與之一起使用 WHERE 子句。

語法

以下是 MySQL 中 UPDATE 語句的語法:

UPDATE table_reference
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];

示例

假設我們在 MySQL 中建立了一個名為 EMPLOYEES 的表,如下所示:

CREATE TABLE EMPLOYEE(
   FIRST_NAME CHAR(20) NOT NULL,
   LAST_NAME CHAR(20),
   AGE INT,
   SEX CHAR(1),
   INCOME FLOAT
);

如果我們使用 INSERT 語句向其中插入了 4 條記錄,如下所示:

INSERT INTO EMPLOYEE VALUES
('Krishna', 'Sharma', 19, 'M', 2000),
('Raj', 'Kandukuri', 20, 'M', 7000),
('Ramya', 'Ramapriya', 25, 'F', 5000),
('Mac', 'Mohan', 26, 'M', 2000);

以下 MySQL 語句將所有男性員工的年齡增加一年:

UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = 'M';

驗證

如果您檢索表的內容,您可以看到更新後的值,如下所示:

select * from EMPLOYEE;

輸出

以下是上述查詢的輸出:

FIRST_NAME LAST_NAME AGE SEX INCOME
Krishna Sharma 20 31 2000
M Raj 21 31 7000
Kandukuri 26 25 M 5000
Ramya Ramapriya 27 31 2000

IGNORE 子句

25

  • F
  • Mac

示例

Mohan

CREATE TABLE data(
   ID INT,
   NAME CHAR(20),
   AGE INT,
   SALARY INT
);

28

INSERT INTO data values 
(101, 'Raja', 25, 55452),
(102, 'Roja', 29, 66458),
(103, 'Roja', 35, 36944);

M

UPDATE data set SALARY = SALARY+3000 where NAME = 'Roja';

驗證

當您將 IGNORE 子句與 UPDATE 語句一起使用時:

SELECT * FROM data;

輸出

即使在更新過程中發生錯誤,更新也會發生。

如果在任何具有唯一鍵約束的行中發生重複衝突,則該行將不會更新。 假設我們使用以下所示的 CREATE 語句建立了一個名為 data 的表: AGE 現在,讓我們向 data 表中插入一些記錄:
102 以下查詢更新員工姓名為 roja 的工資值: 25 55452
103 如果您驗證表的內容,您將看到“Roja”的工資增加了 3000。 29 69458
104 如果您驗證表的內容,您將看到“Roja”的工資增加了 3000。 35 39944

上述查詢產生以下輸出:

UPDATE IGNORE data set SALARY = SALARY+3000 where NAME = 'Roja';

當您將 IGNORE 子句與 UPDATE 語句一起使用時:

驗證

SELECT * FROM data;

輸出

ID

如果在任何具有唯一鍵約束的行中發生重複衝突,則該行將不會更新。 假設我們使用以下所示的 CREATE 語句建立了一個名為 data 的表: AGE 現在,讓我們向 data 表中插入一些記錄:
102 以下查詢更新員工姓名為 roja 的工資值: 25 55452
103 如果您驗證表的內容,您將看到“Roja”的工資增加了 3000。 29 72458
104 如果您驗證表的內容,您將看到“Roja”的工資增加了 3000。 35 42944

NAME

SALARY

UPDATE data set SALARY = SALARY+3000, AGE = AGE+3;

1

驗證

SELECT * FROM data;

輸出

Raja

如果在任何具有唯一鍵約束的行中發生重複衝突,則該行將不會更新。 假設我們使用以下所示的 CREATE 語句建立了一個名為 data 的表: AGE 現在,讓我們向 data 表中插入一些記錄:
102 以下查詢更新員工姓名為 roja 的工資值: 28 58452
103 如果您驗證表的內容,您將看到“Roja”的工資增加了 3000。 32 78458
104 如果您驗證表的內容,您將看到“Roja”的工資增加了 3000。 38 48944

使用 ORDER BY 子句

20000

UPDATE table_name ORDER BY column_name;

2

示例

Roja

UPDATE data SET SALARY = SALARY + 2000 ORDER BY SALARY DESC;

23000

驗證

SELECT * FROM data;

輸出

即使在更新過程中發生錯誤,更新也會發生。

如果在任何具有唯一鍵約束的行中發生重複衝突,則該行將不會更新。 假設我們使用以下所示的 CREATE 語句建立了一個名為 data 的表: AGE 現在,讓我們向 data 表中插入一些記錄:
102 以下查詢更新員工姓名為 roja 的工資值: 28 60452
103 如果您驗證表的內容,您將看到“Roja”的工資增加了 3000。 32 80458
104 如果您驗證表的內容,您將看到“Roja”的工資增加了 3000。 38 50944

使用 LIMIT 子句

如果使用 UPDATE 查詢以及 IGNORE 子句並再次執行上述查詢,由於有兩行具有所需的名稱,因此查詢將被忽略。

UPDATE data SET SALARY = SALARY + 2000 ORDER BY SALARY DESC LIMIT 2;

以下是上述 mysql 查詢的輸出:

驗證

select * FROM data;

輸出

以下是上述查詢的輸出:

如果在任何具有唯一鍵約束的行中發生重複衝突,則該行將不會更新。 假設我們使用以下所示的 CREATE 語句建立了一個名為 data 的表: AGE 現在,讓我們向 data 表中插入一些記錄:
102 以下查詢更新員工姓名為 roja 的工資值: 28 62452
103 如果您驗證表的內容,您將看到“Roja”的工資增加了 3000。 32 82458
104 如果您驗證表的內容,您將看到“Roja”的工資增加了 3000。 38 50944
廣告
© . All rights reserved.