Oracle学习笔记20150903事务隔离级别
2015-09-03 08:57
501 查看
1.常见事务隔离级别有uncommit commit repeatable _read(实际应用中没有下划线) serializable几种,Oracle仅支持commit serializable和read only事务隔离级别,也就是说oracle不支持脏读.
2.read uncommit 事务隔离级别 支持脏读 支持不可重复读 支持幻读
3.read commit 事务隔离级别 不支持脏读支持 支持不可重复读 支持幻读
4.repeatable read 事务隔离级别 不支持脏读 不支持不可重复读 支持幻读
5.read serializable事务隔离级别 不支持脏读 不支持不可重复读 不支持幻读
6.serializable事务隔离级别与read only事务隔离级别作用效果一样但是serializable可以执行dml语句但是read only不支持执行dml语句.
7.设置的事务隔离级别越高代价越大.
8.设置当前事务隔离级别的基本语法为set transaction isolation level transaction_name;
9.设置整个会话的事务隔离级别语句为alter session set isolation_level transaction_name;
10.java中设置事务隔离级别的方法:ct.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);(一般情况下无需设置括号内的字段可以根据需要的事务隔离级别而更改.)
维护数据完整性的三个方法(约束,触发器,应用程序(函数 过程))
1.约束易于维护性能最好约束又包括:
not null,用于指定某列的值不能为null,例如create table user (id number,name varchar2(32) not null).
check(详细条件)根据详细条件约束数据.
unique,用于指定某列的值不能重复(但是可以为空,并且可以有多个空)例如create table user2(id number,name varchar2(32) unique);
primary key(主键),用于唯一的标示表行的数据.该列不但不能重复而且不能为空.主键所在的列会自动创建索引.但是unique不会自动创建索引.
foreign key(外键),check.用于定义主表与从表之间的关系.外键约束要定义在从表上,主表则必须有主键约束或是unique约束,当定义外键约束后,要求外键列数据必须在主表的主键列存在或是为nul.
一个表可以有多个unique,但是只能有一个主键,每张表都最好有一个主键.
2.外键外键指向主键也可以指向unique例如
create table class(id number primary key,name varchar2(32))建立班级表
create table stus(id number primary key, name varchar2(32) not null,classId number references class(id));
外键列与指向的列数据类型要一致,建表时先建主表再建从表,删除表时先删除从表.
3.check用于强制检查数据满足条件例如create table user4(id number primary key,sal number check(sal>=1000 and sal<=2000)
4.为现有的表添加约束时添加not null用modify,而添加其他四种约束则用add constraint
5.基本语法为alter table 表名 add constraint 约束名 约束种类[check/unique/primary key/foreign key](字段名如果是check时此处写条件)
alter table 表名 modify 字段名 not null
6.删除约束alter table 表名 drop constraint 约束名称.因为一张表只能有一个主键所以可以alter 表名 drop constraint primary key(但是如果有某个外键指向该主键则删除不成功,需要使用cascade(级联)关键字)即alter table 表名 drop constraint primary key cascade
7.列级定义:在定义列的同事定义约束.
8.表级定义:把各个列都定义后,再分别说明约束.(应用场景:当两列作为primary key时)例如create table user9(id number)
2.read uncommit 事务隔离级别 支持脏读 支持不可重复读 支持幻读
3.read commit 事务隔离级别 不支持脏读支持 支持不可重复读 支持幻读
4.repeatable read 事务隔离级别 不支持脏读 不支持不可重复读 支持幻读
5.read serializable事务隔离级别 不支持脏读 不支持不可重复读 不支持幻读
6.serializable事务隔离级别与read only事务隔离级别作用效果一样但是serializable可以执行dml语句但是read only不支持执行dml语句.
7.设置的事务隔离级别越高代价越大.
8.设置当前事务隔离级别的基本语法为set transaction isolation level transaction_name;
9.设置整个会话的事务隔离级别语句为alter session set isolation_level transaction_name;
10.java中设置事务隔离级别的方法:ct.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);(一般情况下无需设置括号内的字段可以根据需要的事务隔离级别而更改.)
维护数据完整性的三个方法(约束,触发器,应用程序(函数 过程))
1.约束易于维护性能最好约束又包括:
not null,用于指定某列的值不能为null,例如create table user (id number,name varchar2(32) not null).
check(详细条件)根据详细条件约束数据.
unique,用于指定某列的值不能重复(但是可以为空,并且可以有多个空)例如create table user2(id number,name varchar2(32) unique);
primary key(主键),用于唯一的标示表行的数据.该列不但不能重复而且不能为空.主键所在的列会自动创建索引.但是unique不会自动创建索引.
foreign key(外键),check.用于定义主表与从表之间的关系.外键约束要定义在从表上,主表则必须有主键约束或是unique约束,当定义外键约束后,要求外键列数据必须在主表的主键列存在或是为nul.
一个表可以有多个unique,但是只能有一个主键,每张表都最好有一个主键.
2.外键外键指向主键也可以指向unique例如
create table class(id number primary key,name varchar2(32))建立班级表
create table stus(id number primary key, name varchar2(32) not null,classId number references class(id));
外键列与指向的列数据类型要一致,建表时先建主表再建从表,删除表时先删除从表.
3.check用于强制检查数据满足条件例如create table user4(id number primary key,sal number check(sal>=1000 and sal<=2000)
4.为现有的表添加约束时添加not null用modify,而添加其他四种约束则用add constraint
5.基本语法为alter table 表名 add constraint 约束名 约束种类[check/unique/primary key/foreign key](字段名如果是check时此处写条件)
alter table 表名 modify 字段名 not null
6.删除约束alter table 表名 drop constraint 约束名称.因为一张表只能有一个主键所以可以alter 表名 drop constraint primary key(但是如果有某个外键指向该主键则删除不成功,需要使用cascade(级联)关键字)即alter table 表名 drop constraint primary key cascade
7.列级定义:在定义列的同事定义约束.
8.表级定义:把各个列都定义后,再分别说明约束.(应用场景:当两列作为primary key时)例如create table user9(id number)
相关文章推荐
- Oracle数据泵导入导出案例
- 已解——navicat premium 连接oracle 11g,出现no listener提示
- ORACLE_SQL语句优化
- oracle 11g R2 64位 安装详细步骤
- oracle 面试题做了做
- Oracle查询表空间使用情况
- 20150902 --Oracle学习笔记
- 编写一个存储过程 sqlserver专用 oracle稍有区别
- Oracle 全文检索 中文检索
- oracle imp导入dmp文件报12506错误解决办法
- Oracle错误一览表
- Oracle中生成随机数的函数
- Oracle 中union的用法
- 在oracle使用concat函数时需注意
- Oracle RMAN备份脚本
- Oracle 11G登陆提示ORA-28002:the password will expire within 7 days
- oracle 表空间查看
- Oracle GridControl 11gR1 for Linux 安装和配置指南
- oracle基本数据类型总结
- Oracle 删除表中记录 如何释放表及表空间大小