dbForge Studio for MySQL使用教程:如何使用MySQL UPDATE语句?

点击下载dbForge Studio for MySQL最新试用版

大多数现代网站和应用程序都基于数据收集,存储和分析。数据库积极参与构建整个Web环境。这就是为什么确保从数据库正确检索数据和适当的数据操作方式至关重要。为了正确地修改数据,您将需要执行SQL查询。本文将重点介绍MySQL UPDATE语句及其用法。

MySQL UPDATE语句的本质和作用

很多时候,我们需要更新MySQL中的字段并更改表中存储的数据。我们可以使用UPDATE语句来做到这一点。此命令可以修改表中的任何字段。它适用于更新单行和多行。

MySQL UPDATE语句是MySQL中最常用的命令之一。让我们看一下它的语法。

MySQL UPDATE语法

在MySQL中处理UPDATE查询时,我们通常会遇到三种特殊情况。它们是:更新一个MySQL表,用另一个MySQL表中的数据更新一个表,以及更新多个表。

表中MySQL更新行的简单简化语法模板如下:

UPDATE table SET column1 = expression1, column2 = expression2, ... [WHERE conditions];
相同情况下的完整语法模板如下:
UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET assignment_list [WHERE where_condition] [ORDER BY ...] [LIMIT row_count] value: {expr | DEFAULT} assignment: col_name = value assignment_list: assignment [, assignment] ...
应用MySQL UPDATE语句的一种特殊情况是用另一个MySQL表中的数据更新一个表中的数据:
UPDATE table1 SET column1 = (SELECT expression1 FROM table2 WHERE conditions) [WHERE conditions];
UPDATE语句非常适合多个表。在这种情况下,语法模板将进行如下修改:
UPDATE table1, table2, ... SET column1 = expression1, column2 = expression2, ... WHERE table1.column = table2.column AND conditions;
您始终需要定义要更新的表的名称。

以下元素对于MySQL更新语法是必不可少的:

  • SET子句定义的列受到更新。在MySQL update关键字之后,必须提供必要列的名称以及它们必须接收的值。如果您更新多个列,请用逗号分隔它们的名称和新值。

注意:如果您设置的值与该列当前所设置的值相同,则MySQL UPDATE命令将检测到该值,并且不会对其进行更新。

  • WHERE子句指定更新的行,即其值必须被更新的条件。没有此子句,UPDATE语句将应用于指定列中的所有行。在更新多个表的情况下,UPDATE语句适用于满足条件的table_references中指定的每个表中的所有行。但是,即使多次匹配条件,它也会更新每个匹配的行一次。
  • ORDER BY子句是可选的。如果设置它,它将使UPDATE语句根据该子句中指定的顺序应用于行。
  • LIMIT子句是可选的。它限制了要更新的行数。

UPDATE语句可能包含两个可选修饰符LOW_PRIORITY和IGNORE:

  • LOW_PRIORITY可以延迟MySQL UPDATE查询的执行。例如,您可以将UPDATE设置为仅在执行所有SELECT查询之后执行。该修饰符适用于使用表级锁定的那些表(内存,MyISAM和MERGE)。
  • 即使确实发生错误,IGNORE也会使UPDATE语句继续执行该过程。它将从更新过程中排除某些元素。例如,这些是在唯一键值上发生重复键冲突的行-它们不会被更新。同样,如果新值导致数据转换错误,则将这些值更新为最接近的有效值。当您需要更新多行时,IGNORE修饰符特别有用。

MySQL UPDATE语句示例

MySQL中的UPDATE查询在许多情况下很有用。让我们考虑一些将该示例应用于MySQL中的标准任务的示例。

使用UPDATE命令更新MySQL列

一个简单的基本MySQL UPDATE表示例将说明如何在MySQL中更改值。假设我们需要在数据库中更改学生的姓氏。该查询将是以下内容:

UPDATE students  SET last_name = 'Williams'  WHERE student_id = 384;
通过执行此代码,我们更改了Student表。我们将last_name更改为Williams并指定条件-该更改适用于为384的student_id

应用MySQL UPDATE命令更改多列

MySQL更新多列任务也很常见。在以下情况下,我们要更改一组学生的城市值。看一下以下查询:

UPDATE students  SET city = 'Birmingham',      student_rep = 15  WHERE student_id > 20;
在这里,我们将在一组学生的表中获取MySQL更新数据。该命令会将其原籍城市更新为伯明翰,并将student_rep更改为15。该更改将应用于student_id大于20的那些学生。通过这种方式,使用以下命令执行MySQL查询以更新许多列的列值一个陈述。

使用另一个表中的数据更新表中的MySQL数据

在这种情况下,我们要使用Teachers表中的数据更新Student表。适当的UPDATE MySQL示例如下:

UPDATE students  SET teacher = (SELECT teacher_id              
FROM teachers             
 WHERE teachers.city_name = students.city_name)  WHERE student_id < 20;

在这个例子中,如果教师表中教师的家乡城市与学生表中学生的家乡城市相匹配,那么该教师就会被分配给这些学生。teacher_id将被复制到学生表中的教师字段。这个变化将适用于那些 student_id 小于 20 的学生。

一次编辑多个表中的MySQL值

在这里,我们要使用一个UPDATE命令更新多个表。

UPDATE students, teachers  SET students.city = teachers.city  WHERE students.student_id = teachers.teacher_id;
这条MySQL UPDATE命令将学生表中的城市字段更新为教师表中的城市。决定更新的条件是学生的id要与教师的id相匹配。

这样,我们探索了使用UPDATE查询更新MySQL中的字段的最常见情况。但是,使用适当的工具可以使此任务变得更加简单。

在许多用于MySQL任务的软件解决方案中,值得特别关注流行的dbForge产品线,该产品线适用于不同的数据库。

使用dbForge Studio for MySQL执行MySQL UPDATE命令

对于MySQL操作,dbForge Studio for MySQL中提供了所有必需的选项。凭借其与MySQL数据库开发,管理和管理相关的强大功能,此多功能软件可让您对MySQL数据库执行所有操作。

让我们看看dbForge Studio for MySQL如何处理MySQL UPDATE用例。

Studio的主要功能之一是编写,执行和优化SQL查询的性能。自动完成和格式化选项使用户可以消除可能的错字并加快编码速度。自动化的SQL语法检查器还有助于即时发现和纠正错误。

在我们的测试案例中,我们具有以下“客户”表。它包含客户的信息,包括他们的名字和姓氏以及电子邮件地址。

dbForge Studio for MySQL中的“客户”表

假设表中的数据随着时间的推移发生了变化,我们需要更新一些列的值。例如,Mary Smith的电子邮件必须变成[email protected]。而假设我们还必须将Barbara的姓氏改为Johnson,因为她最近结婚了。

我们将不得不执行两条MySQL UPDATE语句,因为这些更改涉及到表的不同行。

你还记得,我们需要在UPDATE关键字后指定表名。在我们的例子中,它是customers。要更新的列在SET子句中指定,在我们的例子中,对应的是email和last_name。

然而,它不再需要记住这些东西:dbForge Studio for MySQL会自动生成UPDATE语句。没有必要在MySQL中手动输入UPDATE查询。

因此,你将需要做以下工作。

  1. 在“数据库资源管理器”中选择必要的表,然后单击“Retrieve Data”。另一种方法是启用“Data Grid mode”模式以查看表数据。
  2. 选择您需要更新的列值。注意:按住Ctrl键,可以选择一个值或多个值。
  3. 右键单击该值(多个值),然后从菜单中选择“Generate Script As”。
  4. 转到“Update > To SQL Document”

将打开新的SQL文档页面。它已经具有为MySQL UPDATE命令提供的所有必需语法。

您可以按以下方式替换过时的值并添加最新数据:

MySQL GUI工具生成的UPDATE语句

执行查询后,您可以在右下角检查其状态。

要确保查询已成功更新值,请返回到Data grid mode,然后单击Refresh图标。

客户表中的更新值

如您所见,emaillast_name值已成功更新。

结论

MySQL UPDATE查询非常常见且方便,以至于在使用MySQL数据库时不可避免地要处理它。当您在单个字段,整个表甚至几个表中更改MySQL中的值时,它同样有效。

使用很简单,但可能会非常耗时。因此,方便的专业工具(如dbForge Studio for MySQL)使所有任务变得更快,更流畅,更轻松。我们希望当前的文章对您有所帮助。

猜你喜欢

转载自blog.csdn.net/qq_42444778/article/details/114685961