MySQL更新数据

来源: 2024-07-06 00:19:19 播报

一、更新部分数据

使用where子句指定更新条件,来更新表中的某一条或几条记录。

格式:

UPDATE 表名 SET 字段1=值1, 字段2=值2 [WHERE Clause];

二、更新全部数据

没有where语句,就会将表中的所有记录的指定字段1都进行更新。

格式:

UPDATE 表名 SET 字段1=值1[字段2=值2,...];

说明:

1、在UPDATE关键字后面指定要更新数据的表名。

2、SET子句指定要修改的列和新值。要更新多个列,请使用以逗号分隔的列表。

3、使用WHERE语句中的条件指定要更新的行。

4、HERE子句是可选的。 如果省略WHERE子句,则UPDATE语句将更新表中的所有行。

5、MySQL-UPDATE语法: UPDATE [LOW_PRIORITY] [IGNORE] table_name SET column_name1 = expr1,column_name2 = expr2,...WHEREcondition;

LOW_PRIORITY属性介绍: 表示修改语句需要等待其他链接的读此表操作结束后再执行,只作用在MyISAM,MEMORY和MERGE存储引擎。

IGNORE属性介绍: 表示当修改语句碰到违反唯一性约束条件等情况时,语句不会报错回退而是报警告信息。

如果出现了重复关键字冲突,则这些行不会被更新。如果列被更新后,新值会导致数据转化错误,则这些行被更新为最接近的合法的值。

三、UPDATE多列

更新多列中的值,需要在SET子句中指定分配。

四、UPDATE JOIN语句

在MySQL中,可以在UPDATE语句中使用JOIN子句执行跨表更新。

JOIN语句作用:查询表中的行(在INNER JOIN的情况下),查询另一个表中的相应行 (在LEFT JOIN的情况下)。

格式:

UPDATE T1, T2, [INNER JOIN | LEFT JOIN] T1 ON T1.C1 = T2. C1 SET T1.C2 = T2.C2, T2.C3 = expr WHERE condition;

说明:

1、 在UPDATE子句之后,指定主表(T1)和希望主表连接表(T2)。

2、 指定一种要使用的连接,即INNER JOIN或LEFT JOIN和连接条件。JOIN子句必须出现在UPDATE子句之后。

3、 要为要更新的T1和/或T2表中的列分配新值。

4、 WHERE语句中的条件用于指定要更新的行。

更新数据交叉表的另一种方法

格式:

UPDATE T1,T2 INNER JOIN T2 ON T1.C1 = T2.C1 SET T1.C2 = T2.C2, T2.C3 = expr WHERE condition;