• update语句用于修改表中已经存在的数据 • 单表修改语句结构 • 多表修改语句结构 • update语句的常规用法 • 单表修改是指修改指定单个表中的已经存在数据的一个或多个列 的数值;set短语后面跟要修改的列和值; • where子句表示限定要修改表中的哪些行数据,如果没有where子 句则表示所有行都要修改;order by子句表示update数据按照指定 的顺序进行;limit子句表示限定修改数据的行数 • 多表修改是指修改table_references指定的多个表中满足条件的行 数据,多表修改不允许使用order by和limit子句 • 执行update语句需要修改表的权限 • Low_priority关键词表示修改语句需要等待其他链接的读此表操作 结束后再执行,只作用在MyISAM, MEMORY, and MERGE存储引擎 • Ignore关键词表示当修改语句碰到违反唯一性约束条件等情况是, 语句不会报错回退而是报警告信息 ##只修改首先找到的两行 记录 Update ignore students6 set sid=1 where sid=2; ##执行成功但数据 不会修改 Order by指定update数据的顺序,在某些情况下可以避免错误的发生,比如t 表中的id字段是有唯一约束的,则以下第一个语句执行会报错,而第二个语 句执行则正常 UPDATE t SET id = id + 1; • UPDATE t SET id = id + 1 ORDER BY id DESC; • mysql> update students2 set sid=sid+1; ##执行报错 • ERROR 1062 (23000): Duplicate entry '2' for key 'PRIMARY‘ • mysql> update students2 set sid=sid+1 order by sid desc; ##执行成功 • Query OK, 2 rows affected (0.04 sec) • Rows matched: 2 Changed: 2 Warnings: 0 多表修改举例(表之间通过where条件进行join操作) • UPDATE items,month SET items.price=month.price WHERE items.id=month.id;