Oracle的表创建和事务管理

- CURD,根据查询结果创建新表
- 事务管理
- 什么是事务 ,为什么要用事务
- SQL99事务隔离级别
- Oracle事务隔离级别
- 事务回滚
- 隐式回滚
- 显示回滚
- 事务提交
- 隐式提交
- 显示提交
- 事务回滚点

1、CURD、根据select结果创建表

drop table 和 truncate table 和 delete from 区别:
drop table
1)属于DDL
2)不可回滚
3)不可带where
4)表内容和结构删除
5)删除速度快 truncate table
1)属于DDL
2)不可回滚
3)不可带where
4)表内容删除
5)删除速度快 delete from
1)属于DML
2)可回滚
3)可带where
4)表结构在,表内容要看where执行的情况
5)删除速度慢,需要逐行删除 根据select创建表,例如:
create table test2
as
select * from emp;
也可以只创建表结构而不要数据:
create table test3
as
select * from emp
where 1 = 2;

2、Oracle的事务管理

##2.1##事务?
什么是事务?
一个不可分割的子操作形成一个整体,该整体要么全部执行成功,要么全部执行失败。例如:转帐 为什么要用事务?
如果不用事务的话,为转帐为例,可能出现一个用户钱增加了,另一个用户钱不变 编程中,事务可用于哪一层?
事务放在业务层 jdbc编程中,如何使用事务?
connection.setAutoCommit(false);
pstmt.executeUpdate();
connection.commit();
connection.rollback(); hibernate编程中,如何使用事务?
transaction.begin();
session.save(new User());
transaction.commit();
transaction.rollback(); spring编程中,如何使用事务?
spring可以分为二种
>编程式事务,藕合
>声明式事务,解藕,提倡

##2.2##SQL99事务隔离级别
(1)read uncommitted -- 不能解决任何缺点
(2)read committed -- 脏读,Oracle默认
(3)reapatable read -- 不可重复读,脏读,MySQL默认
(4)serializable -- 幻读,不可重复读,脏读,效率低

##2.2##SQL99事务隔离级别
(1)read committed -- 脏读,Oracle默认
(2)serializable -- 幻读,不可重复读,脏读,效率低
(3)read only -- 只读模式
Oracle中修改事务隔离级别:
set transaction isolation level serializable; 修改成串行模式

##2.3##事务回滚
(1)显示回滚:rollback
(2)隐藏回滚:关闭窗口(sqlplus工具),死机,掉电
注意:回滚到事务开始的地方

##2.4##事务提交
Oracle的提交事务
(1)显示提交:commit
(2)隐藏提交:DDL/DCL/exit(sqlplus工具)
注意:提交是的从事务开始到事务提交中间的内容,提交到ORCL数据库中的DBF二进制文件

##2.5##什么是回滚点?
在操作之间设置的一个标志位,用于将来回滚之用 为什么要设置回滚点?savepoint a;rollback to savepoint a;
如果没有设置回滚点的话,Oracle必须回滚到事务开始的地方,其间做的一个正确的操作也将撤销 使用savepoint 回滚点,设置回滚点a
savepoint a; 使用rollback to savepoint,回滚到回滚点a处
rollback to savepoint a; Oracle提交或回滚后,原来设置的回滚点还有效吗?
原回滚点无效了 Oracle之所以能回滚的原因是?
主要机制是实例池,用户在一个事务中的所有操作都保存在一个特殊的池子中
如果commit(执行DDL,DCL语句也相当于commit),那么该池子就清空,并且修改本地二进制数据库文件。
如果rollback,那么将该池子内容恢复到实例池中即可。

Oracle的表创建和事务管理的更多相关文章

  1. 微服务、分库分表、分布式事务管理、APM链路跟踪性能分析演示项目

    好多年没发博,最近有时间整理些东西,分享给大家. 所有内容都在github项目liuzhibin-cn/my-demo中,基于SpringBoot,演示Dubbo微服务 + Mycat, Shardi ...

  2. Oracle 复制表创建的sql语句

    http://cache.baiducontent.com/c?m=9d78d513d99e01fc09b3c3690d67c0161343f0652ba1d4020ed08449e3732b4250 ...

  3. oracle数据表创建分区与查询

    场景: 遇到1亿数据量的数据需要根据用户名做些数据统计分析,想直接做些聚合计算基本没可能,于是打算先根据日期按照年月创建分区,然后对各个分区分别进行统计,最后汇总结果. 有两种方法,分别是手工设置分区 ...

  4. MyBatis6:MyBatis集成Spring事务管理(下篇)

    前言 前一篇文章<MyBatis5:MyBatis集成Spring事务管理(上篇)>复习了MyBatis的基本使用以及使用Spring管理MyBatis的事务的做法,本文的目的是在这个的基 ...

  5. MyBatis(6):MyBatis集成Spring事务管理(下)

    前一篇文章复习了MyBatis的基本使用以及使用Spring管理MyBatis的事务的做法,本文的目的是在这个的基础上稍微做一点点的进阶:多数据的事务处理.文章内容主要包含两方面: 1.单表多数据的事 ...

  6. mysql之事务管理

    本文内容: 什么是事务管理 事务管理操作 回滚点 默认的事务管理 首发日期:2018-04-18 什么是事务管理: 可以把一系列要执行的操作称为事务,而事务管理就是管理这些操作要么完全执行,要么完全不 ...

  7. spring boot 或 spring 集成 atomikos jta 完成多数据源事务管理

    前言:对于事务,spring 不提供自己的实现,只是定义了一个接口来供其他厂商实现,具体些的请看我的这篇文章: https://www.cnblogs.com/qiaoyutao/p/11289996 ...

  8. MyBatis(5):MyBatis集成Spring事务管理(上)

    单独使用MyBatis对事务进行管理 前面MyBatis的文章有写过相关内容,这里继续写一个最简单的Demo,算是复习一下之前MyBatis的内容吧,先是建表,建立一个简单的Student表: 1 2 ...

  9. Spring事务管理器分类

    Spring并不直接管理事务,事实上,它是提供事务的多方选择.你能委托事务的职责给一个特定的平台实现,比如用JTA或者是别的持久机制.Spring的事务管理器可以用下表表示: 事务管理器的实例 目标 ...

随机推荐

  1. 十二:JAVA I/O

     输入模式                                                          输出模式 ⑴字节输入流:InputStream ⑵字节输出流:Output ...

  2. 【java并发编程艺术学习】(三)第二章 java并发机制的底层实现原理 学习记录(一) volatile

    章节介绍 这一章节主要学习java并发机制的底层实现原理.主要学习volatile.synchronized和原子操作的实现原理.Java中的大部分容器和框架都依赖于此. Java代码 ==经过编译= ...

  3. [matlab]一道笔试题

    x=[1 1; 1 -1; -1 -1; -1 1]'; X=-2:0.01:2; Y=X; N=length(X); [X,Y]=meshgrid(X,Y); Z1=0;Z2=0;Z3=0;Z4=0 ...

  4. 使用LookAndFeel为界面更换皮肤

    ----------------siwuxie095                             在 Windows 系统中,默认的 Java 运行环境(JRE)会为当前的窗体程序 指定一 ...

  5. MyBatis入门基础

    转自http://www.cnblogs.com/selene/p/4604605.html 话不多说,先看看原始的JDBC程序代码,看看这样的代码存在什么样子的问题. package com.uti ...

  6. filter与servlet的比较

    filter与servlet的比较   主要从如下四个方面介绍他们之间的区别:                1.概念.                2.生命周期.                3 ...

  7. hdu 5147 Sequence II (树状数组 求逆序数)

    题目链接 Sequence II Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  8. C# 写 LeetCode easy #21 Merge Two Sorted Lists

    21. Merge Two Sorted Lists Merge two sorted linked lists and return it as a new list. The new list s ...

  9. mssql 递归

    --递归id往下所有内容with temp ( URE_ID, URE_PARENT_ID,URE_NAME ,URE_TYPE)as(select URE_ID, URE_PARENT_ID,URE ...

  10. 树莓派配置(一):打开SPI

    1.树莓派默认SPI关闭,在进行编程前需要打开SPI cd /boot/ sudo vi config.txt 将#dtparam=spi=off 改成:dtparam=spi=on 重启 sudo ...