一、概述
其他数据库对象
主要掌握的为序列
二、序列
1.什么是序列
序列: 可供多个用户用来产生唯一数值的数据库对象
自动提供唯一的数值
共享对象
主要用于提供主键值
将序列值装入内存可以提高访问效率
2.创建序列
CREATE SEQUENCE sequence [INCREMENT BY n] --每次增长的数值 [START WITH n] --从哪个值开始 [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] --是否需要循环 [{CACHE n | NOCACHE}]; --是否缓存登录
序列主要有以下两个使用方式:
NEXTVAL 返回序列中下一个有效的值,任何用户都可以引用
CURRVAL 中存放序列的当前值
NEXTVAL 应在 CURRVAL 之前指定 ,二者应同时有效
SELECT emp_seq.nextval FROM dual;
NEXTVAL
----------
101
创建序列示例:
CREATE SEQUENCE emp_seq
INCREMENT BY 1
START WITH 100
MAXVALUE 10086
NOCYCLE
CACHE 2
使用示例:
INSERT INTO emp5 VALUES(emp_seq.nextval,‘小明‘);
注意:序列在下列情况下出现裂缝:
回滚(回滚之后序列也作废,不再使用)
系统异常
多个表同时使用同一序列
3.查看序列
select sequence_name, min_value, max_value, increment_by, last_number from user_sequences;
4.修改序列
ALTER SEQUENCE dept_deptid_seq
INCREMENT BY 20
MAXVALUE 999999
NOCACHE
NOCYCLE;
5.删除序列
DROP SEQUENCE dept_deptid_seq;
更多详细的序列运用,参考:https://www.cnblogs.com/always-online/p/4029703.html
http://blog.csdn.net/java958199586/article/details/7360152
三、索引
1.索引简介
更多索引的使用分析,参考MySQL索引分析章节:http://www.cnblogs.com/jiangbei/p/7420136.html
2.创建索引
CREATE INDEX index
ON table (column[, column]...);
注意:主键与唯一约束将会自动创建索引
示例:
CREATE INDEX emp_name_index ON emp5(name)
3.查看索引
SELECT ic.index_name, ic.column_name,
ic.column_position col_pos,ix.uniqueness
FROM user_indexes ix, user_ind_columns ic
WHERE ic.index_name = ix.index_name
AND ic.table_name = ‘EMPLOYEES‘;
4.删除索引
DROP INDEX index;
四、同义词synonym
创建:
CREATE [PUBLIC] SYNONYM synonym
FOR object;
示例:
CREATE SYNONYM e FOR employees;
删除:
DROP SYNONYM d_sum;