本章主要内容:

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

05-Oracle中的对象(视图,索引,同义词,系列)相关推荐

  1. Oracle数据库之对象视图、索引、序列、同义词

    Oracle数据库总结: Oracle数据库之集合运算 Oracle数据库之数据处理 Oracle数据库之建表和管理表 Oracle数据库之对象视图.索引.序列.同义词 视图: 语法: create ...

  2. 【DB笔试面试614】在Oracle中,和视图相关的查询转换有哪些?

    ♣题目 部分 在Oracle中,和视图相关的查询转换有哪些? ♣答案部分 (一)简单视图合并 1CREATE OR REPLACE VIEW VW_SVM_LHR AS SELECT * FROM S ...

  3. 9、oracle数据库下的视图和同义词

    ORACLE下的视图和同义词 1.视图 视图就是一个查询的结果,可能包含一张表或者多张表的信息,创建视图其目的在于,便于查看表中的信息.视图只是在逻辑上存在. 1.1创建/修改视图 创建视图一定要有C ...

  4. Oracle其它数据库对象:视图、序列、同义词

    SQL> --视图: 由一个或者多个表组成的逻辑表 SQL> -创建一个视图,包含了10,20的员工信息 SQL> --创建一个视图,包含了10,20的员工信息 SQL> ed ...

  5. Oracle中查询用户表/索引/视图的创建语句

    1.查询当前用户下表的创建语句 select dbms_metadata.get_ddl('TABLE','ux_future') from dual; 2.查询其他用户下表的创建语句 select ...

  6. oracle grant view access,oracle中v$access视图介绍

    如果想了解如果杀掉一个正在运行的存储过程,请查询这篇文章: oracle杀掉一个正在运行的数据对象: 外链网址已屏蔽 可以利用此视图的v$session视图配合使用,来杀掉一个正在运行的数据库对象(比 ...

  7. oracle中or会使索引,为何查询条件中多了 OR 选项,索引就走全扫描?

    ORACLE 11204, SOLARIS 如下:原始写法,where 条件中,有 OR 条件,这时,索引 IDX_BD_LOTMASTER_NO 走全索引扫描,导致效率非常低, -bash-3.2$ ...

  8. oracle中using btree,mysql 索引中的USING BTREE 的意义

    索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型. 根据存储引擎定义每个表的最大索引数和最大索引长度.所有存储引擎支持每个表至少16个索引,总 ...

  9. oracle中v$database视图详解

    SQL> desc v$database  名称              是否为空? 类型  ----------------- -------- ------------  DBID     ...

  10. Oracle中的视图和同义词

    视图 视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据.视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表.视图来源于表,所有对视图数据的修改最 ...

最新文章

  1. 洛谷P1182 数列分段Section II 二分答案
  2. 《软件技术基础》实验指导 实验五
  3. rfid6-写成platform驱动
  4. D-Link登录时密码错误输入三次而无法登录问题的处理
  5. 魅族16s封胶事件结果:属极个别封胶漏点 双方协商执行一赔二
  6. 让员工一再上当的5种社会工程骗局
  7. pat1070. Mooncake (25)
  8. 数字电路基础知识(二)
  9. 2020大数据技术体系结构图,你值得拥有
  10. JAVA学习48_Eclipse错误: 找不到或无法加载主类或项目无法编译10种解决大法!
  11. ROS moveit cartesian_demo 机械臂笛卡尔空间路径速度限制
  12. 2021华为鸿蒙发布会直播,2021 华为智能协作春季发布会直播(视频)
  13. centos系统 yum 安装php-redis扩展
  14. 急刹车是否踩离合器?别犹豫,踩。
  15. 三种方式修改 MySQL 数据库名
  16. Seaborn系列| 绘制相关性热图(仅显示下三角相关性)
  17. 2021年,我们 CSDN App做了什么?
  18. WIN10 双显示器设置
  19. ssm基于BS架构的校园爱心捐赠与物品交换平台的设计与实现毕业设计源码
  20. cimcoeditv5怎样模拟刀路_cimco edit v5怎么不显示刀具运动轨迹

热门文章

  1. 【Java基础】Java7新特性—Files类,Path类,Paths类的用法
  2. Docker随时随地玩转变量
  3. 差分6/6---三体攻击--暴力枚举4/6
  4. java战士对打,Java 法师与战士
  5. yolov8seg 瑞芯微RKNN芯片、地平线Horizon芯片、TensorRT部署
  6. python 嵌套函数过多_嵌套函数的性能开销是多少?
  7. pip与虚拟环境相关操作
  8. android 个人论坛地址
  9. Python之画蟒蛇
  10. 推荐好用到爆的电脑软件 每款都是精品