(1)授予权限,具备创建物化视图的权限、QUERY REWRITE的权限,以及对创建物化视图所涉及的表的访问权限和创建表的权限。
通过SCOTT用户来演示
(2)创建物化视图日志
(3)创建物化视图语句
其中:
bulid immediate:该参数的含义是立即创建物化视图,也可以选择build deffered,该参数说明在物化视图定以后不会立即执行,而是延迟执行,在使用该视图时再创建。
Reffesh fast:刷新数据的类型选择FAST类型。
ON COMMIT:在基表有更新时提交后立即更新物化视图。
ENABLE QUERY REWRITE:启动查询重写功能。在创建物化视图时明确说明启用查询重写功能。
As:定义后面的查询语句。
查询体:物化视图的查询内容,该sql语句的查询结果集输出到物化视图中,保存在由oracle自动创建的表中。
(4)删除物化视图
drop materialized view view_name;
九、序列
序列是用来生成唯一、连续的整数数据库对象。序列通常用来自动生成主键或唯一键的值。序列可以按升序排列,也可以按降序排列。
1.创建序列
参数解释:
START WITH:指定要生成的第一个序列号,对于升序序列,其默认值为序列的最小值,对于降序序列,其默认值为序列的最大值。
INCREMENT BY:用于指定序列号之间的间隔,默认值为1,如果n为正值,则生成的序列将按升序排序,如果n为负值,则生成的序列按降序排列。
MAXVALUE:指定序列可以生成的最大值
NOMAXVALUE:如果指定了NOMAXVALUE,oracle将升序序列的最大值设为1027,将降序序列的最大值设为-1。
MINVALUE:指定序列最小值。MINVALUE必须小于或等于START WITH的值,并且必须小于MAXVALUE。
NOMINVALUE:如果指定了NOMINVALUE,oracle将升序序列的最小值设为1,或将降序列的值设置为-1026。
CYCLE:指定序列在达到最大值或最小值后,将继续从头开始生成值。
NOCYCLE:指定序列在达到最大值或最小值后,将不在继续生成值。
CHCHE:使用CACHE选项可以预先分配一组序列号,并将其保留在内存中,这样可以更快地访问序列号,当用完缓存中的所有序列号时,oracle将生成另一组数值,并将其保留在缓存中。
NOCACHE:使用NOCACHE选项,则不会为加快访问速度而预先分配序列号。如果在创建序列时忽略了CACHE和NOCACHE选项,oracle将默认缓存20个序列号。
2.访问序列
创建了序列之后,可以通过NEXTVAL和CURRVAL伪列来访问该序列的值。可以从伪列中选择值。但是不能操纵他们的值。
NETXVAL:创建序列后第一次使用NEXTVAL时,将返回该序列的初始值。以后再引用NETXVAL时,将使用INCREMENT BY子句的值来增加序列值,并返回这个新值。
CURRVAL:返回序列的当前值,即最后一次引用NEXTVAL时返回的值
举例:
创建序列
创建表
插入数据
查看数据
查看序列的当前值
Currval返回序列的当前值,即最后一次引用NEXTVAL时返回的值
测试currval
重启实例之后再次写入数据发现从40开始,因为按创建序列的要求,每次会拿30个序列号放到缓存中,实例重启后,缓存中的序列就会消失
3.更改序列
Alter sequence命令用于修改序列的定义。如果要进行下列操作,则会修改序列。
设置或删除MINVALUE或MAXVALUE
修改增量值
修改缓存中的序列号的数目
不能修改序列的START WITH参数
4.删除序列
十、同义词