《数据库原理及应用》教学课件 第五章视图与索引
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
22
5.1 视图
5.1.3 修改与更新视图
03 用SQL命令更新视图
由于视图是一张虚表,所以对视图的更新最终会变成对数据表的更 新,相关语法格式均与数据表的更新操作一致。
在完成以下例题前,读者可按前文步骤创建一个计算机系学生的视 图V_S,其中包括学号、姓名及性别。
【例5-5】 向视图 V_S 插入一条记录(12004,吴艮,女)。
INSERT INTO V_S(SNo,SN,Sex) VALUES ('12004','吴艮','女')
23
5.1 视图
5.1.3 修改与更新视图
【例5-6】 将视图V_S中的学生“吴艮”的性别改为“男”。
UPDATE V_S SET SEX='男' WHERE SN='吴艮'
【例5-7】 删除视图V_S中同学“吴艮”的记录。
27
5.1 视图
5.1.4 查询视图
可将上页例子转换为如下语句:
SELECT S.SNo,SN,AVG(Grade) AS AVGGrade FROM S,SC WHERE SN='冯明 GROUP BY S.SNo,SN
由此可以看出,当对数据表的查询比较复杂时,可以先建立一个视图,只对视图进行查询,从 而简化查询过程。
(4)SCHEMABINDING 表示视图与引用表的定义绑定,设置此选项后,引用表将不能随 意更改表结构,如列的数据类型等,如果必须更改,则需要先删除与之绑定的视图。
9
5.1 视图
5.1.2 创建与删除视图
(5) VIEW_METADATA 表示返回视图自身的元数据,设置此选项后,返回视图的每一列 的定义,而不是所引用数据表的列定义。
11
5.1 视图
5.1.2 创建与删除视图
【例5-2】 创建一个学生平均成绩的视图 V_SAVG,其中包括学号和平均成绩。 。
CREATE VIEW V_SAVG(SNo,AVGGrade) AS SELECT SNo,AVG(Grade)
FROM SC Group BY Sno
其中,对属性 Grade 使用了 AVG 函数,所以必须在列名处指定别名。
16
5.1 视图
5.1.2 创建与删除视图
03 用SQL命令删除视图
删除视图的 SQL 命令为 DROP VIEW,具体语法格式如下: DROP VIEW <视图名> 【例5-3】 删除视图 V_T。 DROP VIEW V_T
删除视图只是删除了视图的定义,与视图有关的数据表中的数据不会受到任何影响。
02 用SSMS修改视图
在 SSMS 中可按以下步骤修改视图(以实现与例5-4同样功能为例)。
步骤 1
在“对象资源管理器”窗口列表中右击数据库“SRS”的视图“V_SAVG”,在弹出 的快捷菜单中选择“设计”选项,打开“”窗口。
步骤 2
在界面上方空白处右击,在弹出的列表 中选择“添加表”选项,如图所示。
26
5.1 视图
5.1.4 查询视图
在视图中查询与在数据表中查询的 SQL 命令相同,不同之处在于 FROM 子句中指明的是视图 名。
【例5-8】 在视图 V_SAVG 中查询学生“冯明”的信息。
SELECT * FROM V_SAVG WHERE SN='冯明'
本例的执行过程为:先找到视图 V_SAVG 的定义,将这一定义与查询语句结合起来,转换成 等价的针对数据表的查询语句,这一转换过程称为视图消解。
步骤 2
在“”窗口的空白处输入要插入的数据,如图所 示。
步骤 3
单击工具栏中的“保存”按钮 ,完成视图数据 的插入。
25
5.1 视图
5.1.3 修改与更新视图
在视图中修改数据的步骤与插入数据类似,在打开对应视图的数据窗口后(如“”),修改对 应数据即可。
在视图中删除数据的步骤与在数据表中删除数据类似。 例如,实现例5-7同样功能,可打开“”窗口后,右击学生 “吴艮”的数据行,在弹出的快捷菜单中选择“删除”选项, 完成视图中数据的删除,如图所示。
17
5.1 视图
5.1.2 创建与删除视图
04 用SSMS删除视图
在 SSMS 中可按如下步骤删除视图(以 实现与例5-3同样功能为例)。
步骤 1
在“对象资源管理器”窗口列 表中右击数据库“SRS”的视 图“V_T”,在弹出的快捷菜 单中选择“删除”选项。
步骤 2
打开“删除对象”对话框,单 击“确定”按钮,完成视图的
当数据表中的数据 更新时,视图中的数据 也会随之更新。同样, 视图中的数据更新时, 数据1 视图概述
02 视图的优点与作用
(1)视图可以只提取出用户需要的数据,便于管理和使用。 当某些查询的条件比较复杂时,视图可以将表与表之间的连接条件等对用户隐藏起来,使用
当数据库中存储的数据量十分庞大时,可以把它看作一本字典,其中的某一条数据就是需要查 找的某个汉字,这时就体现出了索引的重要性。
29
5.2 索引
5.2.1 索引概述
02 索引的特点
(1)使用索引可以提升数据库的性能,主要体现在以下几个方面。 ① 极大地提升了数据的查询速度,这也是其最主要的优点; ② 通过创建唯一索引,可以保证数据库中的各行数据具有唯一性; ③ 建立在外码上的索引可以加速表与表之间的连接,益于实现数据的参照完整性; ④ 显著减少分组和排序查询所使用的时间。
(6) AS 关键字用来指定视图要执行的操作。
(7) <SELECT 语句>可以是任意查询语句,但通常不包含 ORDER BY 子句和 DISTINCT 关键字。
(8) WITH CHECK OPTION 表示对视图执行的修改语句必须符合 SELECT 语句中的条件。 设置此选项可以确保通过视图修改数据时,会自动加上 SELECT 语句中的条件。
10
5.1 视图
5.1.2 创建与删除视图
【例5-1】 创建一个计算机系教师信息的视图 V_T,其中包括教师号、教师姓名及职称。
CREATE VIEW V_T AS SELECT TNo,TN,Prof
FROM T WHERE Dept='计算机'
其中,对教师信息的访问限制在了“计算机系”之内,且只能查看 TNo,TN,Prof 三个列的 内容,保证了数据的安全性。
15
5.1 视图
5.1.2 创建与删除视图
步骤 4
在“Grade”行的“分组依据”下拉列表中选择“Avg”选项,在“别名”列对应的 文本框中输入“AVGGrade”,如图所示。
步骤 5
设置完成后单击工具栏中的“保 存”按钮 ,打开“选择名称” 对话框,在“输入视图名称”文 本框中输入“V_SAVG”,单击 “确定”按钮,完成视图的创建。
5.1.3 修改与更新视图
【例5-4】 修改学生平均成绩视图 V_SAVG,在其中添加学生名称字段。 ALTER VIEW V_SAVG(SNo,SN,AVGGrade) AS SELECT S.SNo,SN,AVG(Grade)
GROUP BY S.SNo,SN
20
5.1 视图
5.1.3 修改与更新视图
DELETE FROM V_S WHERE SN='吴艮'
24
5.1 视图
5.1.3 修改与更新视图
04 用SSMS更新视图
在 SSMS 中可按如下步骤在视图中插入数据(以实现与例5-5同样功能为例)。
步骤 1
在“对象资源管理器”窗口列表中右击数据库“SRS”的视图“V_S”,在弹出的快 捷菜单中选择“编辑前200行”选项,打开“”窗口。
13
5.1 视图
5.1.2 创建与删除视图
步骤 2
在“表”选项卡中选中“SC”,单击“添加”按钮,然后单击“关闭”按钮,返回 “”窗口,如图所示。
14
5.1 视图
5.1.2 创建与删除视图
步骤 3
在界面上方表结构中勾选“SNo”及“Grade”复选框,在界面中间列表中,右击列 前的实心三角按钮 ,在弹出的列表中选择“添加分组依据”选项,如图所示。
28
5.2 索引
5.2.1 索引概述
视图的存在无疑简化了查询语句,为 SQL Server 提升了工作效率。但当数据库中存储的数据量 过于庞大时,这种程度的简化就显得微不足道了,而索引正是解决这一问题的另一种数据库对象。
01 索引
索引是一个单独的、存储在磁盘上的数据库结构,它包含所有记录的引 用指针。简单来说,索引就是一个目录。例如,想要在一本字典中查找某个 汉字,如果没有目录就只能一页页翻阅查找,效率十分低下。但若拥有目录, 只需要在目录中查找拼音或是部首,就能够快速准确地找到这个汉字了。
12
5.1 视图
5.1.2 创建与删除视图
02 用SSMS创建视图
在 SSMS 中可按如下步骤创建视图(以实现与例5-2 同样功能为例)。
步骤 1
打开 SSMS,在“对象资源管理器”窗口 列表中依次双击“DESKTOPUBOLCSC”→“数据库”→“SRS”, 在展开的“SRS”列表中右击“视图”, 在弹出的快捷菜单中选择“新建视图”选 项,打开“添加表”对话框(同时底层会 打开“”窗口),如图所示。
目录
5.1 视图 5.2 索引 5.3 实战训练——视图与索引的基本操作
5.1 视图
5.1.1 视图概述
01 视图
视图是一种数据库 对象,它是从一个或多 个表中导出的虚拟表。 简单来说,视图就是一 条 SELECT 语句所对应 的结果集,结果集的名 字就是视图名。
视图本身不包含任 何数据,数据库中存储 的是它的定义,通过视 图看到的数据是存放在 数据表中的。
下面对上述命令进行说明。
8
5.1 视图
5.1.2 创建与删除视图
(1)<视图名>指视图的名称,命名规则与数据表名相同。
(2)(列名)可以全部省略或全部指定。以下情况须指定列名:视图中的某些列需要另外设 置别名;SELECT 语句中含有同名列;SELECT 语句中含有算术表达式、函数等调用的列。
(3)ENCRYPTION 表示视图加密,设置此选项后,将无法修改视图。
户只需查询一个视图,就能够获取到想要查找的信息。
(2)视图提供了对数据的安全保护机制。 在设计数据库应用系统时,视图可以为不同的用户定制不同的视图,使重要数据只出现在特
定的视图中。
(3)视图为数据提供了一定的逻辑独立性。 视图对应了三级模式中的外模式,当数据库的逻辑结构发生变化时,只需要修改视图的定义,
21
5.1 视图
5.1.3 修改与更新视图
步骤 3 步骤 4
打开“添加表”对话框,在“表”选项卡中选中“S”,单击“添加”按钮,然后单 击“关闭”按钮,返回“”窗口。
在界面上方的表结构“S”中勾选“SN”复选框,如图所示。在界面中间的列表中, 将鼠标移到“SN”行上,按住鼠标左键不放,拖动到列表的第二行,调整属性列的 顺序。单击工具栏中的“保存”按钮 ,完成视图的修改。
数据库原理及应用
第五章 视图与索引
本章导读
为应对数据库中频繁的查询操作,SQL Server 提供了视图和索引 以提升查询的效率。视图是查询语句的结果集,它隐藏了底层的表结 构,既简化了数据操作语句又保证了数据库的安全性;索引可以将数 据的逻辑排序存储在物理空间中,在数据量巨大的情况下缩减查询时 间。本章重点介绍视图与索引的基本概念与使用方法,包括使用 SQL 命令和 SSMS 进行创建、删除与修改等操作。
删除,如图所示。 18
5.1 视图
5.1.3 修改与更新视图
01 用SQL命令修改视图
修改视图的 SQL 命令为 ALTER VIEW,具体语法格式如下:
ALTER VIEW <视图名>[(列名)] AS <SELECT语句>
此命令的语法格式与 CREATE VIEW 的语法格式基本类似。
19
5.1 视图
就可以保证用户的外模式不变,对应的应用程序也就不必修改了。 7
5.1 视图
5.1.2 创建与删除视图
01 用SQL命令创建视图
创建视图的 SQL 命令为 CREATE VIEW,具体语法格式如下:
CREATE VIEW<视图名>[(列名)] [WITH[ENCRYPTION][,SCHEMABINDING][,VIEW_METADATA]] AS <SELECT语句> [WITH CHECK OPTION]
学习目标
理解视图的基本概念。 掌握使用SQL命令创建、删除、修改、更新及查询视图的方法。 了解使用SSMS创建、删除、修改及更新视图的操作步骤。 理解索引的基本概念,包括索引的特点、设计索引的注意事项及 索引的类型等。 掌握使用SQL命令创建、删除、修改及查看索引的方法。 了解使用SSMS创建、删除、修改及查看索引的操作步骤。