- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章视图及其
第七章 视图及其用途
7.1 视图的概述
一、视图的概念
Ⅰ)视图是一个虚拟表,并不表示任何物理数据,只是用来查看数据的窗口;
Ⅱ)视图并不是以一组数据的形式存储在数据库中,数据库中只存储视图的定义,而不存储视图对应的数据;
Ⅲ)视图中的数据行和列都来自于基本表,是在视图被引用时动态生成的;
Ⅳ)视图由视图名和视图定义两部分组成。
二、视图的特点
数据保密
优点: 简化查询操作
保证数据的逻辑独立性
有UNION等集合操作符的视图
有GROUP BY子句的视图
缺点: 有AVG、SUM、MAX等函数的视图
使用DISTINCT关键字的视图
连接表的视图
三、查询和视图的主要区别
? 存储方式:视图存储为数据库设计的一部分,而查询则不是
? 更新结果:对视图和查询的结果集更新限制是不同的
? 排序结果:可以排序任何查询结果,但是只有当视图包括TOP子句时才能排序视图
? 参数设置:可以为查询创建参数,但不能为视图创建参数
? 加密:可以加密视图,但不能加密查询
7.2 视图的创建
创建视图的基本语法如下:
CREATE VIEW view_name
[WITH ENCRYPTION]
AS
Select_statement
其中,WITH ENCRYPTION子句对视图进行加密。
【例7.1】 使用Transact-SQL语句在book1表中创建一个名为v_book1的视图。该视图仅查看book1表中“出版社是中国长安”的书的信息。
(1) USE book
GO
CREATE VIEW v_book1
AS
SELECT *
FROM book1
WHERE 出版社=中国长安
(2) 视图创建成功后,用户可以通过查询语句来检查视图是否建立以及视图的返回结果。
USE book
SELECT *
FROM v_book1
【例7.4】 使用Transact-SQL语句在book数据库中创建一个名为v_book2的视图。该视图仅显示book2表中的“书名”和“定价”列。
在SQL Server Management Studio查询窗口中运行如下命令:
USE book
GO
CREATE VIEW v_book2
AS
SELECT 书名,定价
FROM book2
【例7.5】 根据上面的实例分析,使用Transact-SQL语句在book数据库中创建一个名为v_book1_t的视图。要求仅显示书名、定价和作者(如果该书有作者姓名)的信息。
在SQL Server Management Studio查询窗口中运行如下命令:
USE book
GO
CREATE VIEW v_book1_t
AS
SELECT book1.书名,book1.定价,teacher.作者姓名
FROM book1,teacher
WHERE book1.编号=teacher.
编号再运行如下命令:
USE book
SELECT *
FROM v_book1_t
【例7.6】 使用Transact-SQL语句创建视图v_bookbycbs,使其能显示各出版社已出版书的本数
USE book
GO
CREATE VIEW v_bookbycbs
AS
SELECT 出版社,COUNT(*) 出版总数 -------必须指定列名
FROM book1
GROUP BY 出版社
USE book
select *
from v_bookbycbs
视图的限制:
1) 不能将规则或者DEFAULT定义关联于视图。
2) 定义视图的查询中不能含有ORDER BY、COMPUTE、COMPUTE BY子句和INTO关键字。
3) 如果视图中的某一列是一个算术表达式、构造函数或者常数,而且视图中两个或者更多的不同列拥有一个相同的名字(这种情况通常是因为在视图的定义中有一个连接,而且这两个或者多个来自不同表的列拥有相同的名字),用户需要为视图的每一列指定列的名称。
7.3 视图的修改和删除
一、修改视图的基本语法如下:
ALTER VIEW view_name
[WITH ENCRYPTION]
AS
Select_statement
【例7.7】 使用Transact-SQL
您可能关注的文档
最近下载
- 青岛辅警考试题库2024.pdf VIP
- 南方测绘 391全站仪使用说明书.pdf
- 2021年市政工程中级职称-考试习题.docx VIP
- 马鞍山市第二人医院发电机组采购需求.doc VIP
- 2025届高考作文押题:我的眼里装得下山水,却装不下泪水-2025年高考语文作文考前百日备考(主题押题 模板 素材).docx
- 2025年高考考前信息必刷卷数学试卷03新高考Ⅰ卷考试版.docx VIP
- J-BT-9273-1999 电接点压力表.pdf VIP
- 脊柱微创技术的研究进展.doc VIP
- API St 521-2020 泄压和减压系统(中英文对照)(2-1).pdf
- 惠农补贴资金“一卡通”发放.pptx
文档评论(0)