PHP学习网
当前位置: 首页 > 数据库 > sql学习笔记 >

MYSQL 的基本操作(更新数据)

时间:2009-07-13 22:41 点击:
一旦表中包含一些数据,就可能需要编辑现有的记录。如果错误地输入了信息或者如果数据(如姓氏或电子邮件地址)有了变化,就需要这样做。更新记录的语法如下: UPDATE tablename

一旦表中包含一些数据,就可能需要编辑现有的记录。如果错误地输入了信息或者如果数据(如姓氏或电子邮件地址)有了变化,就需要这样做。更新记录的语法如下:

UPDATE tablename SET column=value

可以一次改变一条记录中多列的内容,它们相互之间用逗号隔开。

UPDATE tablename SET column1=valueA,

column5=valueB

通常希望使用WHERE子句来指定要更新哪些行;否则,将对每一行都执行更改。

UPDATE tablename SET column2=value

WHERE column5=value

更新(以及删除)是使用主键的最重要的原因之一。这个值(它应该永远不会发生变化)可以作为WHERE子句中的参考点,即使其他所有字段都需要改变也是如此。

更新记录

(1) 找到要更新记录的主键(参见图5-27)。

SELECT user_id FROM users

WHERE first_name = 'Michael'

AND last_name='Chabon';

在本示例中,我将更改这个作者的记录中的电子邮件。要执行该操作,必须先找出那个记录的主键,这是由该查询完成的。

(2) 更新记录(参见图5-28)。

UPDATE users

SET email='mike@authors.com'

WHERE user_id = 18;

图5-27  在更新记录之前,确定在WHERE子句中使用哪个主键

图5-28  这个查询只改变了一行中一列的值

要更改电子邮件地址,可以使用一个UPDATE查询,它使用主键(user_id)来指定应该更新哪一条记录。MySQL将会报告查询成功执行,以及有多少行受到了影响。

(3) 确认所做的更改(参见图5-29)。

SELECT * FROM users

WHERE user_id=18;

图5-29  作为最后一步,可以通过再次选择记录来确认更新

尽管MySQL已经指示更新成功(参见图5-28),但它仍然乐意再次选择记录来确认发生了正确的更改。

ü提示

l    无论何时使用UPDATE,都要使用WHERE条件语句,除非你希望更改会影响每一行。

l    如果运行一个实际上不会更改任何值的更新查询(例如:UPDATE users SET first_name='mike' WHERE first_name='mike'),将不会看到任何错误,但是也不会影响任何行。MySQL的最新版本将显示与查询匹配的X行,但不会更改任何行。

l    要防止自己意外地更新过多的行,可以对UPDATE应用一个LIMIT子句。

UPDATE users SET

email='mike@authors.com'

WHERE user_id = 18 LIMIT 1

l    应该从来都不需要在主键列上执行一个UPDATE,因为这个值应该从不发生变化。更改主键的值可能造成严重的后果。

l    要在phpMyAdmin中更新记录,可以使用SQL窗口或选项卡运行UPDATE查询。此外,也可运行SELECT查询查找想更新的记录,然后单击记录旁边的铅笔图标(参见图5-30)。这将调出一个类似于图5-10的表单,可以在其中编辑记录的当前值。

图5-30  在phpMyAdmin中浏览记录的部分视图。单击铅笔图标编辑记录,单击X图标删除记录

------分隔线----------------------------