一、查看数据库基本信息
1、版本信息
select * from v$version;
LINEID BANNER
---------- -------------------------
1 DM Database Server 64 V8
2 DB Version: 0x7000b
2、查看数据库的页大小
select para_name,para_value from v$dm_ini where para_name = 'GLOBAL_PAGE_SIZE';
LINEID PARA_NAME PARA_VALUE
---------- ---------------- ----------
1 GLOBAL_PAGE_SIZE 8192
3、查看簇的大小
select para_name,para_value from v$dm_ini where para_name = 'GLOBAL_EXTENT_SIZE';
LINEID PARA_NAME PARA_VALUE
---------- ------------------ ----------
1 GLOBAL_EXTENT_SIZE 16
4、查看数据库目前字符集
select SF_GET_UNICODE_FLAG();
LINEID SF_GET_UNICODE_FLAG()
---------- ---------------------
1 0
## 0 表示 GB18030,1 表示 UTF-8,2 表示 EUC-KR
二、表空间对象
1、创建表空间
用户可以在用户表空间中添加数据文件,添加的数据文件大小最小为:4096*页大小(8K)=32M,否则报错,详情见下表
CREATE TABLESPACE PROD DATAFILE '/dm8/data/DAMENG/tbs_prod01.dbf' size 20 autoextend on next 1 maxsize 10240;
CREATE TABLESPACE PROD DATAFILE '/dm8/data/DAMENG/tbs_prod01.dbf' size 20 autoextend on next 1 maxsize 10240;
[-2410]:Error in line: 1
Data file [/dm8/data/DAMENG/tbs_prod01.dbf] size is invalid.
used time: 1.072(ms). Execute id is 0.
修改成32就OK
SQL> CREATE TABLESPACE PROD DATAFILE '/dm8/data/DAMENG/tbs_prod01.dbf' size 32 autoextend on next 1 maxsize 10240;
executed successfully
used time: 40.281(ms). Execute id is 41613.
HUGE表空间也类似
SQL> CREATE HUGE TABLESPACE HTS_NAME PATH '/dm8/data/DAMENG/TBS_HTS_NAME01.DBF';
executed successfully
used time: 13.836(ms). Execute id is 41614.
与ORACLE 类似,大同小异
SQL> CREATE TABLESPACE PROD DATAFILE '/oradata/FXW3DB/datafile/tbs_prod01.dbf' size 32M autoextend on next 1M maxsize 10G;
Tablespace created.
2、增加表空间数据文件
SQL> alter tablespace prod add datafile '/dm8/data/DAMENG/tbs_prod02.dbf' size 64 autoextend on next 1 maxsize unlimited;
executed successfully
used time: 23.069(ms). Execute id is 41615.
3、修改表空间参数
ALTER TABLESPACE prod DATAFILE '/dm8/data/DAMENG/TBS_PROD01.DBF' AUTOEXTEND OFF;
4、删除表空间
DROP TABLESPACE PROD;
5、查看表空间信息
5.1 HUGE和普通表空间信息
SELECT * FROM V$HUGE_TABLESPACE;
SELECT ID,NAME,CACHE,TYPE$,STATUS$,MAX_SIZE,TOTAL_SIZE,FILE_NUM FROM V$TABLESPACE;
5.2 查看表空间和数据文件信息
select tablespace_name,file_id
,AUTOEXTENSIBLE,file_name
,round(bytes/1024/1024,1) MB_bytes
,round(MAXBYTES/1024/1024/1024,2) Max_GB_bytes
from dba_data_files;
LINEID TABLESPACE_NAME FILE_ID AUTOEXTENSIBLE FILE_NAME MB_BYTES MAX_GB_BYTES
---------- --------------- ----------- -------------- ------------------------------- -------- ------------
1 SYSTEM 0 YES /dm8/data/BURTON/SYSTEM.DBF 26 16384
2 PROD 1 YES /dm8/data/DAMENG/tbs_prod02.dbf 64 16384
3 PROD 0 YES /dm8/data/DAMENG/tbs_prod01.dbf 32 10
4 SYSAUX 0 YES /dm8/data/BURTON/SYSAWR.DBF 4651 10
5 TEST 0 YES /dm8/data/BURTON/TBS_TEST01.DBF 64 20
6 MAIN 0 YES /dm8/data/BURTON/MAIN.DBF 128 16384
7 TEMP 0 YES /dm8/data/BURTON/TEMP.DBF 10 16384
8 ROLL 0 YES /dm8/data/BURTON/ROLL.DBF 384 16384
套用oracle查询语句也通用
select b.tablespace_name
,b.files
,round(b.bytes) total_M
,round(nvl(a.free_space,0)) free_M
,round((b.bytes-nvl(a.free_space,0))/b.bytes*100,2) "usedsz_rt%"
,round(b.extensible_space) extens_M
,round((nvl(a.free_space,0)+b.extensible_space)/(b.bytes+b.extensible_space)*100,6) "total_free%"
,round((b.bytes-nvl(a.free_space,0))/(b.bytes+b.extensible_space)*100,6) "actused_rt%"
from (select tablespace_name,sum(bytes)/1024/1024 free_space from
dba_free_space group by tablespace_name) a,
(select tablespace_name
,count(tablespace_name) files
,sum(decode(autoextensible,'NO',0,decode(sign(maxbytes-bytes),1,maxbytes-bytes,0)))/1024/1024 extensible_space
,sum(bytes)/1024/1024 bytes
from dba_data_files
group by tablespace_name) b
where a.tablespace_name(+)=b.tablespace_name
order by 7;
三、用户
1、创建用户
create user test identified by "Test_2020" diskspace limit 10240 default tablespace test temporary tablespace temp; # 用户使用最大磁盘空间10G
create user prod identified by "Prod_2020" default tablespace prod temporary tablespace temp;
grant resource to prod;
grant create view,create synonym to prod;
达梦区别ORACLE创建时自带connect权限
2、查询用户
alter user test account lock;
select USERNAME,USER_ID,ACCOUNT_STATUS,LOCK_DATE,EXPIRY_DATE,DEFAULT_TABLESPACE,CREATED,PASSWORD_VERSIONS from dba_users where USERNAME in ('TEST','PROD');
LINEID USERNAME USER_ID ACCOUNT_STATUS LOCK_DATE EXPIRY_DATE DEFAULT_TABLESPACE CREATED PASSWORD_VERSIONS
---------- -------- ----------- -------------- --------- ----------- ------------------ -------------------------- -----------------
1 TEST 50331751 LOCKED NULL NULL TEST 2021-01-07 10:07:32.958423 2
2 PROD 50331752 OPEN NULL NULL PROD 2021-01-07 10:07:38.223804 2
有些字段如LOCK_DATE,EXPIRY_DATE等感觉为兼容ORACLE设置,实际没值。
3、删除用户
drop user test cascade; # 删除用户及对象
4、查看用户权限
4.1 用户角色权限
select * from dba_role_privs where GRANTEE='PROD';
LINEID GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE
---------- ------- ------------ ------------ ------------
1 PROD RESOURCE N NULL
2 PROD PUBLIC N NULL
3 PROD SOI N NULL
4.2 用户系统权限
select * from dba_sys_privs where grantee='PROD';
LINEID GRANTEE PRIVILEGE ADMIN_OPTION
---------- ------- -------------- ------------
1 PROD CREATE VIEW NO
2 PROD CREATE SYNONYM NO
4.3 用户表访问权限
select * from dba_tab_privs where grantee='PROD';
LINEID GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE HIERARCHY
---------- ------- ----- ---------- ------- --------- --------- ---------
1 PROD TEST TEST01 SYSDBA SELECT NO NO
四、表
根据存储方式不同有普通表,堆表和HUGE表。下图就索引组织表和堆表结果做简单对比
1、创建表
1.1 普通表(默认创建索引组织表),索引组织表是以主键排序的方式的B树组织结构,数据都存在叶子节点
1.1.1 普通表
CREATE TABLE PROD.TB_01
( ID INT NOT NULL
,NAME1 VARCHAR(20) NOT NULL
,NAME2 VARCHAR(20)
,CREATE_DT DATE DEFAULT SYSDATE
)
STORAGE (INITIAL 2, MINEXTENTS 3,NEXT 4, ON PROD, FILLFACTOR 85);
COMMENT ON TABLE PROD.TB_01 IS 'TEST TABLE';
COMMENT ON COLUMN PROD.TB_01.ID IS 'SEQ_ID';
ALTER TABLE PROD.TB_01 ADD CONSTRAINT PK_TB01_ID PRIMARY KEY (ID);
FILLFACTOR:指定插入数据时数据页的充满程度,取值范围从0 到100。默认值为0,等价于100。
插入数据时填充比例的值越低,可由新数据使用的空间就越多;更新数据时填充比例的值越大,
更新导致出现的页分裂的几率越大。
类似与ORACLE中pctfree定义了一个块保留空间的百分比,保留空间是为了将来可能发生的更新操作,
如果此时该块没有可利用空间,那么只有发生row migrate。
begin
for i in 1..100 loop
insert into prod.tb_01 values(i,'a'||i,'b'||i,sysdate-i/2);
end loop;
commit;
end;
/
1.1.2 分区表
分区表优点:
a. 减少所有数据都损坏的可能性,一个表空间损坏不影响其他表空间,提高可用性;
b. 恢复时间大大减少;
c. 可以将同一个表中的数据分布在不同的磁盘上,从而均衡磁盘上的I/O操作;
d. 提高了表的可管理性、可利用性和访问效率。
达梦数据库DM支持对表进行水平分区。
a. 范围(range)水平分区:对表中的某些列上值的范围进行分区,根据某个值的范围,决定将该数据存储在哪个分区上;
b. 哈希(hash)水平分区:通过指定分区编号来均匀分布数据的一种分区类型,通过在I/O设备上进行散列分区,
使得这些分区大小基本一致;
c. 列表(list)水平分区:通过指定表中的某个列的离散值集,来确定应当存储在一起的数据。
CREATE TABLE PROD.TB_PART_01(
id int not null,
code_id varchar(2),
name1 varchar(20) not null,
name2 varchar(20),
create_dt date default sysdate
)
PARTITION BY RANGE(create_dt)(
PARTITION P_2016 VALUES LESS THAN ('2016-01-01'),
PARTITION P_2020 VALUES LESS THAN ('2020-01-01'),
PARTITION P_2024 VALUES LESS THAN ('2024-01-01')
);
COMMENT ON COLUMN PROD.TB_PART_01.ID IS 'SEQ_ID';
# 堆表所有的子表只能在一个表空间,索引组织表的字表可以放在不同表空间。
begin
for i in 1..10000 loop
insert into PROD.TB_PART_01 values(i,'C'||mod(i,5),'a'||i,'b'||i,sysdate-i/2);
end loop;
commit;
end;
/
分区表操作
(1)增加分区:
ALTER TABLE PROD.TB_PART_01 ADD PARTITION P_MAX VALUES LESS THAN (MAXVALUE);
(2)拆分分区:
ALTER TABLE PROD.TB_PART_01 SPLIT PARTITION P_2024 AT('2022-01-01') INTO (PARTITION P_2022 TABLESPACE PROD,PARTITION P_2024_2);
(3)合并分区:
ALTER TABLE PROD.TB_PART_01 MERGE PARTITIONS P_2022,P_2024_2 INTO PARTITION P_2024;
(4)交换分区(TB_04 和 TB_PART_01表结构和索引一致)
ALTER TABLE PROD.TB_PART_01 EXCHANGE PARTITION P_2016 WITH TABLE PROD.TB_04;
(5)删除分区:
ALTER TABLE PROD.TB_PART_01 DROP PARTITION P_2016;
1.1.3 多级分区表
CREATE TABLE PROD.TB_PART_02(
ID INT NOT NULL,
CODE_ID CHAR(2),
NAME1 VARCHAR(20) NOT NULL,
NAME2 VARCHAR(20),
CREATE_DT DATE DEFAULT SYSDATE
)
PARTITION BY LIST(CODE_ID)
SUBPARTITION BY RANGE(CREATE_DT) SUBPARTITION TEMPLATE(
SUBPARTITION P11 VALUES LESS THAN ('2015-01-01'),
SUBPARTITION P12 VALUES LESS THAN ('2020-01-01'),
SUBPARTITION P13 VALUES EQU OR LESS THAN (MAXVALUE))
(
PARTITION P1 VALUES ('C0', 'C1')
(
SUBPARTITION P11_1 VALUES LESS THAN ('2015-01-01'),
SUBPARTITION P11_2 VALUES LESS THAN ('2020-01-01'),
SUBPARTITION P11_3 VALUES equ or LESS THAN (MAXVALUE)
),
PARTITION P2 VALUES ('C2','C3','C4'),
PARTITION P3 VALUES (DEFAULT)
);
begin
for i in 1..10000 loop
insert into PROD.TB_PART_02 values(i,'C'||mod(i,5),'a'||i,'b'||i,sysdate-i/2);
end loop;
commit;
end;
/
1.2 创建堆表
INI参数方式用户可以在配置文件中,添加LIST_TABLE参数:
1) 如果LIST_TABLE = 1,则在未显式指定表是否为堆表或非堆表时,默认情况下创建的表为堆表;
2) 如果LIST_TABLE = 0,则在未显式指定表是否为堆表或非堆表时,默认情况下创建的表为普通表形式。
为支持并发插入,扁平B树可以支持最多128个数据页链表(最多64个并发分支和最多64个非并发分支),
在B树的控制页中记录了所有链表的首、尾页地址。
select para_name,para_value from v$dm_ini where para_name='LIST_TABLE';
LINEID PARA_NAME PARA_VALUE
---------- ---------- ----------
1 LIST_TABLE 0
sp_set_para_value(1,'LIST_TABLE',1); # 修改后默认创建堆表
CREATE TABLE PROD.TB_02
( ID INT NOT NULL
,NAME1 VARCHAR(20) NOT NULL
,NAME2 VARCHAR(20)
,CREATE_DT DATE DEFAULT SYSDATE
)
STORAGE (INITIAL 2, MINEXTENTS 3,NEXT 4, ON PROD, FILLFACTOR 85,BRANCH(4,2));
COMMENT ON TABLE PROD.TB_02 IS 'HEAP TABLE';
COMMENT ON COLUMN PROD.TB_02.ID IS 'SEQ_ID';
ALTER TABLE PROD.TB_02 ADD CONSTRAINT PK_TB02_ID PRIMARY KEY (ID);
insert into PROD.TB_02 select * from PROD.TB_01;
commit;
1.3 创建HUGE表
HUGE表的存储方式有以下几个优点:
1.同一个列的数据都是连续存储的,可以加快某一个列的数据查询速度;
2.连续存储的列数据,具有更大的压缩单元和数据相似性,可以获得远优于行存储的压缩效率,
压缩的单位是区;
3.条件扫描借助数据区的统计信息进行精确过滤,可以进一步减少IO,提高扫描效率;
CREATE HUGE TABLE PROD.TB_03 (
ID INT NOT NULL
,NAME1 VARCHAR(20) NOT NULL
,NAME2 VARCHAR(20)
,CREATE_DT DATE DEFAULT SYSDATE
) STORAGE(ON HTS_NAME,SECTION(2048)) ;
2、查看表信息
一般表查询
SP_TABLEDEF('PROD','TB_01');
SP_TABLEDEF('PROD','TB_02');
SP_TABLEDEF('PROD','TB_03');
SELECT TABLE_NAME,PARTITIONED,TABLESPACE_NAME,STATUS FROM DBA_TABLES WHERE OWNER='PROD' AND TABLE_NAME IN ('TB_01','TB_02','TB_03');
分区查询
SELECT OWNER,TABLE_NAME,PARTITIONING_TYPE,SUBPARTITIONING_TYPE,PARTITION_COUNT,DEF_SUBPARTITION_COUNT,PARTITIONING_KEY_COUNT,SUBPARTITIONING_KEY_COUNT,STATUS
FROM DBA_PART_TABLES WHERE TABLE_NAME IN ('TB_PART_01','TB_PART_02');
SELECT TABLE_OWNER,TABLE_NAME,COMPOSITE,PARTITION_NAME,SUBPARTITION_COUNT,HIGH_VALUE,HIGH_VALUE_LENGTH PARTITION_POSITION,TABLESPACE_NAME
FROM DBA_TAB_PARTITIONS WHERE TABLE_NAME in ('TB_PART_01','TB_PART_02');3、修改表结构
ALTER TABLE PROD.TB_01 ADD GENDER CHAR(2);
ALTER TABLE PROD.TB_01 MODIFY GENDER VARCHAR(6);
ALTER TABLE PROD.TB_01 DROP COLUMN GENDER;
4、删除表
DROP TABLE PROD.TB_01;
如果要删除的表被其他表引用,即其他表的外键引用了表的任何主键或唯一键,则需要在DROP TABLE 语句中包含CASCADE 选项,如:
DROP TABLE PROD.TB_01 CASCADE;
五、索引
1、普通索引
1.1 创建索引
CREATE INDEX PROD.IND_CREATE_DT ON PROD.TB_01(CREATE_DT) TABLESPACE IDX_PROD;
CREATE UNIQUE INDEX PROD.IND_NAME1 ON PROD.TB_01 (NAME1) TABLESPACE IDX_PROD;
1.2 修改索引
ALTER INDEX PROD.IND_CREATE_DT RENAME TO PROD.IND_TB01_DT;
ALTER INDEX PROD.IND_TB01_DT REBUILD ONLINE;
ALTER TABLE PROD.TB_01 ADD CONSTRAINT PK_TB01_ID PRIMARY KEY (ID);
1.3 查看索引
SELECT OWNER,TABLE_NAME,PARTITIONED,INDEX_NAME,INDEX_TYPE,STATUS,COMPRESSION,UNIQUENESS FROM DBA_INDEXES WHERE TABLE_NAME IN ('TB_01');
LINEID OWNER TABLE_NAME PARTITIONED INDEX_NAME INDEX_TYPE STATUS COMPRESSION UNIQUENESS
---------- ----- ---------- ----------- ------------- ---------- ------ ----------- ----------
1 PROD TB_01 NO INDEX33556211 CLUSTER VALID DISABLED NONUNIQUE
2 PROD TB_01 NO IND_TB01_DT NORMAL VALID DISABLED NONUNIQUE
3 PROD TB_01 NO IND_NAME1 NORMAL VALID DISABLED UNIQUE
4 PROD TB_01 NO INDEX33556212 NORMAL VALID DISABLED UNIQUE
SELECT INDEX_OWNER,INDEX_NAME,TABLE_OWNER,TABLE_NAME,COLUMN_NAME,COLUMN_POSITION,COLUMN_LENGTH,CHAR_LENGTH,DESCEND FROM DBA_IND_COLUMNS WHERE TABLE_NAME IN ('TB_01');
LINEID INDEX_OWNER INDEX_NAME TABLE_OWNER TABLE_NAME COLUMN_NAME COLUMN_POSITION COLUMN_LENGTH CHAR_LENGTH DESCEND
---------- ----------- ------------- ----------- ---------- ----------- --------------- ------------- ----------- -------
1 PROD IND_NAME1 PROD TB_01 NAME1 1 20 20 ASC
2 PROD INDEX33556212 PROD TB_01 ID 1 4 0 ASC
3 PROD IND_TB01_DT PROD TB_01 CREATE_DT 1 3 0 ASC
1.4 删除索引
DROP INDEX PROD.IND_NAME1;
ALTER TABLE PROD.TB_01 DROP CONSTRAINT PK_TB01_ID;
2、分区索引
2.1 创建分区索引
CREATE INDEX PROD.IND_PT01_NAME1 ON PROD.TB_PART_01(NAME1) ;
CREATE UNIQUE INDEX PROD.IND_PT01_NAME2 ON PROD.TB_PART_01(NAME2);
## 报错:唯一索引需要添加分区字段,创建组合索引
[-2683]:Error in line: 1
Local unique index must contain all partition columns.used time: 1.066(ms). Execute id is 0.
SQL> CREATE UNIQUE INDEX PROD.IND_PT01_NAME2_DT ON PROD.TB_PART_01(CREATE_DT,NAME2);
executed successfully
2.2 修改分区索引
ALTER INDEX PROD.IND_PT01_NAME2_DT REBUILD; # REBUILD ONLINE 测试不支持
ALTER INDEX PROD.IND_PT01_NAME1 REBUILD;
ALTER TABLE PROD.TB_PART_02 ADD CONSTRAINT PK_TBPT02_CID_DT PRIMARY KEY (ID,CODE_ID,CREATE_DT);
# 只有堆表支持全局分区索引
2.3 收集索引统计信息
DBMS_STATS.GATHER_TABLE_STATS('PROD','TB_PART_01',null,100,TRUE,'FOR ALL COLUMNS SIZE AUTO');
DBMS_STATS.INDEX_STATS_SHOW ('PROD','INDEX33556122');
2.4 查看分区索引
SELECT OWNER,TABLE_NAME,PARTITIONED,INDEX_NAME,INDEX_TYPE,STATUS,COMPRESSION,UNIQUENESS FROM DBA_INDEXES WHERE TABLE_NAME IN ('TB_PART_01','TB_PART_02');
SELECT INDEX_OWNER,INDEX_NAME,TABLE_OWNER,TABLE_NAME,COLUMN_NAME,COLUMN_POSITION,COLUMN_LENGTH,CHAR_LENGTH,DESCEND FROM DBA_IND_COLUMNS WHERE TABLE_NAME IN ('TB_PART_02','TB_PART_01');
2.5 删除分区索引
DROP INDEX PROD.IND_PT01_NAME2_DT;
2.6 堆表如果有全局索引,删除或新增分区,会导致全局索引失效,需要重建,否则报错。
六、执行计划
explain select t1.id,t2.create_dt from PROD.TB_01 T1 ,PROD.TB_PART_01 T2
where T1.id = T2.id and T1.name1 = 'a992';
1 #NSET2: [1, 2, 68]
2 #PRJT2: [1, 2, 68]; exp_num(2), is_atom(FALSE)
3 #HASH2 INNER JOIN: [1, 2, 68]; LKEY_UNIQUE KEY_NUM(1); KEY(T1.ID=T2.ID) KEY_NULL_EQU(0)
4 #NEST LOOP INDEX JOIN2: [1, 2, 68]
5 #ACTRL: [1, 2, 68];
6 #BLKUP2: [1, 1, 52]; IND_NAME1(T1)
7 #SSEK2: [1, 1, 52]; scan_type(ASC), IND_NAME1(TB_01 as T1), scan_range['a992','a992']
8 #PARALLEL: [1, 2, 0]; scan_type(FULL), key_num(0, 0, 0), simple(0)
9 #SSEK2: [1, 2, 0]; scan_type(ASC), INDEX33555742(TB_PART_01 as T2), scan_range[(T1.ID,min),(T1.ID,max))
10 #PARALLEL: [1, 10000, 16]; scan_type(FULL), key_num(0, 0, 0), simple(0)
11 #SSCN: [1, 10000, 16]; INDEX33555742(TB_PART_01 as T2)
[1, 10000, 16]分别表示估算的操作符代价(时间毫秒)、处理的记录行数和每行记录的字节数
select * from v$sql_node_name;
打印执行计划:
EXPLAIN SELECT A.C1+1,B.D2 FROM T1 A, T2 B WHERE A.C1 = B.D1;
执行计划如下:
1 #NSET2: [0, 16, 9]
2 #PRJT2: [0, 16, 9]; EXP_NUM(2), IS_ATOM(FALSE)
3 #NEST LOOP INDEX JOIN2: [0, 16, 9]
4 #CSCN2: [0, 4, 5]; INDEX33555535(B)
5 #SSEK2: [0, 4, 0]; SCAN_TYPE(ASC), IDX_T1_C1 (A), SCAN_RANGE[T2.D1,T2.D1]
该计划的大致执行流程如下:
1) CSCN2: 扫描T2表的聚集索引,数据传递给父节点索引连接;
2) NEST LOOP INDEX JOIN2: 当左孩子有数据返回时取右侧数据;
3) SSEK2: 利用T2表当前的D1值作为二级索引IDX_T1_C1定位查找的KEY,返回结果给父节点;
4) NEST LOOP INDEX JOIN2: 如果右孩子有数据则将结果传递给父节点PRJT2,否则继续取左孩子的下一条记录;
5) PRJT2: 进行表达式计算C1+1, D2;
6) NSET2: 输出最后结果;
7) 重复过程1) ~ 4)直至左侧CSCN2数据全部取完。
七、管理序列
1、序列概况和语法
序列是一个数据库实体,通过它多个用户可以产生唯一整数值,可以用序列来自动地生成主关键字值。
语法格式
CREATE SEQUENCE [ <模式名>.] <序列名> [ <序列选项列表>];
<序列选项列表> ::= <序列选项>{<序列选项>}
<序列选项> ::=
INCREMENT BY <增量值>|
START WITH <初值>|
MAXVALUE <最大值>|
NOMAXVALUE|
MINVALUE <最小值>|
NOMINVALUE|
CYCLE|
NOCYCLE|
CACHE <缓存值>|
NOCACHE|
ORDER |
NOORDER |
GLOBAL |
LOCAL
2、创建序列
CREATE SEQUENCE PROD.SEQ1 INCREMENT BY 1 START WITH 8 MAXVALUE 50 MINVALUE 3 CYCLE CACHE 20 NOORDER;
3、序列使用
select prod.seq1.nextval;
由于时间比较紧迫只能整理这么多,后续继续整理。