05-Oracle中的对象(视图,索引,同义词,系列)
创始人
2024-05-30 16:10:57
0

本章主要内容:

1.视图管理:视图新增,修改,删除;

2.索引管理:索引目的,创建,修改,删除;

3.同义词管理:同义词的作用,创建,修改,使用及删除;

4.系列管理:系统作用,系列创建、修改、使用及删除;

什么是视图

1.视图是一种数据库对象,它允许用户从一个或多组表中通过查询语句创建一个“虚表”。 2.视图中并没有存放数据,而仅仅是一条select查询语句,查询结果以表的形式表示。 3.视图是创建在表的基础上的,也可以在视图的基础上再创建视图。视图不能创建索引。 4.创建视图的表称为基表 5.视图中可含有多表联接、集合运算符、DISTINCY运算符、集合函数、GROUP BY、CONNECT BY等字句时,视图通常是不能修改。

视图的优点

        1、安全,使用视图将用户与基表分开         2、方便,简化用户的 SQL 命令         3、一致性,视图不存储数据,操作视图的数据就是操作基表数据

SQL语句管理视图

创建语句
CREATE VIEW VIEW_NAME AS SELECT * FROM BASE_TABLE 
[WITH READ ONLY]
[WITH CHECK OPTION]
使用视图进行操作
select  column_list from VIEW_NAME
删除视图
Drop VIEW_NAME

视图举例

CREATE OR REPLACE VIEW V_EMP1ASSELECT * FROM EMP;
SELECT * FROM USER_VIEWS;	   --查看用户的视图
DESC V_EMP1	 --查看视图的结构
INSERT INTO V_EMP (empno,ename,sal) VALUES (51,’HR’, 4000);
往视图插入数据,实际将数据插入到了基表
SELECT * FROM EMP;		 --查询看一下插入成功没
CREATE OR REPLACE VIEW V_EMP2ASSELECT * FROM EMP WHERE sal>2500;
INSERT INTO V_EMP2 (empno,ename,sal) values(51,’HR’, 2100); --OK
插入也能成功,可以查一下基表,但是查询该视图却看不到数据
SELECT * FROM V_EMP2	--看不到往视图插入的数据,造成错觉
CREATE OR REPLACE VIEW V_EMP2ASSELECT * FROM EMP WHERE sal>2500WITH CHECK OPTION         --不符合视图条件的数据不让插
INSERT INTO V_EMP2 (empno,ename,sal) VALUES (52,’HR’, 2100); --失败
CREATE OR REPLACE VIEW V_EMP_DEPTASSELECT empno,ename,sal,d.deptno,d.dname FROM EMP e INNER JOIN DEPT d ON e.deptno = d.deptno;
INSERT INTO V_EMP_DEPT VALUES(‘1005’,’TOM’,3100,’52’, ‘SALES’); 
失败,多表连接的视图不让插入和修改CREATE OR REPLACE VIEW V_READ ASSELECT * FROM EMP WITH READ ONLY;  --只读的视图,不能插入、修改、删除记录

索引的管理

•索引是基于表建立的一种数据结构,通过表中的某些字段上建立索引,可以提高系统对表的查询速度。 •索引表中只保存索引关键字和纪录号,查询时根据索引关键字,可以从索引表中找到对应的纪录号,根据纪录号就可以快速的将纪录指针移到与关键字相对应的纪录上,从而得到查询结果。 •支持两种索引: B树索引 •用一个倒置的树状结构来加快查询表的速度 位图索引 •只存在与oracle的企业版本中,适合在数据表中的列值重复较多的情况下创建索引

索引的原理

CREATE INDEX IDX_EMP on EMP (deptno,mgr);

 索引的管理

•创建不唯一索引

CREATE INDEX  index_name on TABLE_NAME(index_column) TABLESPACE SYSTEM STORAGE ( initial 20 k next 20 k pctincrease 75) pctfree 0 ;

•创建唯一索引

CREATE UNIQUE INDEX idx_emp_ename on EMP(empno) TABLESPACE users STORAGE ( initial 20 k next 20 k pctincrease 75) 、pctfree 0 ;

•创建位图索引

CREATE bitmap INDEX on EMP(sex); --可能的值少,重复多

•删除索引

DROP INDEX index_ename;

索引的管理

User_indexes:存放用户所创建的索引信息
User_ind_columns:存放用户索引的字段信息查询ida表的索引信息
select index_name,column_name,column_position from user_ind_columns where table_name=‘IDA'

同义词管理

•同义词就是为oracle数据库中的对象创建一个别名,使该对象的非创建者也可以直接通过该别名来访问。 •Oracle同义词有两种: 公有同义词 •由DBA创建,所有用户都可以访问 •CREATE public SYNONYM EMP  FOR SCOTT.EMP; 私有同义词 •只能由创建者自己使用 •CREATE SYNONYM EMP  FOR SCOTT.EMP; •删除同义词: Drop synonym EMP •与同义词有关的数据字典 DBA_SYNONYMS:是数据库中的所有同义词的描述 ALL_SYNONYMS:是数据库中的所有同义词的描述 User_SYNONYMS:是用户可存取的所有同义词 •select * from DBA_SYNONYMS WHERE SYNONYM_NAME=‘EMP’;

同义词用途

•应用程序应当尽量避免直接使用表名,DBA或设计人员改变了表名将直接影响程序,如果程序使用同义词,则只需修改同义词即可 •方便使用,不需带上模式名 •增强移植性 定义共有同义词,换了用户也可以使用

序列的管理

•序列就是一个连续的数字生成器,可设置为上升或下降 •当序列第一次被调用的时候将返回一个指定的值,然后根据规则增量增长 •序列可以是循环的,也可以是连续增加的,直到一个限制值为止。 •序列有两个伪列: CurrVal:表示当前列 NextVal:下一个序列值

语法:CREATE SEQUENCE sequence_name[INCREMENT BY n]
[START WITH n][{MAXVALUE n}][{MINVALUE n}]
[{CYCLE |NOCYCLE}][{CACHE n|NOCACHE}]; 
INCREMENT BY:指定步长 。
START WITH:指定初始值 。
MAXVALUE:指定序列可生成的最大值。
MINVALUE:指定序列的最小值。CYCLE--配置序列在达到界限值时重复编号NOCYCLE--达到界限值时不重复编号,一直累加,不循环,这是默认值。
CACHE--定义在内存中保留的序列编号块的大小,默认值为20.NOCACHE--强制数据词典对于生成的每个序列编号进行更新,保证在生成的编号中没有空缺,但这样会降低性能. 

•创建一个序列

CREATE  SEQUENCE  myseq  INCREMENT BY 1 START WITH 1 MAXVALUE    1.0E28 MINVALUE  1 NOCYCLE CACHE 20NOORDER;CREATE TABLE AA (id number(10,0) not null, aa varchar2(10));

使用序列

insert into AA values(myseq.NEXTVAL, 'first');
insert into AA values(myseq.NEXTVAL, 'second');
SELECT * FROM AA;
SELECT myseq.CURRVAL from dual;

•删除一个序列

Drop sequence myseq

•与序列有关的数据字典

DBA_SEQUENCE: •存放数据库中的所有序列的描述信息 ALL_SEQUENCE: •存放当前用户可存取的所有序列 USER_SEQUENCES: •用户序列的说明 •SELECT SEQUENCE_NAME, MIN_VALUE  , MAX_VALUE •FROM  user_sequences where SEQUENCE_NAME ='SQ'

本人从事软件项目开发20多年,2005年开始从事Java工程师系列课程的教学工作,录制50多门精品视频课程,包含java基础,jspweb开发,SSH,SSM,SpringBoot,SpringCloud,人工智能,在线支付等众多商业项目,每门课程都包含有项目实战,上课PPT,及完整的源代码下载,有兴趣的朋友可以看看我的在线课堂

讲师课堂链接:https://edu.csdn.net/lecturer/893

相关内容

热门资讯

小学课文叶公好龙的意思是什么 小学课文叶公好龙的意思是什么叶公好龙是一句成语,讲述了叶公爱龙成癖,被天上的真龙知道后,便从天上下降...
完美世界前传图一图二图三的问题... 完美世界前传图一图二图三的问题?我是电二龙现的,101魔尊,图我都开完了,图一可进 千年前天泪之城图...
声开头的四字成语大全 声开头的四字成语大全声开头的四字成语大全 :声色俱厉、声如洪钟、声泪俱下、声情并茂、声东击西、声嘶力...
网络时代消费者心理特征和行为特... 网络时代消费者心理特征和行为特征是怎样的由于它能够提供丰富的商品信息,突破时空的限制,具有低廉的价格...
人生如梦,后面一句是什么 人生如梦,后面一句是什么人生如梦 一樽还酹江月人生如梦,需及时醒来,面对现实一樽还酹江月
求青梅竹马的小说 求青梅竹马的小说总是推的我都看过,多推点吧《夏有乔木,雅望天堂》感人死呢!!!!玄幻小说中有很多
想你第15集里面尹恩惠用的彩笔... 想你第15集里面尹恩惠用的彩笔是什么牌子的?这是马克笔 不管什么牌子效果都一样、和普通彩笔不同的就是...
焉栩嘉被痛斥劈腿背叛,情感失格... 焉栩嘉被痛斥劈腿背叛,情感失格的偶像算劣迹艺人吗?我认为情感失格的偶像应该就算是劣迹艺人人,因为他们...
求异界类似 {异界逍遥公}!和... 求异界类似 {异界逍遥公}!和幻神这样的! 或都市类的像 {龙啸九天-人界风云篇}!!主角蓝玉!我来...
我是从教师转行到财产保险公司做... 我是从教师转行到财产保险公司做保险营销员的,是个到公司快一年的新人,现在急求一份年终总结啊?manm...
改写人生是什么意思? 改写人生是什么意思?就是完全打破以往的人生规划,迎接一个不一样的人生。
找一本主角牙口特别好的小说? 找一本主角牙口特别好的小说?完美世界吗?
无双无对无法比打一数字? 无双无对无法比打一数字?无双无对无法比的数字是0。因为两个O仍是O。
一切都为了生活,那生活又为了什... 一切都为了生活,那生活又为了什么?生活就是你的一切,生活?生存活着!你的所有的努力只是为了活着,为了...
喜欢安静的人是什么性格 喜欢安静的人是什么性格喜欢安静的人通常本身也是比较文静的人,这类人的性格会属于内敛,内向型的。内向、...
哪个播放器能看《一生一世》 哪个播放器能看《一生一世》不好看,暴风影音就有哇如果有关视频的格式是播放器支持的都能看或播放
心里莫名的悸动是什么? 心里莫名的悸动是什么?心里老是莫名的悸动 搞不懂耶失眠、健忘、眩晕、耳鸣等并存,凡各种原因引起心脏搏...
怎样训犬 怎样训犬受训犬是指接受训练的犬。受训犬一般要求除符合本品种的特征外,还应注意:(1)体形外貌。机体各...
天为什么会黑? 天为什么会黑?这是因为地球自转造成的日月更替。地球绕太阳是公转,而在公转的同时地球也在自转。当地球自...
为什么前男友屏蔽朋友圈不让我看... 为什么前男友屏蔽朋友圈不让我看,但是又不删除我?为什么会这样啊都已经让对方变成前任啦!还纠结这些干嘛...