Oracle数据库之使用DML语句处理数据及控制事务(二十一)

在 Oracle 数据库中,DML(Data Manipulation Language)语句用于处理(即插入、更新、删除)数据,而事务控制则用于确保数据的一致性和完整性。下面是一些基本的 DML 语句和事务控制的例子。

DML 语句

  1. INSERT:用于向表中插入新记录。

    INSERT INTO table_name (column1, column2, column3, ...)  
    VALUES (value1, value2, value3, ...);
  2. UPDATE:用于修改表中的现有记录。

    UPDATE table_name  
    SET column1 = value1, column2 = value2, ...  
    WHERE condition;
  3. DELETE:用于从表中删除记录。

    DELETE FROM table_name WHERE condition;

事务控制

事务是一系列作为单个逻辑工作单元执行的 SQL 语句。这些语句要么全部提交(即永久保存到数据库中),要么全部回滚(即撤销所有更改)。

  1. COMMIT:提交事务,即永久保存更改。

    COMMIT;
  2. ROLLBACK:撤销事务中的所有更改,即将数据库回滚到事务开始之前的状态。

    ROLLBACK;
  3. SAVEPOINT:在事务中设置一个保存点,以便稍后回滚到该点而不是事务的开始点。

    SAVEPOINT savepoint_name;
  4. ROLLBACK TO SAVEPOINT:回滚到指定的保存点,而不是事务的开始点。

    ROLLBACK TO SAVEPOINT savepoint_name;
  5. RELEASE SAVEPOINT:释放指定的保存点。释放后的保存点将不再存在,不能用于回滚。

    RELEASE SAVEPOINT savepoint_name;

示例

假设我们有一个名为 employees 的表,并且我们想要执行以下操作:

  1. 插入一条新记录。

  2. 更新该记录。

  3. 提交更改。

  4. 意识到我们犯了一个错误,所以回滚到事务开始之前的状态。

    -- 开始新的事务(隐式地,因为大多数数据库管理系统在每条 SQL 语句之后不会自动提交)  
      
    -- 插入新记录  
    INSERT INTO employees (id, name, salary) VALUES (1, 'Alice', 5000);  
      
    -- 更新记录(但假设我们在此处犯了一个错误)  
    UPDATE employees SET salary = 6000 WHERE id = 1; -- 错误:我们本不应该更改薪水  
      
    -- 意识到错误,决定回滚更改  
    ROLLBACK;  
      
    -- 现在,employees 表中的记录将保持原样,因为我们回滚了事务

注意:在某些数据库管理系统(包括 Oracle)中,每条 SQL 语句默认都是自动提交的,但在其他系统中,您可能需要显式地使用 BEGIN 语句来开始一个新的事务。在 Oracle 中,您可以使用 SET TRANSACTION 或在 PL/SQL 块中开始事务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值