CREATE SEQUENCE sequence
[INCREMENT BY n] --每次增长的数值(步长),默认值为1(n为正数,则自增;n为负数,则自减)
[START WITH n] --从哪个值开始(初始值),默认值为1
[{MAXVALUE n | NOMAXVALUE}] -- 默认值为 NOMAXVALUE
[{MINVALUE n | NOMINVALUE}]-- 默认值为 NOMINVALUE
[{CYCLE | NOCYCLE}] -- 是否循环,默认值为NOCYCLE
[{CACHE n | NOCACHE}] --是否缓存,默认为不缓存
SQL> create sequence deptno_seq start with 50 increment by 10 maxvalue 70 cache 3;
序列已创建。
SQL> create table deptnew as select * from dept;
表已创建。
SQL> insert into deptnew(deptno, dname, loc) values(deptno_seq.nextval, 'test_dname','test_loc');
已创建 1 行。
SQL> select * from deptnew;
DEPTNO DNAME LOC
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 test_dname test_loc
SQL> select deptno_seq.currval from dual;
CURRVAL
50
- 附加说明:Oracle中的dual表
SQL> SELECT sequence_name, min_value, max_value, increment_by, cycle_flag, cache_size, last_number from user_sequences;
SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY C CACHE_SIZE LAST_NUMBER
DEPTNO_SEQ 1 70 10 N 3 80
ALTER SEQUENCE sequence
[INCREMENT BY n] --每次增长的数值
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}] -- 是否需要循环
[{CACHE n | NOCACHE}] --是否需要缓存
SQL> alter sequence deptno_seq maxvalue 90;
序列已更改。
SQL> DROP SEQUENCE deptno_seq;
序列已删除。
SQL> create index idx_ename on emp(ename);
索引已创建。
SQL> create index idx_deptno on emp(deptno, job);
索引已创建。
SQL> create unique index idx_dname on dept(dname);
索引已创建。
SQL> create index idx_job on emp(job);
索引已创建。
SQL> SELECT uic.index_name, uic.column_name, uic.column_position, ui.uniqueness FROM user_indexes ui, user_ind_columns uic WHERE uic.index_name = ui.index_name AND ui.table_name = 'EMP';
INDEX_NAME COLUMN_NAME COLUMN_POSITION UNIQUENES
IDX_JOB JOB 1 NONUNIQUE
......
PK_EMP EMPNO 1 UNIQUE
SQL> DROP INDEX idx_ename;
索引已删除。
1、简化对象访问。
2、提供对象访问的安全性:多用户协同开发中,可以屏蔽对象的名字及其持有者。
SQL> conn sys/02000059 as sysdba;
已连接。
SQL> grant create public synonym to scott;
授权成功。
SQL> grant create synonym to scott;
授权成功。
SQL> conn scott/02000059
已连接。
SQL> create public synonym dn for scott.deptnew;
同义词已创建。
SQL> select * from dn;
DEPTNO DNAME LOC
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 test_dname test_loc
SQL> create synonym em for scott.emp01;
同义词已创建。
SQL> select * from em;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
DEPTNO
7951 EASON ANALYST 7566 01-12月-17 3000
20
7369 G_EASON CLERK 7902 17-12月-80 800
20
......
7934 MILLER CLERK 7782 23-1月 -82 1300
10
已选择9行。
SQL> SELECT synonym_name, table_owner, table_name FROM user_synonyms WHERE synonym_name = 'EM';
SYNONYM_NAME TABLE_OWNER TABLE_NAME
EM SCOTT EMP01
SQL> select * from syn where synonym_name = 'EM';
SYNONYM_NAME TABLE_OWNER TABLE_NAME DB_LINK
EM SCOTT EMP01
SQL> SELECT synonym_name, table_owner, table_name FROM all_synonyms WHERE synonym_name = 'EM';
SQL> select * from syn where synonym_name = 'EM';
SYNONYM_NAME TABLE_OWNER TABLE_NAME
EM SCOTT EMP01
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。