oracle 更新和删除数据

除了DBMS中常用的查询(SELECT),插入(INSERT)操作外,数据库还有一些操作例如:更新,和删除数据。

1. 更新数据

要更新(修改)表中的数据,可以使用UPDATE语句。使用UPDATE的方式有两种:

  • 更新表中特定的行
  • 更新表中的所有行

警告:不要省略WHERE子句

在使用UPDATE时必须特别小心,因为非常容易错误的更新表中的每一行。

UPDATE使用示例:

UPDATE customers
SET cust_email = 'elmer@fudd.com'
WHERE cust_id = 10005;

在更新多列时,将只使用单个SET命令,并用逗号隔开每个column = value对(在最后一个列后面无需指定逗号)。

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

在UPDATE语句中可以使用子查询,允许利用通过SELECT语句检索的数据更新列。

要删除列的值,可以将其设置为NULL。

UPDATE customers
SET cust_email = NULL
WHERE cust_id = 10005;

2. 删除数据

要从表中删除(移除)数据,可以使用DELETE语句,这有两种方式:

  • 从表中删除特定的行
  • 从表中删除所有行
    删除数据示例:
DELETE FROM customers
WHERE cust_id = 10006;

DELETE不接受列名或者通配符,他将删除整行,而不是删除列。

注意:是表内容,而不是表

DELETE语句将从表中删除行,甚至表中的所有行,但是DELETE永远不会删除表本身。

3. 更新和删除数据的指导原则

  • 永远不要执行不带有WHERE子句的UPDATE或DELETE,除非确实打算更新和删除每一行。
  • 确保每个表都具有一个主键(如果忘记了这是什么,可以参阅第15章),并且只要有可能,就把它用作WHERE子句(你可能指定各个主键、多个值或者值范围)。
  • 在结合使用WHERE子句与UPDATE或DELETE之前,首先要利用SELECT测试它,以确保它过滤出正确的记录——编写不正确的WHERE子句要容易得多。
  • 使用数据库实施的参照完整性(也请参阅第15章了解关于它的信息),如果要删除的行在其他表中具有与它们相关联的数据,那么Oracle将不允许执行删除操作。

警告:谨慎的使用

最为关键的是,Oracle没有Undo(撤销)按钮。要非常小心地使用UPDATE和DELETE,否则你会发现自己更新和删除了错误的数据。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐