锁
- 概念
目的保护数据的安全性,多个用户操作同一数据引发锁来保护数据的准确性和可靠性
- 行级锁
针对 insert/update/delete 语法对某一行数据引发的锁
标识整张表为锁定状态 select * from 表名 for update
- 表级锁
lock table 表名 in share mode
- 阻塞
比如A用户对表1行进行操作更新,那么B用户也对A用户表1行进行操作更新,B用户在等待造成了B用户的阻塞,直到用户A提交或回滚才释放。
- 死锁
A用户对表1的行1进行操作更新,B用户对表2的行2进行操作更新,而A用户又对表2的行2进行操作更新,造成了A用户阻塞,B用户又对表1的行1进行操作更新,造成了用户的阻塞,造成了A和B用户的死锁,一旦遇到死锁,orcl会释放某一个用户的阻塞。
数据库对象
- 表
最基本的对象
- 序列
序列:sequence 用户产生连续的唯一的序列号
创建简单序列:create sequence 序列名字;
获取下一个序列名字:select 序列名字.nextval from dual;
返回当前序列的值:select 序列名字.currval from dual;
删除当前序列:drop sequence 序列名字;
cycle:指定序列达到最大值或最小值后,将继续从头开始生产值
cache:预先在内存中分配一组序列号,可更快的访问序列号
创建复杂序列的语法
create sequence 序列名
start with 初始值 1
increment by 增量 1
maxValue 最大值/nomaxValue 5
minValue 最小值/nominValue 1
cycle/nocycle
cache/nocache