锁和数据库对象
1.锁
数据库用来控制共享资源并发访问的机制。
锁的类型:行级锁,表级锁。
行级锁:对正在被修改的行进行锁定。行级锁也被称之为排他锁。
在使用下列语句时,Oracle会自动应用行级锁:
insert,update,delete,select…… for update
select……for update允许用户一次锁定多条记录进行更新。
使用commit or rollback释放锁。
表级锁:
lock table user_tbl in mode mode; 复制代码
表级锁类型:
行共享 row share
行排他 row exclusive
共享 share
共享行排他 share row exclusive
排他 exclusive
死锁:两个或两个以上的事务相互等待对方释放资源,从而形成死锁
2.数据库对象
oracle数据库对象又称模式对象
数据库对象是逻辑结构的集合,最基本的数据库对象是表
数据库对象:
表,序列,视图,索引。
序列用于生成唯一,连续序号的对象。
创建语法:
create sequence user_id_seq start with 1000 increment by 1 maxvalue 2000 minvalue 1000 nocycle cache 1000;--指定内存中预先分配的序号 复制代码
访问序列:
select user_id_seq.currval from dual; select user_id-seq.nextval from dual; 复制代码
更改删除序列:
alter sequence user_id_seq maxvalue 10000;--不能修改其start with 值 drop sequence user_id_seq; 复制代码
在Hibernate中访问序列:
<generator class="sequence"> <param name="sequence"> user_id_seq </param> </generator> 复制代码
视图
以经过定制的方式显示来自一个或多个表的数据
创建视图:
create or replace view user_tbl_view (vid,vname,vage) as select id,user_name,age from user_tbl [with check option]|[with read only]; 复制代码
创建带有错误的视图:
create force view user_tbl_force_view as select * from user_table;--此时user_table可以不存在 复制代码
创建外联接视图:
create view user_stu_view as select u.id,u.user_name,u.password,s.ddress from user_tbl u,stu_tbl s where u.s_id(+)=s.id;--哪一方带有(+),哪一方就是次要的 复制代码
删除视图:
drop user_stu_view; 复制代码
索引用于提高SQL语句执行的性能
索引类型:
唯一索引,位图索引,组合索引,基于函数的索引,反向键索引
创建标准索引:
create index user_id_index on user_tbl(id) tablespace schooltbs; 复制代码
重建索引:
alter index user_id_index rebuild; 复制代码
删除索引:
drop index user_id_index; 复制代码
创建唯一索引:
create unique index user_id_index on user_tbl(id); 复制代码
创建组合索引:
create index name_pass_index on user_tbl(user_name,password); 复制代码
创建反向键索引:
create index user_id_index on user_tbl(id) reverse;
作者:zhulin1028
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。