资源预览内容
第1页 / 共40页
第2页 / 共40页
第3页 / 共40页
第4页 / 共40页
第5页 / 共40页
第6页 / 共40页
第7页 / 共40页
第8页 / 共40页
第9页 / 共40页
第10页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
,德州学院 计算机系,实验7 视图的创建与使用,数据库技术与应用实验,An Introduction to Database System,主要内容,拓展练习,实验步骤,实验要求,实验目的,An Introduction to Database System,一 实验目的,1了解视图和数据表之间的主要区别。 2掌握在SQL Server Management Studio 中创建、查看、修改和删除视图的方法。 3掌握使用T-SQL语句创建、查看、修改和删除视图的方法。 4了解具有WITH CHECK OPTION子句视图的更新限制。,An Introduction to Database System,二 实验要求,1在SQL Server Management Studio 中创建单表视图。 2使用T-SQL语句创建多表标准视图。 3在SQL Server Management Studio 中创建多表视图。 4使用T-SQL语句对单表视图进行更新。 5建立具有WITH CHECK OPTION的视图并更新视图。 6建立一个分组查询视图并验证其是否可以更新。 7在SQL Server Management Studio中查看、修改、删除视图。 8使用T-SQL语句删除视图。,An Introduction to Database System,三 实验步骤,1在SQL Server Management Studio 中创建一个计算机系学生视图“JsjStuView”,其中包含学生的学号、姓名、性别和专业名称。 (1)在SQL Server Management Studio的对象资源管理器中展开指定的服务器。 (2)打开“数据库”文件夹,打开指定的数据库“ST”。 右击“视图”文件夹,从弹出的快捷菜单中选择“新 (3)视图(N)”选项,如图7-1。,An Introduction to Database System,实验步骤1,(4)打开“添加表”对话框,在对话框中列出了当前数据库中所有的表、视图、函数和同义词,如图7-2。 选择视图的数据源表“StudentInfo”,单击“添加”按钮,进入“视图设计器”界面。界面分为表选择区、列选择区、SQL语句区和视图结果区。 在表选择区右击,在快捷菜单中选择“添加表”,可以继续添加表、视图、函数或同义词。 在列选择区可以选择视图中包含的数据列,也可以在表选择区中选定表的某些列,,An Introduction to Database System,步骤1,这些列会自动出现在列选择区。选中列选择区中“输出”复选框,可以在输出结果中显示该字段;在“筛选器”文本框中输入限制条件,可以限制输出的记录。在定义视图的查询语句中该限制条件对应WHERE子句。 在SQL语句区会自动出现或输入视图对应的查询语句。 在视图结果区可以查看视图中包含的数据。,An Introduction to Database System,步骤-1,(5)在表选择区中的“StudentInfo”中选定输出列Sno、Sname、Sex、Major,并在列选择区对Depart列设定筛选器“=计算机系”。 (6)单击“视图设计器”工具栏中的“执行SQL”按钮,SQL语句区出现创建视图对应的SQL语句,视图对应的数据在视图结果区显示,如图7-3。 (7)单击“文件”菜单中的“保存”菜单项,或单击“标准”工具栏中的按钮,在弹出的“选择名称”对话中,输入视图名称:“JsjStuView”,单击“确定”按钮。,An Introduction to Database System,图7-1 新建视图,An Introduction to Database System,图7-2 “添加表”对话框,An Introduction to Database System,图7-3 视图设计器,An Introduction to Database System,步骤-2,2使用T-SQL语句创建视图“SCGView”,包含选课成绩在=85分的学生的姓名、选课的课程名和成绩。 在查询窗口中输入T-SQL语句: CREATE VIEW SCGView AS SELECT StudentInfo.Sname, SC.Grade, CourseInfo.Cname FROM StudentInfo INNER JOIN SC ON StudentInfo.Sno = SC.Sno INNER JOIN TeachTasksInfo ON SC.TeachTaskID = TeachTasksInfo.TeachTaskID INNER JOIN CourseInfo ON TeachTasksInfo.Cno = CourseInfo.Cno WHERE (SC.Grade 85),An Introduction to Database System,图7-4 SCGView视图,An Introduction to Database System,步骤-3,3. 在视图设计器中创建如步骤2中的视图“SCGView2”。 (1)打开“ST”数据库文件夹,右击“视图”文件夹,在快捷菜单中选择“新建视图”菜单项,出现如图7-2所示的“添加表”对话框。 (2)在“添加表”对话框中,按下Ctrl键,依次选择StudentInfo 、SC 、TeachTasksInfo 、CourseInfo四个表,单击“添加”按钮。 (3)在表选择区中依次选定StudentInfo表中的Sname、CourseInfo表中的Cname和SC表中Grade。,An Introduction to Database System,步骤-3,(4)在列选择区为Grade设定筛选器“85”。 (5)单击“视图设计器”工具栏中的“执行SQL”按钮,SQL语句区出现创建视图对应的SQL语句,视图对应的数据在视图结果区显示,如图7-5。 (6)单击“文件”菜单中的“保存”菜单项,或单击“标准”工具栏中的按钮,在弹出的“选择名称”对话中,输入视图名称:“SCGView2”,单击“确定”按钮。,An Introduction to Database System,步骤-3,图7-5 多表视图,An Introduction to Database System,步骤-4,4通过“JsjStuView”视图,使用T-SQL语句完成操作:插入一条学生记录学号为“201001903059”,姓名为“王振”,性别为“男”,系别为“计算机系”;将王振同学的专业修改成“计算机科学与技术”;将“王振”学生记录进行删除。 (1)在查询窗口中输入语句: INSERT INTO JsjStuView (Sno,Sname,Sex,Depart)VALUES (201001903058,王振,男,计算机系) 语句执行后的StudentInfo表中的数据如图7-6所示。,An Introduction to Database System,步骤-4,(2)在查询窗口中输入语句: UPDATE JsjStuView SET Major=计算机科学与技术 WHERE Sname=王振 语句执行后的StudentInfo表中的数据如图7-7所示。 (3)在查询窗口中输入语句: DELETE FROM JsjStuView WHERE Sname=王振 语句执行后,即可通过视图将StudentInfo表中的相关数据删除。,An Introduction to Database System,图7-6 通过单表视图向基表中插入数据,An Introduction to Database System,一、人工管理阶段 (2),图7-7 通过单表视图对基表中修改数据,An Introduction to Database System,步骤-5,5使用WITH CHECK OPTION子句建立姓名中含有“娟”字的学生视图“JUANStuView”,包含学号、姓名、性别字段;并使用INSERT、UPDATE、DELETE对视图进行更新。 (1)建立视图 在查询窗口中输入如下语句。 CREATE VIEW JUANStuView ASSELECT Sno, Sname, SexFROM StudentInfoWHERE Sname LIKE %娟%WITH CHECK OPTION图7-8 “JStuView”视图数据此时,消息窗口中输出“命令已成功完成”,对“ST”数据库的“视图”进行刷新后,“视图”中增加了“JUANStuView”这一视图。视图中的数据如图7-8。,An Introduction to Database System,步骤-5,图7-8 “JStuView”视图数据,An Introduction to Database System,步骤-5,(2)插入数据 通过“JUANStuView”视图,插入一条学生记录,学号为“201001903058”,姓名为“张力”,性别为“男”。 在查询窗口输入语句如下: INSERT INTO JUANStuView VALUES (201001903058,张力,男) 执行后,在消息输出窗口显示如下信息: 消息550,级别16,状态1,第 1 行,试图进行的插入或更新已失败,原因是目标视图或者目标视图所跨越的某一视图指定了WITH CHECK OPTION,而该操作的一个或多个结果行又不符合CHECK OPTION 约束。语句已终止。,An Introduction to Database System,步骤-5, 通过“JUANStuView”视图,插入一条学生记录,学号为“201001903059”,姓名为“张娟”,性别为“女”。 在查询窗口输入语句如下: INSERT INTO JUANStuView VALUES (201001903059,张娟,女) 执行后,在消息窗口显示“你插入了一条新记录 (1 行受影响)” 对StudentInfo刷新后,新增了一条记录,如图7-9。,An Introduction to Database System,文件系统中数据的结构,图7-9 通过视图插入数据后的StudentInfo表,An Introduction to Database System,步骤-5,(3)修改数据 通过“JUANStuView”视图将学生的姓名由“明梅”改为“明娟”。 在在查询窗口输入语句如下: UPDATE JUANStuView SET Sname=明娟 WHERE Sname=明梅 语句执行,但是消息窗口显示“(0 行受影响)”。 注意:通过视图只能修改视图中的数据,An Introduction to Database System,步骤-5, 通过“JUANStuView”视图将学生的姓名由“张娟”改为“张梅”。 在在查询窗口输入如下语句: UPDATE JUANStuView SET Sname=张梅 WHERE Sname=张娟 语句不能执行,消息窗口显示:消息550,级别16,状态1,第1 行。 试图进行的插入或更新已失败,原因是目标视图或者目标视图所跨越的某一视图指定了WITH CHECK OPTION,而该操作的一个或多个结果行又不符合CHECK OPTION 约束。语句已终止。 注意:通过视图修改数据,只能修改视图中能够查询到的数据,并且修改完成后的数据也能从视图查询到。,An Introduction to Database System,步骤-5, 通过“JUANStuView”视图将学生的姓名由“张娟”改为“张小娟”。 UPDATE JUANStuView SET Sname=张小娟 WHERE Sname
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号