更新数据

更新(修改)表中的数据,可以使用UPDATE语句。有两种使用UPDATE的方式:
1.更新表中的特定行;
2.更新表中的所有行。

警告:不要省略 WHERE 子句
在使用UPDATE时一定要细心。因为稍不注意,就会更新表中的所有行。

使用UPDATE语句非常容易,甚至可以说太容易了。基本的UPDATE语句由三部分组成,分别是:
1.要更新的表;
2.列名和它们的新值;
3.确定要更新哪些行的过滤条件。

举一个简单例子。客户1000000005现在有了电子邮件地址,因此他的记录需要更新,语句如下:

UPDATE Customers
SET cust_email='link@qq.com'
WHERE id='10086';

UPDATE语句总是以要更新的表名开始。UPDATE语句以WHERE子句结束,它告诉 DBMS 更新哪一行。没有WHERE子句, DBMS 将会用这个电子邮件地址更新Customers表中的所有行。

更新多个列的语法稍有不同

UPDATE Customers
SET cust_contact='Sam Robers',
		cust_email='mifa@qq.com'
WHERE cust_id='10000';

在更新多个列时,只需要使用一条SET命令,每个 “ 列 = 值 ” 对之间用逗号分隔(最后一列之后不用逗号)。

要删除某个列的值,可设置它为NULL(假如表定义允许NULL值)。

UPDATE Customers
SET cust_email = NULL
WHERE cust_id = '1000000005'

其中NULL用来去除cust_email列中的值。这与保存空字符串很不同(空字符串用’'表示,是一个值),而NULL表示没有值。

删除数据

从一个表中删除(去掉)数据,使用DELETE语句。有两种使用DELETE的方式:
1.从表中删除特定的行;
2.从表中删除所有行。

警告:不要省略 WHERE 子句
在使用DELETE时一定要细心。因为稍不注意,就会错误地删除表中所有行。

DELETE FROM Customers
WHERE cust_id = '1000000006';

DELETE FROM要求指定从中删除数据的表名,WHERE子句过滤要删除的行。在这个例子中,只删除顾客1000000006。如果省略WHERE子句,它将删除表中每个顾客。

DELETE不需要列名或通配符。DELETE删除整行而不是删除列。要删除指定的列,请使用UPDATE语句。

说明:删除表的内容而不是表
DELETE语句从表中删除行,甚至是删除表中所有行。但是,DELETE不删除表本身。

提示:更快的删除
如果想从表中删除所有行,不要使用DELETE。可使用TRUNCATE TABLE语句,它完成相同的工作,而速度更快(因为不记录数据的变动)。

前一节使用的UPDATE和DELETE语句都有WHERE子句,这样做的理由很充分。如果省略了WHERE子句,则UPDATE或DELETE将被应用到表中所有的
行。换句话说,如果执行UPDATE而不带WHERE子句,则表中每一行都将用新值更新。类似地,如果执行DELETE语句而不带WHERE子句,表的所有
数据都将被删除。