-- *******************索引、序列、同意词*******************
-- 创建、维护和使用序列(提供有规律的数值)
-- 1.创建序列
CREATE SEQUENCE dept_deptid_seq
-- 每次增长的数值[INCREMENT BY n]
INCREMENT BY 10
-- 从哪个值开始[START WITH n]
START WITH 120
-- 最小值[{MINVALUE n | NOMINVALUE}]
MINVALUE 1
-- 最大值[{MAXVALUE n | NOMAXVALUE}]
MAXVALUE 9999
-- 是否缓存登录[{CACHE n | NOCACHE}]
NOCACHE
-- 是否需要循环[{CYCLE | NOCYCLE}]
NOCYCLE;-- 2.获取序列的下一个值(next.val查询使用一次则会增加一次)
Select dept_deptid_seq.nextval from dual;-- 3.使用序列
Insert into t_user values(dept_deptid_seq.nextval,5);-- 4.查询所有序列(如果指定NOCACHE 选项,则列LAST_NUMBER 显示序列中下一个有效的值)
SELECT sequence_name, min_value, max_value,
increment_by, last_number
FROM user_sequences;-- 5.查询当前序列的值
SELECT dept_deptid_seq.CURRVAL FROM dual;-- 6.修改序列
-- 修改序列的注意事项
-- 必须是序列的拥有者或对序列有 ALTER 权限
-- 只有将来的序列值会被改变
-- 改变序列的初始值只能通过删除序列之后重建序列的方法实现
ALTER SEQUENCE dept_deptid_seq
INCREMENT BY 10
-- 修改序列不能修改start with
-- START WITH 250
MINVALUE 1
MAXVALUE 9999
CACHE 10
NOCYCLE;-- 7.删除序列
DROP SEQUENCE dept_deptid_seq;-- 8.创建和维护索引(提高查询的效率)
-- 自动创建: 在定义 PRIMARY KEY 或 UNIQUE 约束后系统自动在相应的列上创建唯一性索引-- 9.创建索引
CREATE INDEX emp_last_name_idx
ON employees(last_name);-- 10.查看索引
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';-- 11.删除索引
DROP INDEX emp_last_name_idx;
-- 12.创建同义词(给对象起别名,给表或视图创建同义词)
CREATE SYNONYM e FOR employees;
SELECT * FROM e;-- 13.删除同义词
DROP SYNONYM e;
oracle索引、序列、同义词
最新推荐文章于 2022-12-19 17:58:21 发布