zoukankan      html  css  js  c++  java
  • Oracle -操作数据库

    删除数据:

      delete:用delete删除记录,Oracle系统会产生回滚记录,所以这种操作可以使用ROLLBACK来撤销

      truncate:删除数据时,不会产生回滚记录。所以执行速度相对较快些

    可以reuse storage(保留记录所占用的空间)  drop storage(立即回收记录占用的)

    事务处理

      事务是由一系列语句构成的逻辑工作单元。事务的重要属性:

    A-Atomic:原子性,事务对数据库所做的操作要么全部执行,要么全部取消。

    C-Consistency:一致性,事务完成时,必须使所有的数据都保持一致状态。

    I-Isolated:隔离性,事务查看数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。

    D-Durability:持久性,当事务提交后,对数据库所做的修改就会永久保存下来。

    操作事务:Oracle 11g的事务是隐式自动开始的,它不需要用户显示地执行开始事务语句。但对于事务的结束处理,则需要用户进行指定的操作,通常在以下情况下,Oracle认为一个事务结束了。

    1.执行COMMIT

    2.执行ROLLBACK

    3.执行一条数据定义语句,CREATE,DROP ALTER,如果执行成功,系统要么COMMIT,要么ROLLBACK

    4.执行一个数据控制命令,GRANT REVOKE,这种操作执行完毕。系统自动执行COMMIT

    5.正常地断开数据库的连接,正常地退出SQL *Plus环境。系统自动执行COMMIT;否则系统自动执行ROLLBACK

    综合来看,Oracle结束一个事务归根结底要么执行COMMIT,要么执行ROLLBACK

    a--提交事务(COMMIT)

      Oracle系统会按照如下顺序进行处理:

    1.在回滚段内记录当前事务已提交,并且声明一个系统编号(SCN),以唯一标识这个事务

    2.启动后台的日志写入进程(LGWR),将SGA区中的重做日志缓冲区的数据和当前事务的SCN写入重做日志文件中。

    3.Oracle服务器开始释放事务处理所使用的系统资源

    4.显示通知,告诉用户事务已经成功提交

    b--回滚事务(ROLLBACK)

      回滚整个事务,Oracle系统内部将执行以下操作过程:

    1.使用回滚段中的数据撤销对数据库所做的修改

    2.Oracle后台服务进程释放掉事务所使用系统资源

    3.显示通知,告诉用户回滚成功

      可以回滚到部分, 可以使用(savepoint sp);来设置断点

  • 相关阅读:
    js之判断非空
    解决eclipse添加不了tomcat8的问题
    Java(eclipse)连接MySQL8.0以上版本数据库方式
    面试必备的:Redis和MongoDB的区别
    简述关系型数据库和非关系型数据库
    非关系型数据库MongoDB初探,以及和Redis的对比
    day53:django:URL别名/反向解析&URL分发&命名空间&ORM多表操作修改/查询
    day52:django:ORM单表/多表操作
    day51:django:dispatch&模板渲染&过滤器&标签&组件&静态文件配置
    day50:django:有名/无名分组&FBV/CBV
  • 原文地址:https://www.cnblogs.com/xcnblog3035/p/5230652.html
Copyright © 2011-2022 走看看