实验六 视图的定义及使用实验 实验报告
- 格式:doc
- 大小:3.11 MB
- 文档页数:8
实验6 视图的应用实验目的学会使用MS SQL SERVER 2000企业管理器和SQL语句创建、修改和删除视图,掌握通过视图向基本表插入、删除、更新数据的方法和步骤。
知识点拨:1.视图是一张虚表2.视图的作用3.视图的种类4.创建视图的SQL语句5.更新视图的SQL语句6.删除视图的SQL语句7.通过视图修改数据库中数据的限制实验内容1.行列子视图的创建2.基于多个基本表的视图的创建3.基于基本表和视图的视图的创建4.带表达式的视图的创建5.分组视图的创建6.删除视图7.修改视图8.通过视图修改数据库数据实验步骤1.选择数据库JX;注意:以下操作均在查询分析器定义,在企业管理器中查看和修改,并请验证结果!2.创建行列子视图1)创建视图WY_Student,用于查询外语系学生的基本信息;CREATE VIEW WY_StudentASSELECT *FROM StudentWHERE Sdept='外国语'2)创建视图SS_Student,用于查询学生的姓名、学号和总学分信息,要求属性列中文显示;CREATE VIEW SS_StudentASSELECT Sname 姓名,SC.Sno 学号,Total 总学分FROM Student3.创建基于多个基本表的视图1)创建视图XSXK,用于查询每个同学的选课信息,包括学号、姓名、课程号、课程名和成绩;CREATE VIEW XSXKASSELECT SC.Sno,Sname,o,Cname,GradeFROM Student,SC,CourseWHERE Student.Sno=SC.Sno AND o=oGROUP BY SC.Sno,Sname,o,Cname,Grade2)创建视图JSSK,用于查询每个教师的任课情况,包括教师号、教师名、职称、所讲授课程的课程号信息,并用中文列出各属性名;CREATE VIEW JSSKASSELECT Teacher.Tno 教师号,Tname 教师名,Tprof 职称,o 课程号,Cname 课程名FROM Teacher,SC,CourseWHERE Teacher.Tno=SC.Tno AND o=oGROUP BY Teacher.Tno ,Tname ,Tprof ,o ,Cname3)基于视图WY_Student和SC,创建视图SSS,用于查询外语系学生的选课情况;CREATE VIEW SSSASSELECT WY_Student.Sno,Sname,CnoFROM WY_Student,SCWHERE SC.Sno=WY_Student.Sno4.带表达式的视图的创建1)创建视图XSNL,用于查询学生的学号、姓名和年龄;CREATE VIEW XSNL(Sno,Sname,Sage)ASSELECT Sno,Sname,year(getdate())-year(Sbirth)FROM Student2)创建视图XSZCJ,用于查询选修了课程的学生的总评成绩,包括学号、姓名、课程号,每门课程的总评成绩计算公式为:成绩*70%+(成绩-10)*20%+10;CREATE VIEW XSZCJ(Sno,Sname,Cno,总评成绩)ASSELECT Student.Sno,Sname,Cno,Grade*0.7+(Grade-10)*0.2+10FROM Student,SCWHERE Student.Sno=SC.Sno3)创建视图JSGZ,用于显示教师的预发工资,包括教工号、姓名、职称和按95%预发的工资额;(含有%的列名字可以用【】)CREATE VIEW JSGZ(Tno,Tname,Tprof,[预发95%工资])ASSELECT Tno,Tname,Tprof,Tpay*0.95FROM Teacher5.分组视图的创建1)创建视图XSPJCJ,用于查询选修了课程的学生的成绩,包括学号、姓名和所选课程的平均成绩;CREATE VIEW XSPJCJ(Sno,Sname,平均成绩)ASSELECT SC.Sno,Sname,A VG(Grade)FROM SC,StudentWHERE SC.Sno=Student.SnoGROUP BY SC.Sno,Sname2)创建视图JSRKMS,用于查询教师的任课门数,包括教工号、教师名和任课门数;CREATE VIEW JSRKMS(Tno,Tname,任课门数)ASSELECT Teacher.Tno,Tname,COUNT(DISTINCT(Cno))FROM Teacher,SCWHERE Teacher.Tno=SC.TnoGROUP BY Teacher.Tno,Tname3)创建视图KCPJCJ,用于查询各门课程的平均成绩,包括课程号、课程名、选课人数、平均成绩;CREATE VIEW KCPJCJ(Cno,Cname,选课人数,平均成绩)ASSELECT o,Cname,COUNT(*),A VG(Grade)FROM Course,SCWHERE o=oGROUP BY o,Cname4)创建视图YXXS,用于查询各门成绩和平均成绩都在85分以上的学生的学号、姓名及平均成绩;CREATE VIEW YXXSASSELECT DISTINCT SC.Sno,Sname,A VG(Grade) 平均成绩FROM Student,SCWHERE Student.Sno=SC.Sno AND SC.Sno NOT IN(SELECT SnoFROM SCWHERE Grade<85)GROUP BY SC.Sno,Sname6.删除视图1)删除视图XSNL;DROP VIEW XSNL7.通过视图修改数据库数据1)查询视图WY_Student,然后使用INSERT…INTO…语句更新WY_Student视图,再次查询该视图以及相关基表,检查执行结果;SELECT *FROM WY_StudentINSERTINTO WY_Student(Sno,Sname)V ALUES ('06122','王五')SELECT *FROM WY_StudentSELECT *FROM Student再次查询的结果为,在基本表Student中插入了该记录,但是在视图WY_Student中并没有插入该记录,因为插入的记录不满足视图WY_Student子查询的条件。
视图的应用实验原理1. 实验背景介绍在计算机科学领域,视图是一种关系的表现形式,它是基于一个或多个表的查询结果。
视图可以简化数据访问,提供了一种灵活的方式来处理和展示数据。
2. 实验目的本实验旨在帮助学生理解视图的概念和应用,并通过实际操作来加深对视图的理解。
3. 实验内容3.1 创建视图首先,我们需要在数据库中创建一些表作为实验的数据源。
然后,使用CREATE VIEW语句来创建视图。
视图的创建可以基于一个或多个表,并可以进行筛选、排序等操作。
CREATE VIEW view_name ASSELECT column1, column2, ...FROM table_nameWHERE condition;3.2 查询视图创建视图之后,我们可以像查询表一样查询视图。
使用SELECT语句来查询视图,可以获得与视图相对应的结果集。
SELECT column1, column2, ...FROM view_nameWHERE condition;3.3 更新视图除了查询视图,我们还可以通过UPDATE、INSERT和DELETE等语句来更新视图。
这些操作实际上是对底层表的操作,但在视图上进行。
当我们更新视图时,底层表的数据也会相应地更新。
3.4 删除视图如果我们不再需要某个视图,可以使用DROP VIEW语句来删除视图。
DROP VIEW view_name;4. 实验步骤以下是一个关于学生信息的示例,我们将基于这个示例来进行实验。
4.1 创建表首先,我们需要创建两个表,一个是学生表(students),另一个是成绩表(scores)。
CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT,gender VARCHAR(10));CREATE TABLE scores (id INT PRIMARY KEY,student_id INT,course VARCHAR(50),score INT);4.2 插入数据然后,向学生表和成绩表中插入一些示例数据。
信息工程学院实验报告课程名称:《数据库原理》Array实验项目名称:视图和索引的创建和使用一、实验目的:(1)掌握创建视图的SQL语句的用法。
(2)掌握修改视图的方法。
(3)熟悉视图更新与基本表更新的区别与联系;认识视图的作用。
(4)熟悉索引的作用,以及不同类型索引的区别。
(5)学会用T-SQL语句对表创建和删除索引二、实验设备与器件Win7 +Sql server 2008三、实验内容与步骤利用备份文件school,还原数据库,然后完成以下实验内容:(1)用T-SQL语句,定义信息系学生基本情况视图V_IS。
(2)用T-SQL语句,将Student,Course 和SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G。
(3)用T-SQL语句,将各系学生人数,平均年龄定义为视图V_NUM_AVG。
(4)用T-SQL语句,定义一个反映学生出生年份的视图V_YEAR。
(5)用T-SQL语句,将各位学生学号、选修课程的门数及平均成绩定义为视图V_AVG_S_G。
(6)用T-SQL语句,将各门课程的课程号、选修人数及平均成绩定义为视图V_AVG_C_G。
(7)用T-SQL语句完成以下视图操作,查看结果,并分析原因。
①通过视图V_IS,将学号为“200215125”的学生姓名更改为“张小立”,并查看结果;②通过视图V_IS,新增加一个学生记录 ('200215126','黄笑',19, '男','IS'),并查看结果。
③通过视图V_IS,新增加一个学生记录 ('200215127','李霞',19, '女','MA'),并查看结果。
④通过视图V_IS,删除学号为“200215126”的学生信息,并查看结果。
⑤通过视图V_S_C_G,将学号“200215122”的姓名改为“刘晓晨”,能否实现?若无法实现说明原因。
实验六视图的定义和使用实验一、实验目的使学生掌握使用SQL语句创建视图方法和企业管理器中使用视图向导创建视图的方法,加深对视图作用的理解。
二、实验内容创建、查看、修改和删除视图。
三、实验步骤1. 利用SQL语句建立、删除视图(1)建立所有学生选课视图,要求包括学生学号、姓名、课程号、课程名、成绩;CREATE VIEW 所有学生选课视图ASSELECT student.sno,sname,o,cname,gradeFROM student,course,scWHERE student.sno=sc.sno AND o=o(2)查询每个同学所有课程的总分、平均分,输出姓名、总分、平均分;SELECT SNAME,SUM(GRADE),AVG( GRADE)FROM 所有学生选课视图GROUP BY SNO(3)查询有多少同学选修了“数学”课程;SELECT COUNT(Sno)FROM 所有学生选课视图WHERE cname='数学'(4)查询选修了五门或以上课程的同学名单;SELECT sno,snameFROM 所有学生选课视图GROUP BY snoHAVING COUNT(cname)>=5(5) 删除上面建立的视图。
drop VIEW 所有学生选课视图2.利用视图向导创建视图下面利用SQL Server 2000中提供的视图创建向导,来创建student_VIEW视图。
1) 打开企业管理器窗口,确认服务器,打开数据库文件夹,选中新视图所在的数据库。
2)选择菜单“工具”一“向导”。
3)在向导选择对话框中,单击数据库左边的“+”号,使之展开。
选择“创建视图向导”项,单击“确定”按钮。
4) 进入创建视图向导后,首先出现的是欢迎进入创建视图向导对话框,其中简单介绍了该向导的功能。
单击“下一步”按钮后,就会出现选择“数据库名称”对话框。
5) 在“选择数据库名称”对话框中,选择视图所属的数据库。
实验六视图的创建和使用开课实验室:指导老师:学院:专业(班级):姓名:学号:一、实验目的与要求1)理解视图的概念2)掌握利用企业管理器和CREATE VIEW命令创建视图方法。
3)熟悉修改视图、查看视图和删除视图的方法。
4)掌握通过视图修改数据表的方法二、实验过程设计及实验步骤创建视图是数据库应用中的常见需求,可以使用企业管理器创建、管理视图,也可以用T-SQL语句创建、管理视图。
1)在企业管理器中创建如下视图:在XSGL数据库中使用表STUDENT和SCORE 创建视图VIEW_STUDENTSCROE,来查询每个学生的姓名和选课情况。
2)在查询分析器中创建视图:将上题用CREATE VIEW 来创建,视图名为VIEW2 程序代码:3)查看视图信息:使用系统存储过程SP_HELP、SP_HELPTEXT、SP_DEPENDS4)删除视图:将视图VIEW2删除.三、SQL调试及结果创建视图是数据库应用中的常见需求,可以使用企业管理器创建、管理视图,也可以用T-SQL语句创建、管理视图。
1)在企业管理器中创建如下视图:在XSGL数据库中使用表STUDENT和SCORE 创建视图VIEW_STUDENTSCROE,来查询每个学生的姓名和选课情况。
2)在查询分析器中创建视图:将上题用CREATE VIEW 来创建,视图名为VIEW2 程序代码:CREATE VIEW VIEW2ASSELECT STUDENT.SNAME,OFROM STUDENT,SCORE3)查看视图信息:使用系统存储过程SP_HELP、SP_HELPTEXT、SP_DEPENDS 执行代码;SP_HELPTEXT VIEW2执行代码:SP_HELP VIEW2执行代码:SP_DEPENDS VIEW24)删除视图:将视图VIEW2删除. 执行语句:USE XSGLDROP VIEW VIEW2四、实验体会通过此次学习我理解视图的概念,掌握利用企业管理器和CREATE VIEW命令创建视图方法。
宁波工程学院电信学院《工程图学基础》实验报告实验名称实验六尺寸标注专业、班级姓名学号实验日期指导教师一、实验目的学会AutoCAD的尺寸标注命令。
二、实验内容1. 掌握CAD的基本标注的设置;2. 要求学生熟悉尺寸标注样式的创建、编辑、线性标注、直径标注、角度标注、对齐标注、连续标注、基线标注、快速标注等标注方式及编辑。
实验题目:1、绘制如下图6-1,并标注尺寸(绘图过程见ppt)图6-12、将实验五的图形(如图6-2)标注尺寸图6-2三、实验步骤及成果题1:绘制如下图6-1,并标注尺寸。
其步骤如下:步骤1: 绘制图6-2,按照实验四的方法绘制。
步骤2: 在图层2上,单击【标注】工具栏中的标注样式按钮,弹出“标注样式管理器”对话框。
步骤3: 在图层2上,单击【新建】,弹出【创建新标注样式】对话框,在【新样式名】文本框中输入所要创建的标准样式的名称:直线1。
步骤3: 在图层2上,单击【继续】,弹出【新建标注样式】对话框。
尺寸线的【基线间距】设为“7”,尺寸界线的【超出尺寸线】设为“2”,【符号与箭头】的【箭头大小】设为“3.5”,【文字】中【文字样式】选数字,文字高度选“3.5”,【从尺寸线偏移】选“1”。
步骤4: 在图层2上,单击【标注】工具栏中的线性和半径按钮,标注步骤1绘制出的图形的主视图,完成图形的绘制。
实验结果,如下所示:题2:将实验五的图形(如图6-2)标注尺寸,其步骤如下:步骤1: 绘制图6-2,按照实验五的方法绘制。
步骤2: 在0图层上,单击【标注】工具栏中的标注样式按钮,弹出“标注样式管理器”对话框;单击【新建】,弹出【创建新标注样式】对话框,在【新样式名】文本框中输入所要创建的标准样式的名称:直线2;单击【继续】,弹出【新建标注样式】对话框。
尺寸线的【基线间距】设为“7”,尺寸界线的【超出尺寸线】设为“2”,【符号与箭头】的【箭头大小】设为“28.5”,【文字】中【文字样式】选数字,文字高度选“28.5”,【从尺寸线偏移】选“1”。
贵州大学实验报告
学院:计算机科学与信息学院专业:计算机科学与技术班级:级计科二班姓名:杨帆学号:
实验六视图的创建与使用
一、实验目的
)理解视图的概念。
)掌握创建视图的方法。
)掌握更改视图的方法。
)掌握用视图管理数据的方法。
二、实验内容
、用语言创建、管理视图(以下题目需提交)
()创建视图
)创建一个名为的水平视图,从数据库的表中查询出性别为“男”的所有学生的资料。
并在创建视图时使用。
(注:该子句用于强制视图上执行的所有修改语句必须符合由语句中的条件。
)
语句为:
*
'男'
)创建一个名为的投影视图,从数据库的表中查询学分大于的所有课程的课程号、课程名、总学时。
语句为:
>
)创建一个名为的视图,能检索出“”班所有女生的学号、课程号及相应的成绩。
语句为:
''
)创建一个名为的视图,能检索出选课学生的学号、姓名、课程名、成绩。
语句为:
)将视图删除。
语句:
()管理视图中的数据
)从视图查询出班级为“”、姓名为“王品”的资料。
语句:
*
'' '王品'
)向视图中插入一行数据。
学号:,姓名:刘丽,班级:,性别:男,
家庭住址:南京,入学时间:2005/09/01,出生年月:1983/01/09,系别:
语句:
('','刘丽','男',1983/01/09,'',2005/09/01,'南京。
实验六图及其应用数据结构实验六图及其应用1、实验目的? 熟练掌握图的两种存储结构(邻接矩阵和邻接表)的表示方法 ? 掌握图的基本运算及应用? 加深对图的理解,逐步培养解决实际问题的编程能力2、实验内容:采用邻接表或邻接矩阵方式存储图,实现图的深度遍历和广度遍历;用广度优先搜索方法找出从一顶点到另一顶点边数最少的路径。
1.问题描述:利用邻接表存储结构,设计一种图(有向或无向),并能够对其进行如下操作:1) 创建一个可以随机确定结点数和弧(有向或无向)数的图; 2) 根据图结点的序号,得到该结点的值;3) 根据图结点的位置的第一个邻接顶点的序号,以及下一个邻接顶点的序号;4) 实现从第v 个顶点出发对图进行深度优先递归遍历; 5) 实现对图作深度优先遍历;6) 实现对图进行广度优先非递归遍历; 编写主程序,实现对各不同的算法调用。
2.实现要求:(以邻接表存储形式为例)编写图的基本操作函数::对图的各项操作一定要编写成为C(C++)语言函数,组合成模块化的形式,每个算法的实现要从时间复杂度和空间复杂度上进行评价。
1)“建立图的邻接表算法”:CreateGraph(ALGraph *G) 操作结果:采用邻接表存储结构,构造没有相关信息的图G2)“邻接表表示的图的递归深度优先遍历算法”:DFSTraverse(ALGraphG,void(*Visit)(char*)) 初始条件:图G 已经存在;操作结果:返回图的按深度遍历的结果。
3)“邻接表表示的图的广度优先遍历算法”: BFSTraverse(ALGraphG,void(*Visit)(char*)) 初始条件:图G 已经存在;操作结果:返回图的按广度遍历的结果。
4)“邻接表从某个结点开始的广度优先遍历算法”:BFS(ALGraph G, int v)初始条件:图G 已经存在;操作结果:返回图从某个结点开始的按广度遍历的结果。
分析: 修改输入数据,预期输出并验证输出的结果,加深对有关算法的理解。
实验六视图和索引实验指导一、视图视图是SQL Server中重要的数据库对象。
视图常用于集中、简化和定制显示数据库的数据信息,为用户从多种角度观察数据库中的数据提方便。
为了屏蔽数据的复杂性、简化用户对数据的操作、控制用户访问数据的权限、保护数据安全,常为不同的用户创建不同的视图。
1. 视图的基本概念视图是从一个或多个表或视图导出的表;其结构和数据是建立在对表的查询基础上的。
和表一样,视图也是包括几个被定义的数据列和多个数据行。
但就本质而言,这些数据列和数据行来源于其所引用的表。
所以,视图不是真实存在的基础表,而是一张虚表。
视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中。
视图一经定义便存储在数据库中,与其相对应的数据并没有像表那样又在数据库中再存储一份。
通过视图看到的数据,只是存放在基本表中的数据。
对视图的操作与对表的操作一样,可以对其进行查询、修改(有一定的限制)、删除。
当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化,同时若基本表的数据发生变化,则这种变化也可以自动地反映到视图中。
可以将任何符合视图创建规定的SELCT语句命名和存储为视图。
在视图中北查询的表称为基表。
视图的常见实例如下。
●一个基表的行或列的于集。
●两个或多个表的合并。
●两个或多个表的联接。
●一个基表的统计总汇。
●另外一个视图的子集。
●视图和基表的混合。
2. 创建视图在SQL Server2008中创建视图,创建者必须拥有创建视图的权限,并且对视图中引用的基表或视图有许可权。
此外,创建视图前还应该注意以下几点:●只能在当前数据库中创建视图。
如果使用分布式查询,视图所引用的基表和视图可以存在于其他数据库或其他服务器中。
●在一个视图中最多引用1024列,视图中记录的行数限制由基表中的记录数目决定。
●视图的名称必须遵循标识符的命名规则,且对每个架构都必须唯一,并且该名称不得与该架构包含的任何表的名称相同。
实验六视图的定义及使用实验实验报告实验任务
(一)建立视图(运行并观察结果)
1.建立信息系学生的视图IS_student。
CREATE VIEW IS_Student
AS
SELECT Sno,Sname,Sage
FROM Student
WHERE Sdept='IS'
2.建立信息系选修了1号课程的学生的视图IS_S1。
CREATE VIEW IS_S1(Sno,Sname,Grade)
AS
SELECT Student.Sno,Sname,Grade
FROM Student,SC
WHERE Sdept='IS'AND
Student.Sno=SC.Sno AND
o='1';
3.建立信息系选修了1号课程且成绩在90分以上的学生的视图IS_S2。
CREATE VIEW IS_S2
AS
SELECT Sno,Sname,Grade
FROM IS_S1
WHERE Grade>=90
4.建立一个反映学生出生年份的视图BT_S。
CREATE VIEW BT_S(Sno,Sname,Sbirth)
AS
SELECT Sno,Sname,2004-Sage
FROM Student
5.将学生的学号及他的平均成绩定义为一个视图S_G。
CREATE VIEW S_G(Sno,Gavg)
AS
SELECT Sno,AVG(Grade)
FROM SC
GROUP BY Sno
6.将课程的课号及选修人数定义为一个视图C_XIU。
CREATE VIEW C_XIU(Cno,Scount)
AS
SELECT Cno,COUNT(*)
FROM SC
GROUP BY Cno
(二)查询视图(运行并观察结果)
1.在信息系学生的视图中找出年龄小于20岁的学生。
SELECT Sno,Sage
FROM IS_Student
WHERE Sage<20
2.查询信息系选修了1号课程的学生。
SELECT IS_Student.Sno,Sname
FROM IS_Student,SC
WHERE IS_Student.Sno=SC.Sno AND
o='1'
3.在S_G中查询平均成绩在90分以上的学生的学号和平均成绩。
SELECT*
FROM S_G
WHERE Gavg>=90
4.在C_XIU中查询选修人数在2人以上的课程号。
SELECT Cno
FROM C_XIU
WHERE Scount>=2
(三)更新视图(运行并观察结果)
【注意】数据未更新前,视图IS_Student内的数据:
1.将信息系学生视图IS_Student中学号为95002的学生姓名改为’刘辰’。
UPDATE IS_Student
SET Sname='刘辰'
WHERE Sno='95002'
数据更新后,视图IS_Studnt内数据:
2.向信息系学生视图IS_S中插入一个新的学生记录,其中学号为95029,姓名为赵新,年龄为20。
INSERT
INTO Student(Sno,Sname,Sage,Sdept)
VALUES('95029','赵新',20,'IS')
3.删除信息系学生视图IS_S中学号为95029的记录。
DELETE
FROM IS_Student
WHERE Sno='95029'
(四)删除视图(运行并观察结果)
【注意】没有删除任何视图前,数据SC内所有已建立的视图:
1.删除IS_S1视图。
DROP VIEW IS_S1
2.删除BT_S视图。
DROP VIEW BT_S
将以上SQL语句存盘备查。
【实验报告结束!】。