oracle中序列 视图 索引 的 使用


oracle中序列  视图   索引  的  使用


1、使用序列

是用于生成唯一、连续序号的对象
序列可以是升序的,也可以是降序的
使用create sequence语句创建序列

a、创建的语法
create sequence 序列名
[start with n]  --初始值,默认为 1
[increment by n] --步长,默认为 1
[maxvalue n|nomaxvalue]  --序列最大值,默认情况下最大值为10的27次方,递减序列最大值为-1
[minvalue n|nominvalue]  --序列最小值,递增序列最小值为1,递减序列最小值为-10的26次方
[cycle|nocycle]  --指定当前序列达到最大值或最小值后,是否循环生成值,默认为nocycle
[cache n|nocache] --设置Oracle服务器预先分配并保留在内存中的值的个数(默认为20个)


b、序列的属性值
currval:返回当前序列的值
nextval:返回序列的下一个值

c、修改序列
alter sequence seq_name increment by 10 maxvalue 100000 cycle cache 10;
注意:不能修改序列的起始值,即start with

d、删除序列
drop sequence seq_name;



2、创建视图(view)

以经过定制的方式显示来自一个或多个表的数据
视图可以视为"虚拟表"或"存储的查询"
创建视图所依据的表称为——基表

a、视图的优点有:
1、提供了另外一种级别的表级安全
2、隐藏了数据的复杂性,简化了查询语句
3、分离了应用查询与基础表
4、通过重命名列,从另一个角度提供数据

b、视图创建的语法
create [or replace][ force(力量,强迫)|noforce ] view [schema.]视图名
[(column1,column2,...)] as 查询语句
[with check option[constraint 约束名]] --指明在使用试图时,检查数据是否符合子查询中的约束条件
[with read only]; --指明该视图只能读,不能修改


案例:
create view v_info as
select empno,ename,job,sal,emp.deptno,dname,loc from emp,dept where emp.deptno=dept.deptno with read only;

1、使用 WITH CHECK OPTION 选项创建视图
create or replace view v1 as select * from emp where empno>7000 with check option;


2、创建带有错误的视图
create or replace force view v3 as select * from abc;

3、外连接视图:
create or replace view v2 as
select emp.ename,dept.dname from dept left join emp on emp.deptno=dept.deptno;


4、删除视图
drop view 视图名


注意:在视图上也可以使用修改数据的DML语句,
如insert、update和delete。但如果视图定义包含一下如何一项,则不可直接对视图进行增、删、改操作:
a.集合操作符(union、union all、minus、intersect)
b.聚合函数(sum、avg、max、min等)
c.group by,connect by或start with字句
d.distinct操作符
e.伪列rownum或表达式
f.连接操作(多表)

3、创建索引
a、创建索引
1、B-tree索引(oracle默认索引)
1、创建普通索引
2、创建唯一索引
3、创建复合索引
2、位图索引



3、反向键索引(特殊的b-tree索引):
一般在含有序列数的列上创建索引


4、基于函数的索引


b、整理索引
1、合并
alter index 索引名 coalesce deallocate unused

2、重建
alter index 索引名 rebuild;


c、监视索引
1、开启
alter index 索引名 monitoring usage;


2、关闭
alter index 索引名 nomonitoring usage;
d、删除索引
drop index 索引名;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值