目录
【注意】一下UPDATE语句和DELETE语句都不要省略过滤语句WHERE
16.1 更新数据 (UPDATE语句)
两种使用UPDATE的方式:
- 更新表中的特定行
- 更新表中的所有行
基本的UPDATE语句由三部分组成:
①要更新的表
②列名和它们的新值
③确定要更新哪些行的过滤条件
--更新单列--
UPDATE customers
SET cust_email = 'yrx163@163.com'
WHERE cust_id = 1000000005;
【语句释义】
UPDATE语句总是以要更新的表名开始,SET命令用来将新值赋给被更新的列,UPDATE语句以WHERE子句结束,它告诉DBMS更新哪一行。
--更新多列--
UPDATE customers
SET cust_contact = 'Sam Roberts',
cust_email = 'sam@163.com'
WHERE cust_id = 1000000006;
【语句释义】
在更新多个列时,只需要使用一条SET命令,每个“列=值”对之间用都好分隔
UPDATE customers
SET cust_email = NULL
WHERE cust_id = 1000000005;
【语句释义】
若要删除某个列的值,可设置它为NULL。
16.2 删除数据 (DELETE语句)
两种使用DELETE的方式:
- 从表中删除特定的行
- 从表中删除所有行
DELETE FROM customers
WHERE cust_id = 1000000006;
【语句释义】
DELETE FROM要求指定从中删除数据的表名,WHERE子句要过滤要删除的行。
- DELETE不需要列名或通配符
- DELETE删除整行而不是删除列,要删除指定的列,使用UPDATE语句。
16.5 挑战题
1. 美国各州的缩写应始终用大写。编写SQL语句来更新所有美国地址,包括供应商状态(Vendor表中的vend_state)和顾客状态(Customers表中的cust_state),使它们均为大写。
UPDATE vendors
SET vend_state = UPPER(vend_state)
WHERE vend_country = 'USA';
UPDATE customers
SET cust_state = UPPER(cust_state)
WHERE cust_country = 'USA';
2. 第15课的挑战题1要求你将自己添加到customers表中。现在请删除自己。确保使用WHERE子句(在DELETE中使用它之前,先用SELECT对其进行测试),否则你会删除所有顾客。
--先查看是否是自己要删除的信息--
SELECT * FROM customers
WHERE cust_id = 001;
-- 删除cust_id为001的顾客(上节课插入了一个cust_id为001的用户)--
DELETE FROM customers
WHERE cust_id = 001;