oracle sql 之视图,序列,索引,同义词

本文详细介绍了SQL中的视图、序列与索引的概念、创建方法、使用场景及注意事项,帮助开发者掌握这些核心数据库特性,提高数据操作效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

视图(view):

1:视图是一种虚表。

2:视图是建立在已有的表基础上的,称已有的表为基表。

3:视图是呈现基表数据给用户的另外一种表现形式。

视图分为简单视图和复杂视图

简单视图:基于基表建立视图时,没有使用分组函数(group by .....)

复杂视图:基于基表建立视图时,使用了分组函数(group by .....)

注:对于简单视图,用户可通过对视图数据进行增删改来对基表数据进行增删改,即,用户改变视图数据时基表的数据也发生了该表。而对于复杂视图,用户不能对数据增删改。

基于已有表创建视图:

create or replace view 视图名

as

select 字段1,字段2,.........from  表名

with read only 

如果加上:with read only 则表明用户对视图操作的权限只能读,不能对视图进行增删改

删除视图:

drop view 视图名

序列(sequence):供用户来产生唯一值的数据库对象,主要用于提供主键

创建序列语句:

create sequence 序列名

increment by   n                   --每次增长的数值

start with   n                          --序列值开始的位置

[maxvalue n|nomaxvalue]       --序列的最大值

[minvalue n|nominvalue ]      --序列的最小值

[cycle|nocycle]                       --序列是否循环

[cache|nocache];                     --序列是否缓存登录


例如:

create sequence seqemp1
increment by 1
start with 1
maxvalue 999
minvalue 1
nocycle
nocache

插入数据:

insert into emp2 values(seqemp.nextval,'aa',1500.00)

insert into emp2 values(seqemp.nextval,'bb',2500.00)

insert into emp2 values(seqemp.nextval,'cc',3500.00)

插入结果:

EMPNO ENAME            SAL
----- --------- --------
    1 aa          1500.00
    2 bb           2500.00
    3 cc           3500.00

修改序列:

alter sequence 序列名

increment by   n

............

删除序列:

drop sequence 序列名

select 序列名.currval  from dual;  能够查看当前序列值

select 序列名.nextval from dual;  能够查看到下一个序列的值

序列裂缝:就是在一个表中出现序列值不连续了,在两个数据之间出现的序列不是按照定义的序列方式变化。

例如下面的情况就是出现裂缝情况

EMPNO ENAME            SAL
-----  --------- --------
    1  aa           1500.00
    2  bb           2500.00
    3  cc           3500.00

    5          dd                    4500.00       

出现裂缝的情况:

(1)回滚     (2)系统异常   (3)多个表使用同一个序列

索引(index):能提高查询的效率

创建索引语句:

create index 索引名 on 表名(index_column)

例如:create index emp_empno on emp2(empno)

删除索引:

drop index 索引名

同义词(synonym):缩短对象的名字,方便使用对象

创建同义词:

create synonym 同义词名 for 对象

例如:create synonym e for employees

删除同义词:

drop sysnonym 同义词名




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值