创建其他方案对象

本文介绍了数据库对象,包括table、view、sequence、index和synonym。详细阐述了视图的创建、查询、修改和删除操作,序列的创建、使用、缓存和修改,以及同义词的创建和删除。通过这些操作,可提高数据库的使用效率和便捷性。

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

数据库对象
table:基本的数据存储集合,有行和列组成
view:从一张表或者多张表中抽出的逻辑上相关的数据集合
sequence:生成规律的数值
index:提高查询性能
synonym:给对象气的别名
在这里插入图片描述

简单试图和复杂视图
在这里插入图片描述

创建视图
创建和查询

create view x
	as select empno,ename, deptno,hiredate
	from cp_emp
	where deptno=10;

create view v_emp2
	as select empno,ename, deptno,hiredate
	from cp_emp
	where deptno=20;

select * from v_emp2;

修改视图
使用create or replace view子句修改empvu80视图。为每一列都增加别名

create or replace view v_emp_max_sal
	as select avg(sal) a_sal, deptno
	from emp
	group by deptno;

在create or replace view子句中列出来的别名要与子查询中个列相对应

删除视图
drop view v_emp2;

序列
1、自动提供唯一的数值
2、共享对象
3、主要用于提供主键值
4、可代替应用程序生成序号
5、将序列值缓存到内存中,可以提高访问效率

create sequence语句:语法
定义一个序列自动生成连续的数字:

create sequence sequence
[increment by n] 每次增加的值
[start with n] 整列开始值
[{maxvalue n | nomaxvalue}] 最大值
[{minvalue n | nomincalue}] 循环开始的起始值
[{cycle | nocycle }] 循环
[{cache n | nocache}]; 缓存多少个值,存在断号的情况

创建序列
创建序列dept——deptid——seq 为表departments提供主键
不是用cycle选项

create sequence seq_d
	increment by 10
	start with 120
	maxvalue 200
	nocache
	nocycle;

nextval和currval伪列
1、nextval 返回下一个可用的序列值,他返回一个唯一的值每次引用他的时候,任何用户都可以引用他。
2、currval得到当前的序列值
3、使用currval之前必须发出nextval。

使用序列
插入一个新的部门为“support”位置ID为2500
在这里插入图片描述

序列dept_deptid_seq显示当前值和下一个值

select seq_d.nextval from dual;

select seq_d.currval from dual;

缓存序列值
1、将序列值缓存到内存中,可提高访问效率
2、序列在下列情况下出现“断号”:
–发生回滚
–系统崩溃
–序列用于其他的表

修改序列

alter sequence seq_d
increment by 20
maxvalue 200
nocache
nocycle;

修改序列的注意事项
1、必须是序列的拥有者或者对序列有alter权限
2、只有将来的序列值会被改变
3、改变序列的初始值只能通过删除序列之后重建序列的方法实现
4、执行一些验证(例如,新的maxvalue小于单前的序列号)
5、使用drop语句删除序列
drop sequence t_std;

创建对象的同义词
通过创建同义词简化对象访问(一个对象的另一个名字),使用同义词可以:
方便访问其他用户的对象,缩短对象名字的长度

创建的删除同义词
为视图dept_sum_vu创建一个较短名称的同义词
create synonym d_sumfordept_sum_vu;

删除同义词:
drop synonym d_sum;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值