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
广告