版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
r
主要内容
1视图概述更
2创建视图
3使用视图的优点和缺点
4创建视图示例
5视图信息的查看3及
6视图的修改、删除与重命名:炉
7视图数据的查询、插入、修改与删除
返回目录
3.8.1视图概念
■视图是一种数据库对象,是从一个或者多个数据表或视
图中导出的虚表,视图的结构和数据是对数据表进行查
询的结果。
■视图被定义后便存储在数据库中,通过视图看到的数据
只是存放在基表中的数据。当对通过视图看到的数据进
行修改时,相应的基表的数据也会发生变化,同时,若
基表的数据发生变化,这种变化也会自动地反映到视图
中。
■视图可以是一个数据表的一部分,也可以是多个基表的
联合;视图也可以由一个或多个其他视图产生。
■一旦视图定义后,就可以用select语句象对真实表一样查
询。
3
382创建视图
■2.1使用Transact-SQL语句创建视图
■1.创建视图的SQL语句的语法形式
CREATEVIEW[<owner>.]view_name
[(column_name[,...n])]-
[WITHENCRYPTION]
AS
select_statement
FROMtable_nameWHEREsearch_condition
[WITHCHECKOPTION]一
.其中:
•-viewname:为新创建的视图指定的名字,视图名称必
须符合标识符规则。
•-columnname:在视图中包含的列名也可以在SELECT
语而不指定列名。
4
•-table_name:视图基表的名字。
•-selec^statement:选择哪些列进入视图的SELECT语句。
•-WHEREsearch_condition:基表数据进入视图所应满足
的条件一
•"WITHCHECKOPTION:迫使通过视图执行的所有数
据修改语句必须符合视图定义中设置的条件。
•-WITHENCRYPTION:对视图的定义进行加密。
■2.用SQL语句创建视图的步骤
■在创建视图时,应首先测试SELECT语句以确保能返回正确
的结果。创建视图的步骤如下:
•①编写用于创建视图的SELECT语句。
•②对SELECT语句进行测试。
■③检查测试结果是否正确,是否和预期的一样。
■④创建视图。
5
■3.在创建视图的时候,应该考虑以下因素
•①在CREATEVIEW语句中,不能包括ORDERBY、
COMPUTE或者COMPUTEBY子句,也不能出现INTO
关键字。
•②创建视图所参考基表的列数最多为1024列。
•③创建视图不能参考临时表。
•④在一个批处理语句中,CREATEVIEW语句不能和
其他Transact-SQL语句混合使用。
•⑤尽量避免使用外连接创建视图。
6
工,r
■2.2使用SQLServerManagementStudio创建视图
■假设要从student表中建立一个性别为“男”、包含
student_id>student_name>class_id>sex四列信息的视
So
■f%SQLServerManagementStudio创建视图的具体步骤
■1)首先进入SQLServerManagementStudioo
■2)按顺序展开“数据库”、要创建视图所属的数据库、再
展开“视图”子节点。
■3)右边“摘要”窗口显示的是数据库中已经存在的视图,
右击窗口的空白处,在弹出的快捷菜单上选择“新建视图”
项,系统弹出如图9-1的“添加表”窗口,这个窗口用于为
新创建的视图提供基础数据。该窗口有三个选项卡,表、
视图及函数,这意味着可以以表、视图及表值函数为基础
数据创建新的视图。
7
图1创建视图的窗口
4)点击“添加”,选择表student,再点击“关闭”
系统呈现如图2的视图建立窗口。
8
■在SQL查询条件窗格中输入查询条件语句:
SELECTstudentjd,student_name,classjd,sex
FROMstudentWHEREsex=1
■5)确认结果正确后,点击工具栏上的按钮,保存当前
创建的视图,输入视图的名称,点击“确定”按钮,一个
视图也就创建完成了。
节置预
10
3.8.3使用视图的优点和缺点
■1.视图的优点
•视图可以屏蔽数据的复杂性,简化用户对数据库的操作,
还可以使用视图重新组织数据。
•视图可以让不同的用户以不同的方式看到不同或者相同
的数据集。
•安全保护:视图可以定制不同用户对数据的访问权限。
■2.视图的缺点
•性能降低:
•修改的限制:
3.8.4创建视图示例
■4.1创建水平视图型
■4.2创建投影视图2
・4.3创建联合视图*
■4.4创建包含集合函数的视图
■4.5创建视图的视图*
12
4.1创建水平视图
■视图的常见用法是限制用户只能够存取表中的某些数据行,
用这种方法产生的视图称为水平视图,即表中行的子集。
【例1】在数据库JWGL的表student上创建一个视图
student_view1,视图的数据包括班级号为七99402'或
'g994d3'所有学生的资料。
USEjwgl
GO
CREATEVIEWstudent_view1
AS
SELECT*FROMstudent
WHERE(classjd='g99402'ORclassjd='g99403')
13
4.2创建投影视图
■如果限制用户只能存取表中的部分列的数据,那么,使用这
种方法创建的视图就称为投影视图,即表中列的子集。
【例2】创建一个名为“studdent_view2”的视图,它从数据库
JWGL的student表中查询出性别为“男”的所有学生的姓名、
性别、家庭住址等资料。
USEjwgl
GO
CREATEVIEWstudent_view2
AS
SELECTstudentjdAS学号,student_nameAS姓名,
sexAS性另U,class_id班级,home_addrAS家庭
住址,entrance_dateAS入学时间,birthAS出生卒月
FROMstudent
WHEREsex=1WITHCHECKOPTION
14
4.3创建联合视图
■使用视图的一个原因是简化多表查询,可以生成从多个表中提取
数据的联合视图(joinedView)把查询结果表示为一个单独的“可
见表。
【例3】创建一个名为“student_view3”的视图,它是由表course、
book及classcourse创建的二叶显示“g99402”班所开课程的课
程名、所用教材的教材名、出版社及作髻的视图。
USEjwgl
GO
CREATEVIEWstudent_view3
WITHENCRYPTION/*力口密视图7
AS
SELECTcourse.course_nameAS课程名,book.book_nameAS书名,
book.publish_companyAS出版社,book.authorAS作者
FROMcourse,book,class_course
WHERE(course.bookjd=book.bookJdAND
class_course.courselid=course.coiirsejd)AND
(class^course.classjid='g99402')一
15
44创建包含集合函数的视图
■在视图定义中可以包含GROUPBY和集合函数,从而将这些汇
总数据放到一人“可见”的表中,允许用户对它们做进一步的查
葡。要注意,由现在SELECT子句中的歹。名,要么苞含在集合函
数中,要么包含在GROUPBY子句中。
【例4】使用集合函数SUM和GROUPBY子句以studentcourse表
为基表,创建一个名为“studentsumview4\能显示所看学至
学号和总成绩的视图。一一
USEjwgl
GO
CREATEVIEWstudent_sum_view4(学号,总成绩)
AS
SELECTstudentjd,sum(grade)FROMstudent_course
GROUPBYstudentjd-
注意:与水平视图和投影视图不同,本例产生的视图中的行与基
本表中的行不是一一对应的,它是一些行数据的汇总,因此,不
能通过视图来修改数据。伐
4.5创建视图的视图
■前面创建的视图都是在表的基础上创建的,在视图的基础上
还可以创建视图。
【例5】从视图student_view1创建一个名为
Ustudent_view5\能查询出班级名为“g99402”的所有学
生资料的视图。
USEjwgl
GO
CREATEVIEWstudent_view5
AS
SELECT*FROMstudent_view1
WHEREclassjd='g99402,
GO17
3.8.5查看视图信息
■使用系统存储过程查看视图信息
•sp_help数据库对象名称
•sp_helptext视图(触发器、存储过程)
•spdepends数据库对象名称
■1.使用系统存储过程
•①查看视图的名称、拥有者及创建日期等信息
sp_helpstudent_view1
•②杳看视图的定义脚本
sp_helptextstudent_view1
■③查看数据的来源一
sp_dependsstudent_view1
■2.使用SQLServerManagementStudio查看视
(P164),
节及2
3.8.6视图的修改、删除与重命名
■6.1视图的修改:将
■6.2视图的删除型
■6.3视图的重命名:淤
19
6.1视图的修改
■1.使用SQLServerManagementStudio修改视图(略)
■2.使用Transact-SQL语句修改视图
ALTERVIEWview_name
[(column[,…n])]
[WITHENCRYPTION]
AS
select_statement
[WITHCHECKOPTION]-
■在以上语句的语法中:
•-view_name:被修改的视图的名字。
•-column_name:在视图中包含的列名。
•-WITHCHECKOPTION:迫使通过视图进行数据修改的
所有语句必须符合视图定义中设置的条件。
20
•-table_name:视图基表的名字。
•-WITHENCRYPTION:对包含创建视图的SQL脚本进行
加密。
【例6】修改视图student_view1的定义,使其从student表中查
询出性别为“女”的所有学生的资料。
USEjwgl
GO
ALTERVIEWstudent_view1
AS
SELECT*FROMstudent
WHEREsex=0
21
6.2视图的删除
■删除一个视图,就是删除视图的定义及其赋予的全部权限,而
原先通过视图获得的数据并没有被删除。删除视图参考表的
时候,视图不会被删除,视图必须被单独删除。删除视图有
两种方法,一是使用SQLServerManagementStudio删除,
二是用DROPVIEW语句删除。
■1.用DROPVIEW语句删除视图
■DROPVIEW语句的语法形式如下:
DROPVIEWview_namel,view_name2,...
■使用DROPVIEW语而可以一次册森多个视图。下面的例子
是将student_view5视图删除。
DROPVIEWstudent_view5
22
■2.使用SQLServerManagementStudio删除视图
•①进入SQLServerManagementStudio,展开
相应的服务器组和相应的服务器节点。
•②展开“数据库”节点,然后展开视图所属的
数据库,再展开“视图”子节点。
•③在右侧的视图资料显示窗口上,右击视图
student__view1,在弹出的快捷菜单中,单击“删
除”菜箪命令,再单击“全部除去”按钮即可将
选定的视图删除。
23
6.3视图的重命名
■视图创建后,有时需要对视图重命名,对视图重命
名有两种方法:一是用SQLServerManagement
Studio,二是用系统存储过程spjename。
■1.使用系统存储过程重命名视图
■使用系统存储过程sp_rename对视图重命名的语法
形式是:
sp_renameold_view_name,new_view_name
下面示例是将视图student_view3重命名为
new_student_view3:
sp_renamestudent_view3,new_student_view3
24
■2.使用SQLServerManagementStudio对视图重命名
■使用SQLServerManagementStudio对视图重命名
的步骤如下:
•@iSASQLServerManagementStudio,展开相应的服
务器组和相应的服务器节点。
•②展开“数据库”节点,然后展开视图所属的数据库,
再展开“视图”子节点。
•③在右侧的视图资料显示窗口上,右击要重命名的视图,
在弹出的快捷菜单中,单击“重命名”菜单命令。
•④此时,视图名称变为可编辑状态,输入新的视图名称
并按〈Enter〉键即可。
25
3.8.7视图数据的查询、插入、修改与删除
7.1用T-SQL语句进行视图数据的查询、插入、修改与
删除
■使用T-SQL语句可以进行视图数据的查询、插入、修改与删
除。其语法形式和对表中数据的查询、插入、修改与删除操作
几乎一样。
■1.从视图中查询数据
【例7】从视图student_view2中查询出学生姓名为“钱利”的学
生资料。
USEjwgl
GO
SELECT*FROMstudent_view2
WHERE姓名+钱利,
想一想,为什么WHERE子句不能用student_name=,钱利,?
26
■2.向视图插入数据
【例8】向视图student_view2中插入一行数据。学号、姓
名、性别、班级、家庭住址'入学时间,出生年月分别是
“g9940210",“赵青""男"Jg99402”,“南京中山
北路10号",M999-09-01','1985-01-09'。
USEjwgl
GO
INSERTINTOstudent_view2
(学号,姓名,性别,班级,家庭住址,入学时间,出生年月)
VALUES('g9940210','赵青/,'g99402','南京中山北路
1999-09-0171985-01-09,)
27
■3.修改视图中的数据
【例9】将视图studentview2中“钱利”同学的家庭住址改为
“扬州市南京路8号歹
USEjwgl
GO
UPDATEstudent_view2
SET家庭住址+痂W市南京路8号’
WHERE姓名='钱利,
■4.删除视图中的数据
【例10】将视图student_view2中“钱利”同学的资料删除
USEjwgl
GO
DELETEFROMstudent_view2
WHERE姓名㈢钱利,一
28
工二I
■7.2用SQLServerManagementStudio进行视图数
据的插入、修改与删除
■使用SQLServerManagementStudio对视图插入、修改与
删除数据
•@iSASQLServerManagementStudio,展开相应的
服务器组和相应的服务器节点。
•②展开“数据库”节点,然后展开视图所属的数据库,
再展开“视图”子节点。
•③右击要操作的视图名称,分别单击“打开视图”、
“返回所有行”,便会出现图9-3的视图数据显示窗口。
•插入数据:直接在视图的最后一行进行数据的插入。
・修改数据:直接点击要修改的数据进行修改。
■删除数据:右击图9-3的窗口的要删除数据行的最左列,
在弹出的快捷菜单上点击“删除”
•④操作完成后,点击工具栏上的“!”,确认视图数据
的修改。
29
■7.3修改视图数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海南省学校食堂冷食类食品加工制作流程及要求
- 2023年X射线管投资申请报告
- 2024年庐江县一级造价工程师《土建计量》押题密卷含解析
- 2024年电容器用铌粉铌丝项目发展计划
- 2024年工业仪表项目建议书
- 2024年豆芽机项目合作计划书
- 水利工程砼施工方案
- 2024年集群通信系统(数字)项目建议书
- DB3301-T 0200-2024 科普教育基地管理与服务规范
- 2024年稀土储氢材料项目建议书
- 季度中医护理方案护理效果总结
- 建设项目“三同时”审验制度(3篇)
- 食品化学公共课-水
- 计划管理ppt课件(PPT 29页)
- 高一不等关系与不等式性质
- 招聘求职简历制作表格模板可编辑下载 精品面试简历模板 单页简历稳重大气单页08
- 中建一局PPP简介
- 包装完整性检查
- 三尖瓣修复手术策略ppt课件
- 金属屋面施工技术方案
- 二年级上册数学思维导图课件
评论
0/150
提交评论