📜  MySQL UPDATE语句

📅  最后修改于: 2020-11-17 02:28:51             🧑  作者: Mango

MySQL UPDATE查询

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语句的语法中使用的参数说明如下:

Parameter Descriptions
table_name It is the name of a table in which we want to perform updation.
column_name It is the name of a column in which we want to perform updation with the new value using the SET clause. If there is a need to update multiple columns, separate the columns with a comma operator by specifying the value in each column.
WHERE Clause It is optional. It is used to specify the row name in which we are going to perform updation. If we omit this clause, MySQL updates all rows.

注意:

  • 该语句可以一次更新单个表中的值。
  • 我们可以使用此语句来更新单个或多个列。
  • 可以使用WHERE子句指定任何条件。
  • WHERE子句非常重要,因为有时我们只想更新一行,并且如果我们省略此子句,它会意外地更新表的所有行。

UPDATE命令在MySQL中支持以下修饰符:

LOW_PRIORITY:此修饰符指示语句延迟UPDATE命令的执行,直到没有其他客户端从表中读取为止。它仅对仅使用表级锁定的存储引擎生效。

IGNORE:该修饰符使语句即使发生错误也不会中止执行。如果发现重复键冲突,则不更新行。

因此,下面给出了UPDATE语句的完整语法:

UPDATE [LOW_PRIORITY] [IGNORE] table_name
    SET column_assignment_list
    [WHERE condition]

例:

让我们借助各种示例来了解UPDATE语句。假设我们在“ testdb”数据库中有一个表“ 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';

它将给出以下输出: