序列
序列:可供多个用户用来产生唯一数值的数据库对象
自动提供唯一的数值
共享对象
主要用于提供主键值
将序列值装入内存可以提高访问效率
1创建序列
create sequence empseq
increment by 10 --每次增长10个数
start with 10--从10开始增长
maxvalue 100 --提供的最大值
cycle --需要循环
nocache --不需要缓存登陆
序列不允许像之前查询表那样的select语句
而是SELECT 序列名.序列变量 (nextval和currentval)
可以为表提供主键值(意思是插入数据的时候可以使用)
2修改序列
Alter sequence empseq
Increment by 1
No cycle
3改变序列初始值
只能通过删除序列后重建序列实现
4序列在下列情况会出现裂缝
比如说61 直接跳到 63 。。。
出现裂缝的情形:
1 回滚 2 系统异常 3 多个表使用同一序列
5 删除序列
Drop sequence 序列名
6索引
类似于字典的索引
一种独立于表的模式对象 可以存储在与表不同的磁盘或表空间中
索引被删除或破坏 不会对表产生影响,其影响的只是查询的速度
7 创建索引
自动创建
在定义PRIMARy key时 或UNIQUE约束后系统自动在相应的列上创建唯一性索引
手动创建
用户可以在其它列上创建非唯一的索引,以加速查询。
Create index 索引名
On 表名(列名)
8删除索引
Drop index 索引名
9什么时候创建索引
以下情况可以创建索引:
列中数据值分布范围很广
列经常在WHERE子句或连接条件中出现
表经常被访问而且数据量很大 访问的数据大概占数据总量的百分之二到百分之四
10 什么时候不需要创建索引
表很小
列不经常作为连接条件出现在where子句中
查询的数据大于百分之四
表经常更新
11 同义词
使用同义词访问相同的对象
方便访问其他用户的对象
缩短对象访问的长度
Create syunonym 同义词名 for 表名
删除同义词
Drop syunonym 同义词名