Oracle-视图与索引

视图

简介

视图是一种虚表

视图建立在已有表的基础上,视图赖以建立的的这些表成为基表

向视图提供的数据的内容的语句的select 语句,可以将视图理解为存储起来的select 语句

视图向用户提供基表数据的另外一种表现形式

视图的好处

控制数据访问

简化查询

避免重复访问相同的数据

语法

语法: create or replace view 视图名 as 查询语句;

 [with check option]   -- 指出在视图上进行的修改 要符合子查询所指定的条件
                              要求增删改操作的数据必须是select查询所能查到的数据,否则 不允许操作
     
     [with read only]   --  说明 该视图是只读视图, 不能通过视图进行增删改,只能进行查询

示例

-- 查询 姓名,年级名称,电话     用视图
--创建视图
create or replace view view_grade_student
as
  select name,stuname,phone
	from student s,grade g
	where s.GID=g.id;

-- 查询视图中的数据
select * from  view_grade_student;
		
	--  赵丽丽 电话 000 ,  update  	
		
update student set phone='112333' where  stuname='赵丽丽';




--  创建视图, 带着 检查  with check option

create or replace view view_grade
as
   select * from grade where id in (5005,1,5)
	 with check option;   



select * from  view_grade;





update  view_grade  set name='444' where id=4;   --因为view_grade 中 不存在 id=4的记录,因此 基本不会更新

update  view_grade  set name='444' where id=5;   --  因为view_grade 中 存在 id=5的记录,因此会更新,同时 基表 也会更新





-- 创建 视图, 带着 只读  with read only

create or replace view view_grade
as
   select * from grade where id in (5005,1,5)
	 with read only;  --只读
	 
	 
	 

update  view_grade  set name='444' where id=5; 	   --无法对只读视图执行 DML 操作  

 

索引

简介

索引: index

用于 加快数据的检索,类似于书籍的索引,不用翻阅整本书找到想要的消息

用户无法看到索引,只用来加速查询

索引是简历在表上的可选对象,
索引的关键在于通过一组排序后的索引键来取代默认的全表扫描的检索方式,
从而提高检索效率


当创建或删除一个索引时不影响基本的表

索引一旦建立,在表上进行DML操作时,oracle 会自动管理索引
,  删除索引后,不会对表产生影响


oracle 创建主键时,会自动在该列上 创建索引

语法 

语法:
   create index 索引名index_
     on  表名 (列名 [desc|asc]); 

示例

create index index_emp_ename
on emp ('ename');  -- 对 emp 的ename 创建索引 

你可能感兴趣的:(oracle,oracle,数据库)