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);来设置断点