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

约定不等于承诺〃 2022-08-21 02:06 283阅读 0赞

笔记参考来自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,否则你会发现自己更新或删除了错误的数据。

发表评论

表情:
评论列表 (有 0 条评论,283人围观)

还没有评论,来说两句吧...

相关阅读

    相关 SQL读书笔记三) 视图

    笔记参考来自SQL必知必会,记下笔记方便以后查阅,也写下一些自己的理解 视图按我的理解有点像函数的封装,把一些重复调用的部分封装起来,为以后频繁的调用提供方便的方法。 现看

    相关 SQL读书笔记)创建操纵表

    笔记参考自SQL必知必会,方便自己以后查阅,也希望能够帮助到正在学习SQL的道友~ 前面的笔记大部分全是检索功能,书的目录结构就是先介绍的检索功能,我认为也有道理,因为数据库

    相关 SQL读书笔记(四)

    参考书籍为SQL必知必会。。 以下为我读书时在书上的摘录,不过我使用的是MySQL所以函数皆是MySQL支持的函数,不是很全,可以自行参考API 使用数据处理函数 S

    相关 SQL读书笔记(三)

    上一篇笔记主要是记下了SELECT的用法,还有一些过滤的方法 这一篇记下一些计算字段,非常有用,主要是用在我们需要改变查询结果格式,一下用到的是MySQL的语法,笔记大部分还