📅  最后修改于: 2020-11-17 02:28:51             🧑  作者: Mango
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. |
注意:
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';
它将给出以下输出: