MySQL 更新查询
MySQL UPDATE查询是一种数据操作语言语句,用于修改数据库中的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子句 | 可选的。用于指定要执行更新操作的行的名称。如果省略此子句,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语句还可以通过指定逗号分隔的列列表来更新多个列。假设我们有一个如下所示的表:
这个语句将会更新 name 和 occupation ,它们对应的 id = 105 在 People 表中的值如下所示:
UPDATE People
SET name = 'Mary', occupation = 'Content Writer'
WHERE id = 105;
我们可以验证以下输出:
更新语句以替换字符串
我们还可以在MySQL中使用UPDATE语句来更改特定列中的字符串名称。下面的示例更新 Android course: 中的电子邮件的域部分。
UPDATE Trainer_table
SET email = REPLACE(email,'@javatpoint.com','@tutorialandexample.com')
WHERE course_name = 'Testing';
它将产生以下输出: