达梦数据库关于序列的用法讲解

本文分为序列的定义、修改以及删除进行讲解
1) 序列定义
序列是一个数据库实体,通过它多个用户可以产生唯一整数值,可以用序列来自动地生
成主关键字值。
语法格式
CREATE SEQUENCE [ < 模式名 >.] < 序列名 > [ < 序列选项列表 >];
< 序列选项列表 > ::= < 序列选项 >{< 序列选项 >}
< 序列选项 > ::=
INCREMENT BY < 增量值 >|
START WITH < 初值 >|
MAXVALUE < 最大值 >|
NOMAXVALUE |
MINVALUE < 最小值 >|
NOMINVALUE |
CYCLE |
NOCYCLE |
CACHE < 缓存值 >|
NOCACHE |
ORDER |
NOORDER |
GLOBAL |
LOCAL
参数
1. < 模式名 > 指明被创建的序列属于哪个模式,缺省为当前模式;
2. < 序列名 > 指明被创建的序列的名称,序列名称最大长度 128 字节;
138 第 3 章 数据定义语句
3. < 增量值 > 指定序列数之间的间隔,这个值可以是 [-1000000, 1000000] 之间
任意的 DM 正整数或负整数,但不能为 0 。如果此值为负,序列是下降的,如果此值
为正,序列是上升的。如果忽略 INCREMENT BY 子句,则间隔缺省为 1 。增量值的
绝对值必须小于 (< 最大值 > - < 最小值 >)
4. < 初值 > 指定被生成的第一个序列数,可以用这个选项来从比最小值大的一个值
开始升序序列或比最大值小的一个值开始降序序列。对于升序序列,缺省值为序列
的最小值,对于降序序列,缺省值为序列的最大值;
5. < 最大值 > 指定序列能生成的最大值,如果忽略 MAXVALUE 子句,则降序序列的最
大值缺省为 -1 ,升序序列的最大值 缺 省 为
9223372036854775807(0x7FFFFFFFFFFFFFFF) ,若指定的最大值超出缺省
最大值,则 DM 自动将最大值置为缺省最大值。非循环序列在到达最大值之后,将
不能继续生成序列数;
6. < 最小值 > 指定序列能生成的最小值,如果忽略 MINVALUE 子句,则升序序列的最
小值缺省为 1 ,降序序列的最小值 缺 省 为
-9223372036854775808(0x8000000000000000) ,若指定的最小值超出缺省
最小值,则 DM 自动将最小值置为缺省最小值。循环序列在到达最小值之后,将不
能继续生成序列数。最小值必须小于最大值;
7. CYCLE 该关键字指定序列为循环序列:当序列的值达到最大值 / 最小值时,序列
将从最小值 / 最大值计数;
8. NOCYCLE 该关键字指定序列为非循环序列:当序列的值达到最大值 / 最小值时,
序列将不再产生新值;
9. CACHE 该关键字表示序列的值是预先分配,并保持在内存中,以便更快地访问;
< 缓存值 > 指定预先分配的值的个数,最小值为 2 ;最大值为 50000 ;且缓存值不能
大于 (< 最大值 > - < 最小值 >)/< 增量值 >
10. NOCACHE 该关键字表示序列的值是不预先分配;
11. ORDER 该关键字表示以保证请求顺序生成序列号;
12. NOORDER 该关键字表示不保证请求顺序生成序列号;
13. GLOBAL 该关键字表示 MPP 环境下序列为全局序列,缺省为 GLOBAL
14. LOCAL 改关键字表示 MPP 环境下序列为本地序列。

 

 

语句功能
创建一个序列。只有 DBA 或该序列的拥有者且具有 CREATE SEQUENCE 权限的用户才
能创建序列。
使用说明
1. 一旦序列生成,就可以在 SQL 语句中用以下伪列来存取序列的值;
1 CURRVAL 返回当前的序列值;
2 NEXTVAL 如果为升序序列,序列值增加并返回增加后的值;如果为降序序列,
序列值减少并返回减少后的值。如果第一次对序列使用该函数,则返回序列当
前值;
3 ) 用户会话在第一次使用 CURRVAL 之前应先使用 NEXTVAL 获取序列当前值;
之后除非会话使用 NEXTVAL 获取序列当前值,否则每次使用 CURRVAL 返回
的值不变。
2. 缺省序列:如果在序列中什么也没有指出则缺省生成序列,一个从 1 开始增量为 1
且无限上升 ( 最大值为 9223372036854775807) 的升序序列;仅指出
INCREMENT BY -1 ,将创建一个从 -1 开始且无限下降 ( 最小值为
-9223372036854775808) 的降序序列。
3. LOCAL 类型序列的最高 10 位用来记录标识 MPP 节点号,因此 LOCAL 类型的序列
值和 GLOBAL 类型序列在范围、最大值、最小值上都有所差别。 LOCAL 类型序列
创建时可设置的最大值、最小值分别为 9007199254740991
-9007199254740992 。需要注意的是,最高 10 位设置了 MPP 站点号以后,序
140 第 3 章 数据定义语句
列的真实值实际上可能不会在序列定义的最大最小值范围内。
举例说明
例 创建序列 SEQ_QUANTITY ,将序列的前两个值插入表
PRODUCTION.PRODUCT_INVENTORY 中。
(1) 创建序列 SEQ_QUANTITY
CREATE SEQUENCE SEQ_QUANTITY INCREMENT BY 10;
(2) 将序列的第一个值插入表 PRODUCT_INVENTORY
INSERT INTO PRODUCTION.PRODUCT_INVENTORY VALUES(1,1,
SEQ_QUANTITY.NEXTVAL);
SELECT * FROM PRODUCTION.PRODUCT_INVENTORY;
查询结果为:表 PRODUCT_INVENTORY 增加一行,列 QUANTITY 的值为 1
(3) 将序列的第二个值插入表 PRODUCT_INVENTORY
INSERT INTO PRODUCTION.PRODUCT_INVENTORY VALUES(1,1,
SEQ_QUANTITY.NEXTVAL);
SELECT * FROM PRODUCTION.PRODUCT_INVENTORY;
查询结果为:表 PRODUCT_INVENTORY 增加两行,列 QUANTITY 的值分别为 1 11
2)  序列修改语句
DM 系统提供序列修改语句,包括修改序列步长值、设置序列最大值和最小值、改变序
列的缓存值、循环属性、 ORDER 属性。
语法格式
ALTER SEQUENCE [ < 模式名 >.] < 序列名 > [ < 序列修改选项列表 >];
< 序列选项列表 > ::= < 序列修改选项 >{< 序列修改选项 >}
< 序列修改选项 > ::=
INCREMENT BY < 增量值 >|
MAXVALUE < 最大值 >|
NOMAXVALUE |
MINVALUE < 最小值 >|
NOMINVALUE |
CYCLE |
NOCYCLE |
CACHE < 缓存值 >|
NOCACHE |
ORDER |
NOORDER
参数
与序列定义语句的参数相同。
图例

 

 

语句功能
修改一个序列,只有 DBA 或该序列的拥有者或具有 ALTER ANY SEQUENCE 权限的用
户才修改序列。
使用说明
1. 关于步长的修改,分两种情况:
a) 如果在修改前没有用 NEXTVAL 访问序列,创建完序列后直接修改序列步长值,
则序列的当前值为起始值加上新步长值与旧步长值的差;
b) 如果在修改前用 NEXTVAL 访问了序列,然后修改序列步长值,则再次访问序
列的当前值为序列的上一次的值加上新步长值。
2. 缺省序列选项:如果在修改序列语句中没有指出某选项则缺省是修改前的选项值。
不允许未指定任何选项、禁止重复或冲突的选项说明;
3. 序列的起始值不能修改;
4. 修改序列的最小值不能大于起始值、最大值不能小于起始值;
5. 修改序列的步长的绝对值必须小于 MAXVALUE MINVALUE 的差;
6. 序列的当前值不能大于最大值,不能小于最小值。
举例说明
1 创建完序列后直接修改序列的步长。
CREATE SEQUENCE SEQ1 INCREMENT BY 1000 START WITH 5 NOMAXVALUE NOMINVALUE
CACHE 10;
ALTER SEQUENCE SEQ1 INCREMENT BY 1 ;
SELECT SEQ1.NEXTVAL FROM DUAL;
查询结果为: -994
2 创建序列后使用 NEXTVAL 访问了序列,然后修改步长。
CREATE SEQUENCE SEQ2 INCREMENT BY 1000 START WITH 5 NOMAXVALUE NOMINVALUE
NOCACHE ;
142 第 3 章 数据定义语句
SELECT SEQ2.NEXTVAL FROM DUAL;
ALTER SEQUENCE SEQ2 INCREMENT BY 1 ;
SELECT SEQ2.NEXTVAL FROM DUAL;
查询结果为: 6
3 修改序列的最小值。
CREATE SEQUENCE SEQ3 INCREMENT BY 1 START WITH 100 MINVALUE 3 ;
ALTER SEQUENCE SEQ3 MINVALUE 2;
3) 序列删除语句
DM 系统允许用户在建立序列后还可随时删除序列。
语法格式
DROP SEQUENCE [ < 模式名 >.]< 序列名 >;
参数
1. < 模式名 > 指明被删除序列所属的模式,缺省为当前模式;
2. < 序列名 > 指明被删除序列的名称。

 

语句功能
供具有 DBA 角色的用户或该序列的拥有者从数据库中删除序列生成器。
使用说明
一种重新启动序列生成器的方法就是删除它然后再重新创建,例如有一序列生成器当前
值为 150 ,而且用户想要从值 27 开始重新启动此序列生成器,他可以:
1) 删除此序列生成器;
2) 重新以相同的名字创建序列生成器, START WITH 选项值为 27
举例说明
例 用户 SYSDBA 需要删除序列 SEQ_QUANTITY ,可以用下面的语句:
DROP SEQUENCE SEQ_QUANTITY;
第1章结构化查询语言DM_SQL简介 ................................................................................................. 1 1.1 DM_SQL语言的特点 ................................................................................................................. 1 1.2 保留字与标识符 ........................................................................................................................ 2 1.3 DM_SQL语言的功能及语句 ..................................................................................................... 2 1.4 DM_SQL所支持的数据类型 ..................................................................................................... 3 1.4.1 常规数据类型 .................................................................................................................... 3 1.4.2 日期时间数据类型 ............................................................................................................ 6 1.4.3 多媒体数据类型 ................................................................................................................ 9 1.4.4 数据类型别名 .................................................................................................................... 9 1.5 DM_SQL语言支持的表达式 ..................................................................................................... 9 1.5.1 数值表达式 ...................................................................................................................... 10 1.5.2 字符串表达式 .................................................................................................................. 11 1.5.3 时间值表达式 .................................................................................................................. 12 1.5.4 时间间隔值表达式 .......................................................................................................... 13 1.5.5 运算符的优先级 .............................................................................................................. 14 1.6 DM_SQL语言支持的数据库模式 ........................................................................................... 15 第2章本手册中的实例说明 ............................................................................................................... 16 2.1 实例库说明 .............................................................................................................................. 16 2.2 参考脚本 ................................................................................................................................. 24 第3章数据定义语句 ........................................................................................................................... 42 3.1 数据库定义语句 ...................................................................................................................... 42 3.2 数据库修改语句 ...................................................................................................................... 44 3.3 数据库删除语句 ...................................................................................................................... 46 3.4 设置当前数据库语句 .............................................................................................................. 46 3.5 登录定义语句 .......................................................................................................................... 47 3.6 登录修改语句 .......................................................................................................................... 51 3.7 登录删除语句 .......................................................................................................................... 53 3.8 用户定义语句 .......................................................................................................................... 53 3.9 用户修改语句 .......................................................................................................................... 54 3.10 用户删除语句 ........................................................................................................................ 54 3.11 模式定义语句 ........................................................................................................................ 55 3.12 设置当前模式语句 ................................................................................................................ 56 3.13 模式删除语句 ........................................................................................................................ 57 3.14 基表定义语句 ........................................................................................................................ 57 3.15 基表修改语句 ........................................................................................................................ 68 3.16 基表删除语句 ..................................................................................................................... 74 3.17 全表删除语句 ........................................................................................................................ 75 3.18 索引定义语句 ........................................................................................................................ 76 3.19 索引删除语句 ........................................................................................................................ 78 3.20 序列定义语句 ........................................................................................................................ 79 3.21 序列删除语句 ........................................................................................................................ 80 3.22 全文索引定义语句 ................................................................................................................ 81 3.23 全文索引修改语句 ................................................................................................................ 81 3.24 全文索引删除语句 ................................................................................................................ 82 II 3.25 数据库快照定义语句 ............................................................................................................ 83 3.26 数据库快照删除语句 ............................................................................................................ 84 第4章数据查询语句和全文检索语句 ............................................................................................... 85 4.1 单表查询 ................................................................................................................................. 91 4.1.1 简单查询 .......................................................................................................................... 91 4.1.2 带条件查询 ...................................................................................................................... 92 4.1.3 集函数 .............................................................................................................................. 94 4.1.4 情况表达式 ...................................................................................................................... 96 4.2 连接查询 ................................................................................................................................. 98 4.3 子查询 ................................................................................................................................... 105 4.3.1 标量子查询 .................................................................................................................... 106 4.3.2 表子查询 ........................................................................................................................ 107 4.3.3 派生表子查询 ................................................................................................................ 109 4.3.4 定量比较 ........................................................................................................................ 110 4.3.5 带EXISTS谓词的子查询 ............................................................................................... 111 4.3.6 多列表子查询 ................................................................................................................ 112 4.4 查询结果的合并 .....................................................................................................................113 4.5 GROUP BY和HAVING子句 ...................................................................................................114 4.5.1 GROUP BY子句的使用 ................................................................................................. 114 4.5.2 HAVING子句的使用 ...................................................................................................... 115 4.6 ORDER BY子句 ......................................................................................................................116 4.7 选取前几条数据 .....................................................................................................................117 4.8 选取其中几条数据 .................................................................................................................117 4.9 全文检索 ................................................................................................................................118 4.10 层次查询 .............................................................................................................................. 120 4.10.1 层次查询子句 .............................................................................................................. 120 4.10.2 层次查询相关伪列 ...................................................................................................... 121 4.10.3 层次查询相关操作符 .................................................................................................. 121 4.10.4 层次查询相关函数 ...................................................................................................... 121 4.11 查看执行计划 ...................................................................................................................... 125 第5章数据的插入、删除和修改 ..................................................................................................... 126 5.1 数据插入语句 ........................................................................................................................ 126 5.2 数据修改语句 ........................................................................................................................ 129 5.3 数据删除语句 ........................................................................................................................ 130 5.4 伪列的使用 ............................................................................................................................ 131 5.4.1 ROWID ........................................................................................................................... 131 5.4.2 UID和USER .................................................................................................................... 132 5.4.3 ROWNUM ...................................................................................................................... 132 5.5 DM自增列的使用 ................................................................................................................... 132 5.5.1 DM自增列定义 ............................................................................................................... 132 5.5.2 SET IDENTITY_INSERT 属性 ..................................................................................... 133 第6章视图 ........................................................................................................................................ 136 6.1 视图的作用 .......................................................................................................................... 136 6.2 视图的定义 ............................................................................................................................ 137 6.3 视图的删除 ............................................................................................................................ 139 6.4 视图的查询 ............................................................................................................................ 140 III 6.5 视图数据的更新 .................................................................................................................... 141 第7章嵌入式SQL ............................................................................................................................. 143 7.1 SQL前缀和终结符 ................................................................................................................. 143 7.2 宿主变量 ............................................................................................................................... 143 7.2.1 输入和输出变量 ............................................................................................................ 144 7.2.2 指示符变量 .................................................................................................................... 145 7.3 服务器登录与退出 ................................................................................................................ 145 7.3.1 登录服务器 .................................................................................................................... 145 7.3.2 退出服务器 .................................................................................................................... 146 7.4 游标的定义与操纵 ................................................................................................................ 146 7.4.1 定义游标语句 ................................................................................................................ 147 7.4.2 打开游标语句 ................................................................................................................ 147 7.4.3 拨动游标语句 ................................................................................................................ 148 7.4.4 关闭游标语句 ................................................................................................................ 150 7.4.5 关于可更新游标 ............................................................................................................ 150 7.4.6 游标定位删除语句 ........................................................................................................ 150 7.4.7 游标定位修改语句 ........................................................................................................ 151 7.5 单元组查询语句 .................................................................................................................... 152 7.6 动态SQL ............................................................................................................................... 153 7.6.1 EXECUTE IMMEDIATE立即执行语句 ........................................................................ 154 7.6.2 PREPARE准备语句 ........................................................................................................ 155 7.6.3 EXCUTE执行语句 ......................................................................................................... 155 7.7 异常处理 ............................................................................................................................... 156 第8章函数 ........................................................................................................................................ 157 8.1 数值函数 ............................................................................................................................... 166 8.2 字符串函数 ............................................................................................................................ 173 8.3 日期时间函数 ........................................................................................................................ 184 8.4 空值判断函数 ........................................................................................................................ 193 8.5 类型转换函数 ........................................................................................................................ 194 8.6 杂类函数 ............................................................................................................................... 195 8.7 系统函数 ............................................................................................................................... 196 8.8 存储加密函数 ........................................................................................................................ 215 8.9 标记处理函数 ........................................................................................................................ 222 8.10 备份恢复函数 ...................................................................................................................... 223 8.11 附加分离数据库 .................................................................................................................. 230 第9章一致性和并发性 ..................................................................................................................... 233 9.1 DM事务相关语句 ................................................................................................................... 233 9.1.1 事务的开始 .................................................................................................................... 233 9.1.2 事务的结束 .................................................................................................................... 233 9.1.3 保存点相关语句 ............................................................................................................ 234 9.1.4 设置事务隔离级及读写特性 ........................................................................................ 235 9.2 DM手动上锁语句 ................................................................................................................... 236 第10章存储模块 ............................................................................................................................... 238 10.1 存储模块的定义 .................................................................................................................. 238 10.2 存储模块的删除 .................................................................................................................. 246 10.3 存储模块的控制语句 .......................................................................................................... 247 IV 10.3.1 语句块 .......................................................................................................................... 247 10.3.2 赋值语句 ...................................................................................................................... 249 10.3.3 条件语句 ...................................................................................................................... 249 10.3.4 循环语句 ...................................................................................................................... 250 10.3.5 EXIT语句 ...................................................................................................................... 252 10.3.6 调用语句 ...................................................................................................................... 253 10.3.7 RETURN语句 ............................................................................................................... 255 10.3.8 NULL语句 .................................................................................................................... 255 10.3.9 GOTO语句 .................................................................................................................... 255 10.3.10 RAISE语句 ................................................................................................................. 256 10.3.11 打印语句 .................................................................................................................... 256 10.4 存储模块的异常处理 .......................................................................................................... 256 10.4.1 异常变量的说明 .......................................................................................................... 257 10.4.2 异常的抛出 .................................................................................................................. 257 10.4.3 异常处理器 .................................................................................................................. 257 10.4.4 异常处理用法举例 ...................................................................................................... 257 10.5 存储模块的SQL语句 .......................................................................................................... 259 10.5.1 游标 .............................................................................................................................. 259 10.5.2 动态SQL ...................................................................................................................... 260 10.5.3 游标变量 ...................................................................................................................... 261 10.5.4 返回查询结果集 .......................................................................................................... 261 10.5.5 SQL语句应用举例 ........................................................................................................ 261 10.6 客户端存储模块 .................................................................................................................. 264 10.7 子过程、子函数 .................................................................................................................. 265 10.7.1 子过程 .......................................................................................................................... 265 10.7.2 子函数 .......................................................................................................................... 266 10.8 %TYPE、%ROWTYPE ....................................................................................................... 266 10.8.1 %TYPE .......................................................................................................................... 266 10.8.2 %ROWTYPE ................................................................................................................ 267 10.9 记录类型 .............................................................................................................................. 267 10.9.1 记录类型定义 .............................................................................................................. 267 10.9.2 记录赋值 ...................................................................................................................... 268 第11章触发器 .................................................................................................................................. 270 11.1 触发器的定义 ...................................................................................................................... 270 11.1.1 触发器类型 .................................................................................................................. 277 11.1.2 触发器激发顺序 .......................................................................................................... 279 11.1.3 新、旧行值的引用 ...................................................................................................... 280 11.1.4 触发器谓词 .................................................................................................................. 281 11.1.5 变异表 .......................................................................................................................... 282 11.1.6 设计触发器的原则 ...................................................................................................... 283 11.2 触发器的删除 ...................................................................................................................... 284 11.3 禁止和允许触发器 .............................................................................................................. 284 11.4 触发器应用举例 .................................................................................................................. 286 11.4.1 使用触发器实现审计功能 .......................................................................................... 286 11.4.2 使用触发器维护数据完整性 ...................................................................................... 286 11.4.3 使用触发器保障数据安全性 ...................................................................................... 287 V 11.4.4 使用触发器派生字段值 .............................................................................................. 288 第12章DM安全管理 ..................................................................................................................... 289 12.1 创建角色语句 ...................................................................................................................... 289 12.2 删除角色语句 ...................................................................................................................... 290 12.3 授权语句(数据库权限) ....................................................................................................... 290 12.4 授权语句(对象权限) ........................................................................................................... 291 12.5 授权语句(角色权限) ........................................................................................................... 295 12.6 回收权限语句(数据库权限) ............................................................................................... 295 12.7 回收权限语句(对象权限) ................................................................................................... 297 12.8 回收权限语句(角色权限) ................................................................................................... 299 12.9 策略与标记管理 .................................................................................................................. 300 12.9.1 创建策略 ...................................................................................................................... 300 12.9.2 修改策略 ...................................................................................................................... 300 12.9.3 删除策略 ...................................................................................................................... 302 12.9.4 安全标记 ...................................................................................................................... 302 12.9.5 用户标记设置语句 ...................................................................................................... 303 12.9.6 表标记设置语句 .......................................................................................................... 306 12.10 审计设置语句 .................................................................................................................... 308 12.11 审计取消语句 .................................................................................................................... 312 12.12 审计信息查阅语句 ............................................................................................................ 314 12.13 审计分析 ............................................................................................................................ 314 12.13.1 创建审计分析规则 .................................................................................................... 314 12.13.2 删除审计分析规则 .................................................................................................... 316 12.14加密引擎 ............................................................................................................................. 316 12.14.1 创建加密引擎 ............................................................................................................ 316 12.14.2 修改加密引擎 ............................................................................................................ 317 12.14.3 删除加密引擎 ............................................................................................................ 320 第13章外部链接 ............................................................................................................................... 321 13.1 创建外部链接 ...................................................................................................................... 321 13.2 删除外部链接 ...................................................................................................................... 322 13.3 使用外部连接进行远程对象操作 ...................................................................................... 322 第14章DM备份还原 ......................................................................................................................... 324 14.1 备份数据库 .......................................................................................................................... 324 14.2 还原数据库 .......................................................................................................................... 325 第15章包 ......................................................................................................................................... 327 15.1 创建包 ................................................................................................................................. 327 15.1.1 创建包规范 .................................................................................................................. 327 15.1.2 创建包主体 .................................................................................................................. 327 15.2 删除包 ................................................................................................................................. 328 15.2.1 删除包规范 .................................................................................................................. 328 15.2.2 删除包主体 .................................................................................................................. 329 15.3 应用实例 .............................................................................................................................. 329 第16章同义词 .................................................................................................................................. 332 16.1 创建同义词 .......................................................................................................................... 332 16.2 删除同义词 .......................................................................................................................... 332 附录1 关键字和保留字 ...................................................................................................................... 334 VI 附录2 SQL语法描述说明 ................................................................................................................... 338 附录3 SQL命令参考 ........................................................................................................................... 341 附录4系统存储过程和函数 ............................................................................................................... 343 附录5 DM技术支持 ............................................................................................................................ 387
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值