视图:
视图是从一个或者几个基本表(或视图)导出的表。与基本表不同的是它是一个虚表。真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在,数据库中只存放视图的定义。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。所以,基本表的数据发生变化,相应的视图的数据也会变化。
视图一经定义,就可以像基本表一样被查询,删除,但对视图的修改会有一定限制。
视图作用:
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>;
分享到:
相关推荐
练习索引的创建和删除,对比有索引和无索引的基本表查询速度,体会索引的优势。 实验内容: 【实验4-1】创建视图 (1)单源视图:建立今年新增的会员的视图; 建立“奔驰”品牌的汽车配件视图,并要求进行修改和...
视图和索引的创建和使用实验报告.pdf
数据库实验指导书视图索引,视图和索引的创建及使用
国家开放大学 形考答案 mysql 实验训练4:视图和索引的构建与使用
1. 熟练掌握使用企业管理器和T-SQL语句创建、查询、更新、修改和删除视图。 2. 进一步掌握视图与基本表的联系与区别。 3. 理解索引的概念和作用。 4. 熟练掌握索引的创建与删除
数据库视图和索引游标实验报告.doc
实验六 视图和索引 实验目的 (1)了解视图的重要性 (2)掌握视图的建立 (3)掌握视图的使用 (4)掌握索引的使用方法 (5)掌握索引的概念及分类
Oracle11g教程_第6章_视图和索引操作 ppt
Hive视图和索引,基础篇
实验九-视图和索引及数据关系图.doc
视图和索引操作课件讲义.pptx
SQL第7章视图和索引
视图和索引的创建和使用实验报告.doc
数据库视图和索引 游标实验报告.doc
Oracle第6章视图和索引操作
3. 在视图view1中的“学号”列上创建一个非聚集索引。 3、根据表Student,SC,Course,运用连接操作实现以下查询功能; 查询每位学生的选课情况以及每门课的课程成绩; 查询每门课程的选课情况并且只显示选课人数多于...