一、更新部分数据
使用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;