您的位置:首页 > 数据库

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

2016-03-10 09:25 225 查看
笔记参考来自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,否则你会发现自己更新或删除了错误的数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: