1.1 序列
序列:在内存预先申请的一段地址空间,类似于取号排队。创建序列:
CREATE SEQUENCE "TEST"."S1"
INCREMENT BY 2 ---递增多少
START WITH 1 ----起始值
MAXVALUE 10 -----最大值
MINVALUE 1; -----最小值
Cache2 缓存nocache
Order 排序 noorder
Cycle 循环 nocycle
SELECT test.s1.nextval;
alter sequence test.s1 maxvalue 30;
DROP sequence test.s1
1.2 同义词
同义词:表或视图、序列、函数、存储过程的别名,为安全考虑,同 义词分为公共同义词,普通同义词。
公共同义词:所有用户都可以使用的,使用的时候不需要加任何模式 名。达梦用的数据字典、动态性能视图都sys 的公共同义词。SYS 是达梦的内置管理账号,不能用于登录数据库。
普通同义词:某个特定用户才可以使用的,使用的时候要加模式名。
创建同义词;
1 、创建普通同义词
CREATE SYNONYM "TEST"."SY1" FOR "TEST"."S1";
2 、创建公共同义词
CREATE PUBLIC SYNONYM "SY3" FOR "TEST"."SALES_SUM";
删除公共同义词
Drop public synonym SY3;
删除普通同义词
DROP SYNOYNYM TEST.SY1;
1.3 物化视图
视图分类:简单视图,复杂视图,物化视图。
简单视图和复杂视图不占磁盘空间,实际上是一个虚表,真正的数据 存储在base table.
简单视图可以DML(INSERT UPDATE DETLE);
复杂视图不允许直接DML, 需要通过触发器来完成。触发器创建时不需要使用before after,而将替换成instead of。
当视图中包含以下结构之一,就是表示不可更新的视图,都不允许直 接 DML
- 具有集合操作的 union union all minus);
- 具有分组函数的
- 具有group by having start....with
- 具有distinct
- 具有集合运算连接,
物化视图:
数据要单独存储,占用磁用空间,规划表空间。
物化视图的数据来自于基表,基表发生变化,物化视图可以根据更新 方式来进行数据更新。
更新方式:
手动:demand
自动更新:commit
如何更新:
FAST ----快速更新
Complete ---完全更新
Force ---选择性更新
Never ---不更新。
案例 1 :创建一个手动更新的物化视图
create materialized view TEST.MV1 AS SELECT * FROM TEST.T1;
SYSDBA没有创建物化视图的权限需要修改TEST用户系统权限
需要先给TEST用户授权,建表权限、创建视图权限、创建物化视图权限,图形化设置不好使,最好直接使用SQL语句创建。
GRANT CREATE TABLE TO "TEST";
GRANT CREATE VIEW TO "TEST";
GRANT CREATE MATERIALIZED VIEW TO "TEST";
create materialized view test.mv2 as SELECT * FROM test.t1 WHERE id>200; 修改test.t1,手动更新MV1,MV2;
refresh materialized view test.mv1;
案例2 :创建一个自动更新的物化视图
//创建物化视图日志的表必须要有主键否则创建失败
create materialized view log on test.t1;
create materialized view test.mv3 refresh complete on commit as SELECT * FROM test.t1;
创建物化视图日志
create materialized view log on test.t1;
创建完全更新物化视图
create materialized view test.mv3 refresh complete on commit as SELECT * FROM test.t1;
创建快速更新物化视图
create materialized view test.mv4 refresh fast on commit as SELECT * FROM test.t1;
1 、物化视图:mv1,mv2,mv3,mv4
2 、物化视图表:MTAB$_MV2
3 、 自动更新物化视图,则会有物化视图日志:MLOG$_T1
4 、定时刷新物化视图的触发器:MTRG$_T1