视图:
视图是从一个或者几个基本表(或视图)导出的表。与基本表不同的是它是一个虚表。真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在,数据库中只存放视图的定义。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。所以,基本表的数据发生变化,相应的视图的数据也会变化。
视图一经定义,就可以像基本表一样被查询,删除,但对视图的修改会有一定限制。
视图作用:
1、简单性---使用户关注于需要的数据上,通过视图可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件,用户只需对一个虚表进行简单查询即可,无需关心数据怎么来的。
2、安全性---对应不同用户定义不同视图,使保密数据不出现在不应该出现的用户面前(根据权限)。
3、逻辑性---图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。视图可以在以下几个方面使程序与数据独立:
①如果应用建立在数据库表上,当数据库表发生变化时,可以在表上建立视图,通过视图屏蔽表的变化,从而应用程序可以不动。
② 如果应用建立在数据库表上,当应用发生变化时,可以在表上建立视图,通过视图屏蔽应用的变化,从而使数据库表不动。
③如果应用建立在视图上,当数据库表发生变化时,可以在表上修改视图,通过视图屏蔽表的变化,从而应用程序可以不动。
④ 如果应用建立在视图上,当应用发生变化时,可以在表上修改视图,通过视图屏蔽应用的变化,从而数据库可以不动。
视图的各种使用:
CREATE VIEW <视图名>【(列名组)】AS <子查询>
DROP VIEW <视图名>
子查询可以是任意复杂的select语句,但通常不允许有order 不用子句和distinct短语。
with check opinion表示对视图进行update、insert、delete操作要保证更新、插入、删除满足视图定义中的谓语条件,就是子查询中的条件表达式。
使用WITH CHECK OPTION子句问题提出:若创建视图ygb_view,其程序清单如下:CREATE VIEW ygb_view AS SELECT * FROM 员工表 WHERE 员工表.性别=‘女’执行下列语句,插入新记录:INSERT INTO ygb_view(姓名,性别,工资)values(‘李立三’,‘男’,2300)插入操作成功,但不合理!解决办法:使用with check option,程序清单如下:CREATE VIEW ygb_view AS SELECT * FROM 员工表 WHERE 员工表.性别=‘女’With check option
同样,插入新记录:INSERT INTO ygb_view(姓名,性别,工资) values(‘李立三’,‘男’,2300)插入操作将失败!
索引:
是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
例如这样一个查询:select * from table1 where id=10000。如果没有索引,必须遍历整个表,直到ID等于10000的这一行被找到为止;有了索引之后(必须是在ID这一列上建立的索引),在索引中查找,但索引是经过某种算法优化过的,查找次数要少的多的多。可见,索引是用来定位的。
索引分为聚簇索引和非聚簇索引两种,聚簇索引 是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。
索引作用:
建立索引的目的是加快对表中记录的查找或排序。
第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
当然,也有缺点,
第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
索引的使用:
create index <indexname> on <tablename> (列名<次序>,列名<次序>...);
drop index <indexname> on <tablename>;
分享到:
相关推荐
视图和索引的创建和使用实验报告 视图是一种虚拟表,基于一个或多个表的数据,可以通过视图来简化复杂的查询操作,提高数据的安全性和可维护性。本实验报告主要介绍了视图的创建、修改、使用和索引的创建、使用等...
同时,实验还涉及到在有索引和无索引的情况下执行订单表和订单明细表的连接查询,以对比查询效率。 最后,实验还包括删除索引的操作,如删除汽车配件表上的汽车配件名称索引。这让学生明白索引的管理也是数据库维护...
### 数据库视图和索引的创建与使用详解 #### 实验目标概览 本次实验旨在深入了解数据库中的视图和索引概念,并掌握其在实际应用中的创建与使用技巧。通过理论结合实践的方式,使学习者能够理解视图与索引的作用机制...
练习索引的创建和删除,对比有索引和无索引的基本表查询速度,体会索引的优势。 知识点一:视图的概念和作用 * 视图是基于一个或多个基本表的虚拟表,提供了一个查询的结果集。 * 视图的作用是简化复杂的查询,...
### SQL Server 视图与索引详解 #### 一、视图的概念与操作 ##### 1.1 视图的基本概念 视图是基于SQL语句的结果集的一种虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,...
索引分为单列索引、复合索引、唯一索引和非唯一索引等类型。 实验中,我们为`Book`表的`B_name`列创建了一个名为`idx_bname`的索引,目的是加快按书名查找的速度。同时,为`Reader`表的`r_name`和`r_sex`列创建了一...
数据库视图和索引游标实验报告 一、数据库视图 * 视图的创建:Create view Einstein_student As Select distinct instructor.name, advisor.i_ID, advisor.s_ID, student.ID, student.name From student, ...
数据库视图和索引-游标实验报告 本实验报告的主要内容是数据库视图和索引的创建、使用和修改,以及游标的定义和使用。实验的目的是让学生掌握视图和索引的创建、使用和修改,了解游标的定义和使用,并掌握数据库的...
### SQL视图与索引详解 #### 一、视图 **视图**是一种虚拟表,其内容由存储在数据库中的SELECT语句决定。...通过合理地使用视图和索引,不仅可以简化复杂查询,还能提高查询效率,确保数据的安全性和一致性。
Oracle数据库系统中,视图和索引是两个重要的概念,它们在数据管理和用户访问中起着关键作用。本章主要围绕这两个主题展开,分为视图和索引两大方面进行详细阐述。 首先,让我们来理解视图的基础知识。视图可以视为...
实验九-视图和索引及数据关系图 视图是数据库中的一种虚拟表,它是基于一个SELECT语句的结果集,视图可以被当作一个表来使用,但它本身并不存储数据。视图的优点是可以简化复杂的查询,提高查询效率,提供数据安全...
【SQL第7章 视图和索引】 在SQL中,视图和索引是数据库管理系统中的重要概念,它们在数据管理和查询优化方面起到关键作用。 **7.1 视图简介** 视图是一个虚拟表,它并不实际存储数据,而是基于一个或多个基表的...
Oracle数据库管理与应用实例教程中,视图和索引操作是关键的数据库管理技能。视图是数据库系统中的一个重要概念,它提供了一种从不同角度查看数据的方式,而索引则能显著提升数据查询的效率。 **视图概述** 视图是...
总结,本实验全面覆盖了视图和索引的概念、创建、使用和管理,同时也锻炼了SQL查询和数据库操作的能力。通过这些实践,我们可以更好地理解和应用数据库中的关键概念,提高数据库系统的效率和数据管理的有效性。
Oracle11g教程_第6章_视图和索引操作 ppt
Hive视图和索引,基础篇