您的位置:首页 > 数据库 > Oracle

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: