oracle中的object
schema 是object的集合,oracle中的schema和user绑定在一起
一、 sequence//序列
sequence 是or acle中用于处理自增问题的一种object,多个用户间可以共享sequence
(一)创建
语法:
CREATE SEQUENCE sequence
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}];
CYCLE | NOCYCLE 设定自增到最大值时是否从最小值开始循环
CACHE n | NOCACHE 开缓冲区,用于提速,不过会出现跳数的情况
例子:
CREATE SEQUENCE dept_deptid_seq
INCREMENT BY 10
START WITH 120
MAXVALUE 9999
NOCACHE
NOCYCLE;
sequece_name.nextval: 下一个自增值
sequece_name.currval: 当前序列值
新建一个sequence后要用 sequece_name.nextval进行初始化
SELECT dept_deptid_seq.nextval FROM dual;
SELECT dept_deptid_seq.CURRVAL FROM dual;
(二) 修改自增变量
ALTER SEQUENCE sequence
[INCREMENT BY n]
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}];
(三)删除
DROP SEQUENCE dept_deptid_seq;
(四)数据字典: USER_SEQUENCES
select * from USER_SEQUENCES;
二、index 索引
用来快速定位到数据的位置,当有大量数据(几百条)或一些数据被频繁使用时
(一)创建索引:
1.自动创建:定义PRIMARY KEY or UNIQUE 约束constraint时
2.用户手动创建:
CREATE INDEX indexname ON table (column[, column]...);
alter table add constraint constraint_name primary key (column_name);
create index emp_ename_idx on emp(ename);
例子:
create index idx_dept on scott.t_1 (deptno);
(二)删除
DROP INDEX index_name;
(三)数据字典:
USER_INDEXES
USER_IND_COLUMNS
三、synonym//同义词
相当于给一个oracle object取个别名,一般是sys用户,创建某个用户的某种object的synonym,如果sys将使用object的操作授权grant给其他用户时,其他用户可以使synonym对应的表资源
(一) 创建:
CREATE [PUBLIC] SYNONYM synonym_name FOR user.object;
例子:
SYS>create public synonym e for hr.employees;
SYS> grant select on hr.employees to scott;
SCOTT> select * from hr.e;
(二)删除
DROP SYNONYM synonym_name;