视图.docx

上传人:b****7 文档编号:9831522 上传时间:2023-02-06 格式:DOCX 页数:13 大小:873.29KB
下载 相关 举报
视图.docx_第1页
第1页 / 共13页
视图.docx_第2页
第2页 / 共13页
视图.docx_第3页
第3页 / 共13页
视图.docx_第4页
第4页 / 共13页
视图.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

视图.docx

《视图.docx》由会员分享,可在线阅读,更多相关《视图.docx(13页珍藏版)》请在冰豆网上搜索。

视图.docx

视图

第八章视图及其应用

一、视图综述

1、定义

(1)从一个或多个表中导出的表(所涉及的表称为基表)。

它是一个虚拟表,其内容由查询语句定义生成。

(2)视图的内容生成:

a)基表的投影或选择

b)两个或多个基表的连接

c)基表和视图的组合

2、分类

●标准视图——具有结构和数据,包含一系列带有名称的列和行数据。

●分区视图——在一台或多台服务器间水平连接一组成员表中的分区数据。

●索引视图——带存储数据的视图。

3、作用

●集中数据,满足不同用户对数据的不同要求。

●简化复杂查询的结构

●对数据提供安全保护

●便于组织数据导出

●跨服务器组合分区数据

4、缺点:

当更新视图中的数据时,实际上是对基本表的数据进行更新。

当从视图中插入或者删除时,情况也是这样。

然而,某些视图是不能更新数据的。

二、视图的操作

操作名称

T-SQL

备注

创建视图

CREATEVIEW视图名

ASSELECT_statement

1、创建视图应该注意的问题

●只能在当前数据库中创建视图

●在一个视图中最多引用1024列,视图中记录的行数限制由基表中记录数目决定。

●视图名称符合命名规则

●视图中的列名一般继承及表中的列名

●可以在视图上创建视图

●不能在临时表上创建视图,也不能创建临时视图。

●定义视图的查询语句中不能包含ORDERBY,COMPUTEBY子句和INTO关键字。

视图的使用

通过视图查数据

SELECT*FROM视图文件

通过视图改数据

插入新记录

INSERTINTO表VALUES值

通过视图修改数据注意:

●如果修改由2个或以上基表得到的视图,必须进行多次修改,每次修改只能影响一个基表;

●不能修改那些通过计算得到结果的列

●在基表的列中修改的数据必须符合列的约束条件。

修改

UPDATE视图名SET修改的内容

删除

DELETEFROM视图名称WHERE条件

视图的修改

重命名

SP_RENAME原来名字,新名字

修改视图定义

ALTERVIEW视图名ASSELECT

视图定义信息的查询

EXECSP_HELPTEXT视图名

视图的删除

DROPVIEW视图名

例题1创建一个视图v_成绩1,可以查看班级代码为'010101001'班的学生的学号,姓名,课程名,成绩。

(学生A,课程注册B,课程C)

usestudent

go

CREATEVIEWv_成绩1

ASSELECTA.学号,A.姓名,C.课程名,B.成绩

FROM学生ASA

JOIN课程注册ASBONA.学号=B.学号

JOIN课程ASCONB.课程号=C.课程号

whereA.班级代码='010101001'

go

例题2视窗操作创建一个视图“v_成绩2”,可以查看全体学生的学号,姓名,课程名,成绩。

例题3以“v_成绩2”为试图基础,创建“V_某班成绩汇总”视图,使用此视图可以查询学生的学号、姓名、和总成绩。

usestudent

go

CREATEVIEWv_成绩汇总

ASSELECT学号,姓名,sum(成绩)as总成绩

FROMv_成绩2

groupby学号,姓名

go

例题4查看视图“v_成绩2”中的信息。

usestudent

go

SELECT*

FROMv_成绩2

go

例题5为视图“v_成绩2”中添加一条记录。

INSERTINTOv_成绩2VALUES(大学物理,90,001012002010,张明)

例题6改名

SP_RENAMEV_成绩,V_成绩

Go

例题7对于视图“v_成绩1”中的条件修改为:

性别为女。

usestudent

go

ALTERVIEWv_成绩

asselectA.学号,A.姓名,C.课程名,B.成绩

FROM学生ASA

JOIN课程注册ASBONA.学号=B.学号

JOIN课程ASCONB.课程号=C.课程号

whereA.性别='女'

go

三、练习题

1.在STUDENT库中以“学生”表为基础,建立一个名为“V_经济管理系学生”的视图(注:

经济管理系的系部代码为“02”)。

在使用该视图时,将显示“学生”表中的学号,姓名,性别,出生日期,专业代码,系部代码。

2.使用视图“V_经济管理系学生”查询“专业代码”为“0102”的学生的姓名,学号,专业代码。

usestudent

go

select学号,姓名,专业代码

fromV_经济管理系学生

where专业代码='0102'

go

3.向视图“V_经济管理系学生”中添加数据(‘010*********’,‘张三’,‘女’,’02’)

usestudent

go

insertintoV_经济管理系学生

values('张三','010101001110','女','','','02')

go

4、修改视图“V_经济管理系学生”中,将学号为‘010*********’的出生日期改为1988-12-12

usestudent

go

updateV_经济管理系学生

set出生日期='1988-12-12'where学号='010101001005'

go

5.视图“V_经济管理系学生”中,删除学号为‘010*********’的学生信息。

usestudent

go

deletefromV_经济管理系学生

where学号='010101001001'

go

6.在查询分析器中使用更改视图的命令将视图“V_经济管理系学生”更名为“V_经管系男生”。

usestudent

go

sp_renameV_经济管理系学生,V_经管系男生

go

 

7.修改“V_经管系男生”视图的内容。

视图修改后,在使用该视图时,将得到经济管理系所有“男”学生的信息。

usestudent

go

select*fromV_经管系男生

where性别='男'

go

8.删除视图“V_经管系男生”。

usestudent

go

dropviewV_经济系男生

go

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 制度规范

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1