实验六 视图的定义及使用实验 实验报告
- 格式: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列,视图中记录的行数限制由基表中的记录数目决定。
●视图的名称必须遵循标识符的命名规则,且对每个架构都必须唯一,并且该名称不得与该架构包含的任何表的名称相同。
实验七数据库的视图和图表的定义及使用实验本实验需要2学时。
一、实验目的使学生掌握SQL Server中的视图创建向导和图表创建向导的使用方法,加深对视图和SQL Server图表作用的理解。
二、实验内容1 创建、查看、修改和删除视图。
2 创建、编辑和删除数据库图表。
三、实验方法1 创建视图假设在图书.读者数据库中已经建立了图书、读者和借阅3个表.它们的结构为图书(书号,类别, 出版社,作者,书名,定价).借阅(书号,读者书证号,借阅日期).读者(书证号,姓名, 单位,性别,电话).如果要在上述3个表的基础上建立一个视图取名为读者--VIEW、其操作用SQL语句表示为:CREA TE VIEW 读者-VTEWAS SELECT图书.*借阅.*FROM图书,借阅,读者WHERE图书书号=借阅书号AND借阅.读者书证号=读者书证号;下面利用SQLServer2000中提供的视图创建向导,来创建读者--VIEW视图。
l)打开企业管理器窗口确认服务器,打开数据库文件夹。
选中新视图所在的数据库。
2)选择菜单“工具”“向导’.如图3-18所示。
3)在如图3-19所示的向导选择对话框中单击数据库左边的”+’号,使之展开。
选择“建视图向导”项,单击“确定”按钮4)进入创建视图向导后,首先出现的是欢迎进入创建视图向导对话框,其中简单介绍了该向导的功能.如图3-20所示。
单击“下一步”按钮后就会出现如图3-21引所示的选择“数据库名称”对话框。
图3-18选择则向导工具选项图3-19 在向导对话框中选择视图向导图2-20 欢迎进入创建视图向导对话框图1-21 选择数据库名称对话框5)在“选择数据库名称”对话框中选择视图所属的数据库。
本例的数据库为“图书-读者”。
单击“下一步按钮,则进入如图3-22所示的选择表对话框。
6)在选择表对话框中列出了指定数据库中所有用户定义的表和视图。
用户可以从中选择构造视图所需的一个表或多个表(或视图)被选中的表成为构造视图参考表。
贵州大学实验报告学院:计信学院专业:网络工程班级:101 姓名学号实验组实验时间05.30 指导教师罗昊成绩实验项目名称数据库的视图和图表的定义及使用实验目的使学生掌握SQL Server中的视图创建向导和图表创建向导的使用方法,加深对视图和SQL Server图表作用的理解。
实验要求本实验属于验证型实验,通过实验,加强对课堂讲授知识的理解。
开始实验前,必须进行预习,写出实现所有查询要求的SQL语句。
实验过程中,先集中由老师进行具体要求和注意事项的讲解,然后各自独立在机器上完成实验。
实验过程中出现问题,在实验指导老师帮助下解决。
实验原理 1、创建视图假设在图书_读者数据库中已经建立了图书、读者和借阅3个表,它们的结构为:图书(书号,类别,出版社,作者,书名,定价);借阅(书号,读者借书证号,借阅日期);读者(借书证号,姓名,单位,性别,电话)如果要在上述3个表的基础上建立一个视图,取名为读者_VIEW,其操作用SQL语句表示为:CREATE VIEW 读者_VIEW AS SELECT 图书.*,借阅.* FROM 图书,借阅,读者WHERE 图书.书号=借阅.书号 AND 借阅.读者借书证号=读者.借书证号;利用SQL Srever 2000中提供的视图创建向导,来创建读者_VIEW视图。
2、查看和修改视图视图创建好后,就可以利用它进行查询信息了。
如果发现视图的结构不能很好地满足要求,还可以在企业管理器中对它进行修改3、删除视图删除视图的方法是:首先要在企业管理器中,将鼠标指针指向数据库中的视图文件夹,单击右键。
在随后出现的弹出菜单中,选择“删除”项,会出现删除视图对话框。
选中欲删除的视图,单击“全部移出”按钮,被选中的视图就会从视图中被移出。
4、创建关联表假如要在图书_读者数据库中建立一个读者_借阅_图书关系,要求该图表包括图书、借阅和读者三个表,并包括它们之间的“图书.书号=借阅.书号 AND 借阅.读者借书证号=读者.借书证号”的外码与被参照表之间的关联,即用关联表实现上述视图的功能。
实验视图、游标一、实验目的1.掌握创建视图、游标方法。
2.掌握查询视图和游标的使用方法。
二、实验理论基础及教材对应关系1、实验理论基础:(1)视图;三、实验内容与步骤(一)准备工作:首先将数据库附加到服务器上,步骤如下:1、将老师传给你们的“sqlstud”和”goods”文件夹,拷贝到D盘中2、在如下的数据库图上弹鼠标右键,如下图3、在下图中,点击“添加”按钮4、在如下图的进行选择,选择“商品管理_Data.MDF”:并单击“确定”按钮5、在下图中点击“确定”按钮,将商品管理数据库附加到系统中。
5、用与上面类似的方法将“sqlstud”文件夹中的“学籍管理”数据库附加到系统中。
(二)创建视图1、在如下的图中,单击“新建查询”2、在如下的图中,相应处输入代码,并选择对应的数据库,否则出错。
3、创建一个视图,该视图是性别为“男”的学生姓名和年龄。
create view 男生视图asselect 姓名,年龄,性别from 学生where 性别='男'将上述语句运行后,查看“有无“男生视图”,如下图类似,但不同下图4.在“男生视图”上弹鼠标右键,选择“打开视图”。
结果如下所示:将实验结果截图,写入实验报告中5.用类似的方法创建一个“女生视图”,该视图是性别为“女”的学生姓名、年龄、性别。
将实验结果截图,写入实验报告中6.从货物表(编号, 名称, 产地,价格,数量),查询货物名称为“麻辣鱼”的产地和价格。
查询语句如下:use 商品管理Select 名称,产地,价格from 货物表where 名称= '麻辣鱼'参考上题的方式,创建为名称是“麻辣鱼视图”的一个视图,视图中包括名称,产地,价格将实验结果截图,写入实验报告中7.查询货物表中货物名称中以“麻辣”开头的商品名称,产地,价格。
查询语句如下:use 商品管理Select 名称,产地,价格from 货物表where 名称like '麻辣%'go参考上题的方式,创建为名称是“麻辣商品视图”的一个视图,视图中包括名称,产地,价格将实验结果截图,写入实验报告中8、从学生(学号、姓名、年龄、性别),选修(学号、课程号、成绩)中找出成绩>80的学生姓名、课程号和分数Use 学籍管理select 姓名,课程号,成绩from 学生, 选修where 学生.学号=选修.学号and 成绩>80参考上题的方式,创建为名称是“优秀学生视图”的一个视图,将实验结果截图,写入实验报告中9.视图的查看。
实验4视图的定义和使用一实验题目:视图的定义和使用二实验目的:加深对视图的理解,熟练视图的定义、查看、修改等操作三实验内容及要求:(从下面10个题目中选一个)题目一:学生(学号,年龄,性别,系名)课程(课号,课名,学分,学时)选课(学号,课号,成绩)1 根据上面基本表的信息定义视图显示每门课的课名、选课人数、平均成绩2 观察基本表数据变化时,视图中数据的变化。
3 利用视图,查询平均成绩最高的学生。
题目二:图书(书号,书名,价格,出版社)读者(卡号,姓名,年龄,所属单位)借阅(书号,卡号,借阅日期)1 根据上面基本表的信息定义视图显示每本书的书名、借阅次数2 观察基本表数据变化时,视图中数据的变化。
3利用视图,查询借阅次数最多的书。
题目三:商品(编号,品名,进价,库存,售价,厂商编号)顾客(卡号,姓名,电话,积分)厂商(编号,厂址,名称、电话)销售(顾客卡号,商品编号,数量,日期)1 根据上面基本表的信息定义视图显示每种商品的品名、销售数量2 观察基本表数据变化时,视图中数据的变化。
3利用视图,查询销售数量最高的商品。
题目四:图书(书号,书名,作者编号,价格,出版社编号)作者(编号,姓名,电话)出版社(编号,出版社名称,地址)1 根据上面基本表的信息定义视图显示每个出版社的名称、出版书的数量2 观察基本表数据变化时,视图中数据的变化。
3利用视图,查询出版书最多的出版社题目五:零件(编号,名称,颜色,生产车间号)车间(编号,名称,人数,主任)产品(编号,名称,车间编号)使用(产品编号,使用零件编号,个数)1 根据上面基本表的信息定义视图显示每门课的课名、选课人数、平均成绩2 观察基本表数据变化时,视图中数据的变化。
3利用视图,查询选课人数最多的课。
题目六:药品(编号,名称,价格,厂商)处方(药品编号,数量,医生编号)医生(编号,姓名,科室,职称)1 根据上面基本表的信息定义视图显示每种药品的品名、销售金额2 观察基本表数据变化时,视图中数据的变化。
课题:视图的管理实验
【周序】:第八周3-4节课
【课题】:视图的管理实验
知识目标:熟悉视图管理;
思想目标:让学生对视图管理有充分的了解;
能力目标:掌握视图管理;
【教学重点】:
视图管理;
【教学难点】:
视图管理;
【课时】:
2课时
【教学环境】:
机房
【教学方法】:
实验法、演示法、辅导法
【教学内容】:
导入语:视图和索引的管理甚为重要,所以我们要熟练掌握并使用它们。
今天我们进行实践。
实验内容:
运行createtable.txt文件里面的代码;
1、建立视图view1,查询所有职工的职工号、姓名、部门号,并按部门号降序排列;
2、建立视图view2,查询所有职工的姓名、职工号、和平均工资;
3、建立视图view3,查询各部门名和该部门的所有职工平均工资;
4、查看视图view3的属性并进行修改(可根据个人思想修改);
5、对视图view2进行查询操作;
6、对视图view1插入一条合理的记录;
7、修改view1视图使得所有职工姓名为‘same’;
8、删除视图view3;
先上机演示,接着让学生自己动手操作。
在操作期间,进行走动以辅导学生!
【课堂小结】:
今天我们利用上节课所学内容进行了视图的管理实验,希望同学们能理解透彻。
【作业布置】:
做完实验,大家填写实验报告册!。
【教学后记】:
学生对视图的概念理解还不是很透彻,对权限的管理还存在一定不解。
实验6 数据库视图一、实验目的:通过该实验掌握创建视图、使用视图的方法。
二、实验原理视图是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的。
视图并不在数据库中实际存在,行和列数据来自定义视图的查询总使用的表,并且是在使用视图时动态生成的。
创建视图CREATE VIEW视图名(列1,列2...)ASSELECT (列1,列2...)FROM ...[WITH CHECK OPTION]注意1.可以通过视图插入数据,但是只能基于一个基础表进行插入,不能跨表更新数据。
2.视图不是表,不保存数据,只是一张虚拟的表,源表的数据发生变化后,视图的结果也同步发生变化。
3.一般情况下,在创建有条件限制的视图时,加上“WITH CHECK OPTION”命令。
不鼓励直接对视图进行修改(插入数据,更改数据及删除数据)三、实验内容及方法实验平台操作系统:win7,数据库管理平台:mysql5.6或者mysql8,实验用数据库:老师提供的数据库脚本TradeDBSQL.txt1.创建统计每笔订单的订购量的视图CREATE VIEW Order1_tASSELECTOrderID,Sum(ROUND(`OrderDetails`.UnitPrice*Quantity*(1-Discount))) AS SubtotalFROM OrderDetailsGROUP BY OrderID;检查视图结果mysql> select * from Order1_t;mysql> show tables;mysql>desc Order1_t;2. 创建一个视图SalesTotals调用1题的视图CREATE VIEW `SalesTotals`ASSELECTOrder1_t.Subtotal AS SaleAmount,Orders.OrderID,panyName,Orders.ShippedDateFROM CustomersJOIN Orders ON Customers.CustomerID = Orders.CustomerID JOIN Order1_t ON Orders.OrderID = Order1_t.OrderID;1)统计1997年单笔订单超过超过2500的客户公司名,订单编号及订购量提示:select * from `SalesTotals` where SaleAmount>3500 and ShippedDate BETWEEN '1997-01-01' And '1997-12-31';或者select * from `SalesTotals` where SaleAmount>3500 and year(ShippedDate)=1997;2)查询1995年单笔订单超过超过5000的客户公司名,订单编号及订购量3)统计1997年每个客户的订购量提示:group by CompanyName;3.创建视图SalesTotals1997CREATE VIEW `SalesTotals1997`ASSELECTpanyName As 公司名,sum(Order1_t.Subtotal) AS 订购量FROM Customers,orders,order1_twhere Customers.CustomerID=Orders.CustomerID and Orders.OrderID = Order1_t.OrderID AND year(Orders.ShippedDate) =1997group by panyName;4.统计1997年产品销售情况CREATE VIEW `1997年产品销售情况`ASSELECTCategories.CategoryName as 产品类别,Products.ProductName as 产品名称,Sum(ROUND(`OrderDetails`.UnitPrice*Quantity*(1-Discount))) AS 销售量FROM CategoriesJOIN Products On Categories.CategoryID = Products.CategoryIDJOIN `OrderDetails` on Products.ProductID = `OrderDetails`.ProductIDJOIN `Orders` on Orders.OrderID = `OrderDetails`.OrderIDWHERE Orders.ShippedDate BETWEEN '1997-01-01' And '1997-12-31' GROUP BY Categories.CategoryName, Products.ProductName;检查视图:select * from `1997年产品销售情况`(1) 写一个视图名为'1997年各产品类别销售情况', 要求统计1997年各产品类别销售情况提示:对于`1997年产品销售情况` 视图进行按产品类别进一步统计,group by ‘产品类别’select 产品类别, sum(销售量) as '类别销售量'from `1997年产品销售情况`group by 产品类别;(2) 将其改造为统计1995年下半年产品销售情况(3)将`1997年产品销售情况`的视图定义中的join 连接都改为等值连接,改造后的视图命名为`1997年产品销售情况2`例如:from Categories JOIN Products On Categories.CategoryID = Products.CategoryID 改为from Categories, Productswhere Categories.CategoryID = Products.CategoryID检查是否改造成功。
实验六图形块一、实验目的通过实验进一步理解和掌握图块的定义、存盘、插入、释放、更新以及命令的操作。
二、实验内容和要求【内容】1、绘制图6-1、图6-2、图6-3、图6-4中所示图形,并分别定义成块(块名如图所注);2、多重插入WIN1图块(3行2列,行距3 500,列距4 000,使成图6-5。
然后,使用块更新方法,将其更新成图6-6);3、在图6-6中插入块HEIGHT(标高符号);图6-1——图6-4【要求】1、按图6-1、图6-2、图6-3、图6-4中的尺寸1:1绘制出四个图形后,分别定义成内部图形块;2、将图6-5和图6-6画在同一屏幕上;三、实验指导1、进入CAD系统并选择一个样板图,绘制图6-1到图6-4所示的四个图并定义成图块;2、用Limits命令设置绘图界限(18 000,13 500),并用Zoom命令将界限显示在屏幕内。
然后绘制图6-1所示的四个图形(在画图时,尺寸不必标上);3、执行Block命令并分别选择四个图形,然后定义成WIN1,WIN2,DOOR,GEIGHT 图形块;4、在定义成图形块时DOOR的插入基点取在直线的下端点,图块HEIGHT的插入基点取在下部直线的左端点。
图块WIN1的插基点取在左下角点,图块WIN2的插入基点在左边的中点。
操作时,若图表过小,可使用Zoom命令放大;5、调用Minsert命令,多重插入块WIN1(3行2列,行距3 500,列距4 000;插入比例因子均为1),产生图6-5所示结果。
6、调用Insert命令,再插入一个块WIN1(插入点位置任意,插入比例因子均为1)。
然后用Explode命令将其爆炸;7、运用画线命令以及一些编辑命令(如Trim和Erase等),将炸开的图形块WIN1编辑成图6-6中的单图形式(整体尺寸不变);8、再用Block命令重新定义图形块WIN1(块名和插入点不变,将原块覆盖)。
于是6-5中的所有窗户自动变成图6-6中窗户的形式(标高图块是后面加上去的),这就是图块的重新定义;9、调用Insert命令,在窗在左边端插入块HEIGHT,比例统一设为0.5 。
实验六视图的定义及使用实验实验报告实验任务
(一)建立视图(运行并观察结果)
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语句存盘备查。
【实验报告结束!】。