SQL读书笔记(十一)更新和删除数据

笔记参考来自SQL必知必会,摘抄下书中的一些关键方便以后自己查询

更新和删除都是比较敏感的操作,因为没办法撤销,所以修改时要注意,更新主要分为更新特定行和所有行。所以要十分注意避免更高错误

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

基本的UPDATE语句由三部分组成,分别是:

要更新的表; 列名和它们的新值; 确定要更新哪些行的过滤条件

UPDATE Customers SET cust_email = ‘kim@thetoystore.com’ WHERE cust_id = ‘1000000005’;

UPDATE语句以WHERE子句结束,它告诉DBMS更新哪一行。没有WHERE子句,DBMS将会用这个电子邮件地址更新Customers表中的所有 行,这不是我们希望的

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

UPDATE Customers SET cust_contact = ‘Sam Roberts’, cust_email = ‘sam@toyland.com’ WHERE cust_id = ‘1000000006’;

提示:在UPDATE语句中使用子查询

UPDATE语句中可以使用子查询,使得能用SELECT语句检索出的数据更新列数据。

2、删除数据

删除和更新注意的问题一样。

DELETE FROM Customers WHERE cust_id = ‘1000000006’;

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

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

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

下面是许多SQL程序员使用UPDATE或DELETE时所遵循的重要原则。

除非确实打算更新和删除每一行,否则绝对不要使用不带WHERE子句的UPDATE或DELETE语句。

保证每个表都有主键,尽可能像WHERE子句那样使用它(可以指定各主键、多个值或值的范 围)。

在UPDATE或DELETE语句使用WHERE子句前,应该先用SELECT进行测试,保证它过滤的是正确的记录,以防编写的WHERE子句不正确。

使用强制实施引用完整性的数据库,这样DBMS将不允许删除其数据与其他表相关联的行。 有的DBMS允许数据库管理员施加约束,防止执行不带WHERE子句的UPDATE或DELETE语句。如果所采用的DBMS支持这个特性,应该使用它。

若是SQL没有撤销(undo)按钮,应该非常小心地使用UPDATE和DELETE,否则你会发现自己更新或删除了错误的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小疯疯0413

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值