MySQL UPDATE 查询是一个 DML 语句,用于修改数据库内 MySQL 表的数据。在现实生活中,记录会在一段时间内发生变化。因此,我们还需要更改表的值。为此,需要使用 UPDATE 查询。
UPDATE 语句与SET和WHERE子句一起使用。SET 子句用于更改指定列的值。我们可以一次更新单个或多个列。
句法
以下是将数据修改到MySQL表中的 UPDATE 命令的通用语法:
UPDATE table_name
SET column_name1 = new-value1,
column_name2=new-value2, ...
[WHERE Clause]
参数说明
UPDATE 语句的语法中使用的参数说明如下:
参数 | 说明 |
---|---|
table_name | 它是我们要在其中执行更新的表的名称。 |
column_name | 它是我们要使用 SET 子句使用新值执行更新的列的名称。如果需要更新多列,通过指定每列中的值,用逗号运算符分隔列。 |
WHERE Clause | 它是可选的。它用于指定我们将在其中执行更新的行名称。如果我们省略这个子句,MySQL 会更新所有行。 |
笔记:
- 此语句可以一次更新单个表中的值。
- 我们可以使用此语句更新单个或多个列。
- 可以使用 WHERE 子句指定任何条件。
- WHERE 子句非常重要,因为有时我们只想更新单行,如果我们省略该子句,它会不小心更新表的所有行。
UPDATE 命令在 MySQL 中支持这些修饰符:
LOW_PRIORITY:该修饰符指示语句延迟 UPDATE 命令的执行,直到没有其他客户端从表中读取。仅对仅使用表级锁的存储引擎有效。
IGNORE:该修饰符允许语句即使发生错误也不会中止执行。如果发现重复键冲突,则不会更新行。
因此,UPDATE 语句的完整语法如下:
UPDATE [LOW_PRIORITY] [IGNORE] table_name
SET column_assignment_list
[WHERE condition]
例子:
让我们借助各种示例来理解 UPDATE 语句。假设我们在“testdb”数据库中有一个表“trainer”。我们将更新“trainer”表中的数据。
更新单列
此查询将使用新 ID更新Java课程的电子邮件 ID,如下所示:
UPDATE trainer
SET email = 'mike@tutorialandexamples.com'
WHERE course_name = 'Java';
成功执行后,我们将使用以下语句验证表:
SELECT * FROM trainer;
在输出中,我们可以看到我们的表根据我们的条件进行了更新。
更新多列
UPDATE 语句还可用于通过指定逗号分隔的列列表来更新多个列。假设我们有一个如下表:
这番话说明将更新名字和职业,其ID = 105在人民如下表:
UPDATE People
SET name = 'Mary', occupation = 'Content Writer'
WHERE id = 105;
我们可以验证以下输出:
用于替换字符串的 UPDATE 语句
我们还可以使用 MySQL 中的 UPDATE 语句来更改特定列中的字符串名称。以下示例更新Android 课程电子邮件的域部分:
UPDATE Trainer_table
SET email = REPLACE(email,'@javatpoint.com','@tutorialandexample.com')
WHERE course_name = 'Testing';
它将给出以下输出: