数据库的视图定义及维护实验Word格式文档下载.docx
《数据库的视图定义及维护实验Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据库的视图定义及维护实验Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
\数据库\Yangl_Test6_Data.mdf'
SIZE=10,
MAXSIZE=50,
FILEGROWTH=5
)
LOGON
NAME=Yangl_Test6_Log,
\数据库\Yangl_Test6_Log.ldf'
SIZE=5MB,
MAXSIZE=25MB,
FILEGROWTH=4MB
0.2创建数据表
图2:
创建数据表“Yangl_Depts”、“Yangl_Students”“YAngl_Courses”和“Yangl_Reports”
CREATETABLEYangl_Depts
yl_DnoCHAR(5)PRIMARYKEY,
yl_DnameCHAR(20)NOTNULL
CREATETABLEYangl_Students
yl_SnoCHAR(10)PRIMARYKEY,
yl_SnameCHAR(20)NOTNULL,
yl_SsexCHAR
(2),
yl_BirthdayDATE,
yl_DnoCHAR(5),
CONSTRAINTyl_FK_DnoFOREIGNKEY(yl_Dno)REFERENCESYangl_Depts
CREATETABLEYAngl_Courses
yl_CnoCHAR(5)PRIMARYKEY,
yl_CnameCHAR(20),
yl_Pre_CnoCHAR(5),
yl_Pre_CnameCHAR(20),
yl_GreditsINT
CREATETABLEYangl_Reports
yl_SnoCHAR(10),
yl_CnoCHAR(5),
yl_GradeINTCHECK(yl_Grade>
=0ANDyl_Grade<
=100),
PRIMARYKEY(yl_Sno,yl_Cno),
CONSTRAINTStudents_ReportsFOREIGNKEY(yl_Sno)REFERENCESYangl_Students,
CONSTRAINTReports_CoursesFOREIGNKEY(yl_Cno)REFERENCESYangl_Courses
0.3插入数据
图3:
插入数据到表“Yangl_Depts”、“Yangl_Students”“YAngl_Courses”和“Yangl_Reports”中
INSERTINTOYangl_DeptsVALUES('
D01'
'
信息系'
D02'
自动化系'
D03'
数学系'
D04'
通信系'
D05'
电子系'
INSERTINTOYangl_CoursesVALUES('
C01'
英语'
NULL,NULL,4)
C02'
数据结构'
C05'
C++'
2)
C03'
数据库'
C04'
DB_设计'
3)
NULL,NULL,3)
C06'
网络原理'
C07'
操作系统'
C08'
高等数学'
INSERTINTOYangl_StudentsVALUES('
2015001'
刘晨'
男'
1995-10-12'
2015002'
邓勇武'
1997-08-21'
2015003'
田彪'
1998-02-11'
2015004'
李涛'
1996-12-22'
2015005'
杨钊'
1999-10-31'
2015006'
张业成'
1994-08-08'
2015007'
黄伊汶'
女'
1995-12-12'
2015008'
杨钰莹'
1997-03-21'
2015009'
肖雅芝'
1998-04-11'
2015010'
李若彤'
1996-11-22'
2015011'
杨爱瑾'
2015012'
朱茵'
1995-07-08'
INSERTINTOYangl_ReportsVALUES('
92)
84)
90)
94)
82)
72)
75)
80)
100)
2.实验内容
本实验的主要内容是:
1)创建和删除视图
2)查询和更新视图
具体完成以下例题。
例1建立信息系学生的视图
建立信息系学生的视图“Xinxi_Students”
CREATEVIEWXinxi_Students
AS
SELECT*
FROMYangl_Students
WHEREyl_DnoIN
SELECTyl_Dno
FROMYangl_Depts
WHEREyl_Dname='
例2建立信息系学生的视图,并要求进行修改和插入操作时仍须保证该视图只有信息系的学生。
图4:
建立信息系学生的视图“Xinxi2_Students”
CREATEVIEWXinxi2_Students
WITHCHECKOPTION
例3建立信息系选修了’C01’号课程的学生视图
图5:
建立信息系选修了’C01’号课程的学生视图“Xinxi3_Students”
CREATEVIEWXinxi3_Students
)ANDEXISTS
SELECTyl_Cno,yl_Sno
FROMYangl_Reports
WHEREyl_Cno='
ANDYangl_Reports.yl_Sno=Yangl_Students.yl_Sno
例4建立信息系选修了’C01’号课程且成绩在90分以上的学生视图
图6:
建立信息系号课程的学生视图“Xinxi4_Students”
CREATEVIEWXinxi4_Students
ANDYangl_Reports.yl_Sno=Yangl_Students.yl_SnoANDyl_Grade>
=90
例5定义一个反映学生出生年份的视图
图7:
定义一个反映学生出生年份的视图“Students_birth”
CREATEVIEWStudents_birth(yl_Sno,yl_Sname,yl_Birthday)
SELECTyl_Sno,yl_Sname,DATENAME(yyyy,GETDATE())-YEAR(yl_Birthday)
3.实验步骤
1.创建视图
下面利用了SQLServer中提供的视图创建向导,来实现例3(建立信息系选修了1号课程的学生视图)。
1)打开ManagementStudio窗口,确认服务器,打开数据库文件夹,选中新视图所在的数据库(此例为学生选课数据库)。
2)选择菜单:
[工具]|[向导]
3)在如图1所示的向导选择对话框中,单击数据库左边的“+”号,使之展开。
选择“创建数据库向导”项,单击“确定”按键。
图1向导选择对话框
4)进入创建视图向导后,首先出现的是欢迎使用创建视图向导对话框,其中简单介绍了该向导的功能。
单击“下一步”后,就会出现选择数据库对话框。
5)在选择数据库对话框中,选择视图所属的数据库。
本例的数据库为“学生选课”。
单击“下一步”按键,则进入选择表对话框。
6)在选择表对话框中,列出了指定数据库中所有用户定义的表。
用户可以从中选择构造视图所需的一个表或者多个表,被选中的表成为构造视图的参考表。
选择构造视图参考表的方法是:
用鼠标单击表后的“包含在视图中”列,使复选框为选中状态。
本例的数据库中只有学生表和选课表,它们都应当被选中。
单击“下一步”按键,则进入选择对话框。
7)列选择对话框中以表格形式列出了创建视图参考表的全部属性,每个属性占表的一行,创建视图参考属性可以在表格中选出。
选择视图参考属性的方法是用鼠标单击属性名后边的“选择列”列,使复选框为选中状态。
本例中学生.学号,学生.姓名和选课.成绩属性要被选中。
单击“下一步”按键,进入创建视图的定义限制对话框,如图2所示。
图2定义限制对话框
8)在定义限制对话框中,输入表的连接和元组选择条件。
本例输入“所在系=’信息系’AND学生.学号=选课.学号AND选课.课程号=‘C01’”。
单击“下一步”按键,出现视图名对话框。
9)在输入视图名对话框中输入所建视图的标识名。
本例的视图名为“信息系—选课1”。
单击“下一步”按键,则出现视图创建完成对话框。
在完成对话框中给出了根据前面对话框输入的内容译成的SQL语句。
您可以认真阅读该SQL语句,如果发现与要求有不符合之处可以直接进行修改。
确认无误后单击“完成”按钮。
随后出现一个通知用户已成功创建视图的信息框,单击“确认”按钮后,整个创建视图工作就完成了。
2.查看和修改视图
视图创建好后,就可以利用它进行查询信息了。
如果发现视图的结构不能很好地满足要求,还可以在ManagementStudio对它进行修改。
在ManagementStudio中修改视图结构需要首先选择服务器,数据库,并使数据库展开,然后用鼠标右击要修改的视图,在弹出的菜单上选择“设计视图”项,则弹出一个视图设计对话框,如图3所示。
当对其修改完毕后关闭窗口,新的视图结构就会取代原先的结构。
4.实验体会
主要学习到了视图的创建,题目非常简单。
基本上是在第一个视图的基础上增加查询条件。
如果子查询语句不止一个的话不能用IN,要用EXISTS,其他的题目书上都有。
因为是很久之前上过的课,所以有一点忘记了。
实验过程中也有一些忘记或者是写错的情况,所以要删除视图,这个和数据表的删除差不多。
格式为DROPVIEW[视图名字]。
如果要查询所创建的视图是否正确可以用查询语句,如上面题目截图。
整个过程可以按照数据表的方式进行思考和改变。
3.将查询需求用SQL语言表示;
在SQL查询分析的输入区中输入SQL查询语句;
设置查询分析的结果区为StandardExecute(标准执行)或ExecutetoGrid(网格执行)方式;
发布执行命令,并在结果区中查看查询结果;
如果结果不正确,要进行修改,直到正确为止。