- 1、本文档共48页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据示例 eno ename dept E01 AB CS E02 AA CS E03 BB IS E04 BC CS E05 CB IS E06 AS IS E07 BB IS E08 AD CS E09 BD IS E10 BA IS E11 CC CS E12 CA CS 聚集索引示例 查找过程 当在建有聚集索引的列上查找数据时 首先从聚集索引树的入口(根节点)开始逐层向下查找, 直到达到B-树索引的叶级,也就是达到了要找的数据所在的数据页, 最后只在这个数据页中查找所需数据 查找示例 SELECT * FROM employee WHERE eno=E08 说明 在聚集索引的叶节点中,数据按聚集索引项的值进行物理排序。 因此,聚集索引很类似于电话号码簿。 一个表只能包含一个聚集索引。 但一个索引可以由多个列(组合索引)组成。 下列情况可考虑创建聚集索 包含大量非重复值的列。 使用下列运算符返回一个范围值的查询:BETWEEN AND、、=、 和 =。 返回大型结果集的查询。 经常被用作连接的列。 ORDER BY或GROUP BY子句中指定的列。 人民邮电出版社 第5章 视图和索引 5.1 视图 5.2 索引 5.1 视图 5.1.1 基本概念 5.1.2 定义视图 5.1.3 通过视图查询数据 5.1.4 修改和删除视图 5.1.5 视图的作用 5.1.1 基本概念 视图是由从数据库的基本表中选取出来的数据组成的逻辑窗口,是基本表的部分行和列数据的组合。 视图是一个虚表。数据库中只存放视图的定义,而不存放视图包含的数据,这些数据仍存放在原来的基本表中。 基本表中的数据如果发生变化,从视图中查询出的数据也会随之变化。 基本概念(续) 视图可以从一个基本表中提取数据,也可以从多个基本表中提取数据,甚至还可以从其他视图中提取数据,构成新的视图。 对视图数据的操作最终都会转换为对基本表的操作。 基本概念(续) 5.1.2 定义视图 定义视图的格式如下: CREATE VIEW 视图名 [(列名[ ,...n ] )] AS 查询语句 查询语句中通常不包含ORDER BY和DISTINCT子句。 在定义视图时要么指定视图的全部列名,要么全部省略不写,不能只写视图的部分列名。 必须明确指定视图所有列名的情况 某个目标列不是简单的列名,而是函数或表达式。 多表连接时选出了几个同名列作为视图的字段。 需要在视图中为某个列选用新的更合适的列名。 1.定义单源表视图 视图的数据取自一个表的部分行和列。 例1 建立查询信息管理系学生的学号、姓名、性别和年龄的视图。 CREATE VIEW IS_Student AS SELECT Sno, Sname, Ssex, Sage FROM Student WHERE Sdept = 信息管理系 2.定义多源表视图 例2 建立信息管理系选修了C001课程的学生的学号、姓名和成绩的视图。 CREATE VIEW V_IS_S1(Sno, Sname, Grade) AS SELECT Student.Sno, Sname, Grade FROM Student JOIN SC ON Student.Sno = SC.Sno WHERE Sdept = 信息管理系 AND SC.Cno = C001 例8 3.在已有视图上定义新视图 例3 利用例1建立的视图,建立查询信息管理系年龄小于20的学生的学号、姓名和年龄的视图。 CREATE VIEW IS_Student_Sage AS SELECT Sno, Sname, Sage FROM IS_Student WHERE Sage 20 IS_Student 视图的来源是视图和基本表的组合 例4 在例1所建的视图基础上,例2的视图定义可改为: CREATE VIEW V_IS_S2(Sno, Sname, Grade) AS SELECT SC.Sno, Sname, Grade FROM IS_Student JOIN SC ON IS_Student.Sno = SC.Sno WHERE Cno = C001 4.定义带表达式的视图 在定义视图时可以根据需要设置一些派生属性列,在这些派生属性列中保存经过计算的值。 这些派生属性被称为虚拟列。 包含虚拟列的视图也称为带表达式的视图。 例5 定义一个查询学生出生年份的视图。 CREATE VIEW BT_S(Sno, Sname, Sbirth) AS SELECT Sno,
文档评论(0)