MySQL UPDATE语句:更新表中的数据(非常详细,附带实例)
对于有数据的表,可以对数据进行更新操作,MySQL 中使用 UPDATE 语句更新表中的记录,可以更新特定的行或者同时更新所有的行。
UPDATE 语句的基本语法结构如下:
【实例】在 person 表中,更新 id 值为 11 的记录,将 age 字段值改为 15,将 name 字段值改为 LiMing,SQL 语句如下:
下面使用 UPDATE 语句更新数据:
保证 UPDATE 以 WHERE 子句结束,通过 WHERE 子句指定被更新的记录所需要满足的条件,如果忽略 WHERE 子句,MySQL 将更新表中所有的行。
【实例】在 person 表中,更新 age 值为 19~22 的记录,将 info 字段值都改为 student,SQL 语句如下:
下面使用 UPDATE 语句更新数据,语句执行结果如下:
UPDATE 语句的基本语法结构如下:
UPDATE table_name SET column_name1 = value1,column_name2=value2,…,column_namen=valuen WHERE (condition);
- column_name1,column_name2,…,column_namen 为指定更新的字段的名称;
- value1,value2,…,valuen 为相对应的指定字段的更新值;
- condition 指定更新的记录需要满足的条件。
更新多列时,每个“列-值”对之间用逗号隔开,最后一列之后不需要逗号。
【实例】在 person 表中,更新 id 值为 11 的记录,将 age 字段值改为 15,将 name 字段值改为 LiMing,SQL 语句如下:
UPDATE person SET age = 15, name='LiMing' WHERE id = 11;更新操作执行前可以使用 SELECT 语句查看当前的数据:
mysql> SELECT * FROM person WHERE id=11; +----+-------+-----+---------+ | id | name | age | info | +----+-------+-----+---------+ | 11 | Harry | 20 | student | +----+-------+-----+---------+由结果可以看到,更新之前 id 等于 11 的记录的 name 字段值为 harry、age 字段值为 20。
下面使用 UPDATE 语句更新数据:
mysql> UPDATE person SET age = 15, name='LiMing' WHERE id = 11;语句执行完毕,查看执行结果:
mysql> SELECT * FROM person WHERE id=11; +----+--------+-----+---------+ | id | name | age | info | +----+--------+-----+---------+ | 11 | LiMing | 15 | student | +----+--------+-----+---------+由结果可以看到,id 等于 11 的记录中的 name 和 age 字段的值已经成功地被修改为指定值。
保证 UPDATE 以 WHERE 子句结束,通过 WHERE 子句指定被更新的记录所需要满足的条件,如果忽略 WHERE 子句,MySQL 将更新表中所有的行。
【实例】在 person 表中,更新 age 值为 19~22 的记录,将 info 字段值都改为 student,SQL 语句如下:
UPDATE person SET info='student' WHERE id BETWEEN 19 AND 22;更新操作执行之前,可以使用 SELECT 语句查看当前的数据:
mysql> SELECT * FROM person WHERE age BETWEEN 19 AND 22; +----+---------+-----+------------+ | id | name | age | info | +----+---------+-----+------------+ | 1 | Green | 21 | Lawyer | | 2 | Suse | 22 | dancer | | 4 | Willam | 20 | sports man | | 7 | Dale | 22 | cook | | 9 | Harry | 21 | magician | | 10 | Harriet | 19 | pianist | +----+---------+-----+------------+可以看到,这些 age 字段值在 19~22 之间的记录的 info 字段值各不相同。
下面使用 UPDATE 语句更新数据,语句执行结果如下:
mysql> UPDATE person SET info='student' WHERE age BETWEEN 19 AND 22;语句执行完毕,查看执行结果:
mysql> SELECT * FROM person WHERE age BETWEEN 19 AND 22; +----+---------+-----+---------+ | id | name | age | info | +----+---------+-----+---------+ | 1 | Green | 21 | student | | 2 | Suse | 22 | student | | 4 | Willam | 20 | student | | 7 | Dale | 22 | student | | 9 | Harry | 21 | student | | 10 | Harriet | 19 | student | +----+---------+-----+---------+由结果可以看到,UPDATE 执行后,成功将表中符合条件的 6 条记录的 info 字段值都改为 student。