dbForgeStudioforMySQL使⽤教程:如何使⽤
MySQLUPDATE语句?
⼤多数现代⽹站和应⽤程序都基于数据收集,存储和分析。数据库积极参与构建整个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 | DE 应⽤MySQL UPDATE语句的⼀种特殊情况是⽤另⼀个MySQL表中的数据更新⼀个表中的数据:
UPDATE table1 SET column1 = (SELECT expression1 FROM table2 WHERE conditions) [WHERE conditions];
UPDATE语句⾮常适合多个表。在这种情况下,语法模板将进⾏如下修改:
UPDATE table1, table2, ... SET column1 = expression1, column2 = expression2, ... lumn = lumn AND conditions;
您始终需要定义要更新的表的名称。
以下元素对于MySQL更新语法是必不可少的:
在SET⼦句定义的列受到更新。在MySQL update关键字之后,必须提供必要列的名称以及它们必须接收的值。如果您更新多个列,请⽤逗号分隔它们的名称和新值。
注意:如果您设置的值与该列当前所设置的值相同,则MySQL UPDATE命令将检测到该值,并且不会对其进⾏更新。
WHERE⼦句指定更新的⾏,即其值必须被更新的条件。没有此⼦句,UPDATE语句将应⽤于指定列中的所有⾏。在更新多个表的情况下,UPDATE语句适⽤于满⾜条件的table_references中指定的每个表中的所有⾏。但是,即使多次匹配条件,它也会更新每个匹配的⾏⼀次。
在ORDER BY⼦句是可选的。如果设置它,它将使UPDATE语句根据该⼦句中指定的顺序应⽤于⾏。
该LIMIT⼦句是可选的。它限制了要更新的⾏数。
UPDATE语句可能包含两个可选修饰符LOW_PRIORITY和IGNORE:
简单的mysql语句
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 = acher_id;
这条MySQL UPDATE命令将学⽣表中的城市字段更新为教师表中的城市。决定更新的条件是学⽣的id要与教师的id相匹配。
这样,我们探索了使⽤UPDATE查询更新MySQL中的字段的最常见情况。但是,使⽤适当的⼯具可以使此任务变得更加简单。
在许多⽤于MySQL任务的软件解决⽅案中,值得特别关注流⾏的dbForge产品线,该产品线适⽤于不同的数据库。
使⽤dbForge Studio for MySQL执⾏MySQL UPDATE命令
对于MySQL操作,中提供了所有必需的选项。凭借其与MySQL数据库开发,管理和管理相关的强⼤功能,此多功能软件可让您对MySQL 数据库执⾏所有操作。
让我们看看dbForge Studio for MySQL如何处理MySQL UPDATE⽤例。
Studio的主要功能之⼀是编写,执⾏和优化SQL查询的性能。⾃动完成和格式化选项使⽤户可以消除可能的错字并加快编码速度。⾃动化的SQL语法检查器还有助于即时发现和纠正错误。
在我们的测试案例中,我们具有以下“客户”表。它包含客户的信息,包括他们的名字和姓⽒以及电⼦邮件地址。
假设表中的数据随着时间的推移发⽣了变化,我们需要更新⼀些列的值。例如,Mary Smith的电⼦邮件必须变成
MARY.SMITH@sakilacustomer。⽽假设我们还必须将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命令提供的所有必需语法。
您可以按以下⽅式替换过时的值并添加最新数据:
执⾏查询后,您可以在右下⾓检查其状态。
要确保查询已成功更新值,请返回到Data grid mode,然后单击Refresh图标。
如您所见,email和last_name值已成功更新。
结论
MySQL UPDATE查询⾮常常见且⽅便,以⾄于在使⽤MySQL数据库时不可避免地要处理它。当您在单个字段,整个表甚⾄⼏个表中更改MySQL中的值时,它同样有效。
使⽤很简单,但可能会⾮常耗时。因此,⽅便的专业⼯具(如dbForge Studio for MySQL)使所有任务变得更快,更流畅,更轻松。我们希望当前的⽂章对您有所帮助。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。