数据库实验5 视图操作
视图的使用---实验报告5

select学生档案.学号,姓名,性别,专业,班级,学生成绩表.课程ID,总成绩
from学生档案,学生成绩表
where学生档案.学号=学生成绩表.学号and学生档案.学号in(
select学号
from学生成绩表
where总成绩>=85)
运行结果如图所示:
五、教师评语பைடு நூலகம்
set课程名称='逻辑学'
where课程ID='RX0002'
运行结果如图所示:
6_4_10视图的删除
drop view管理学课程信息简表
运行结果如图所示:
6_4_11使用“企业管理器”创建视图
运行结果如图所示:
四、出现的问题及解决方案
在基于多张表嵌套查询的视图中,要对“学生成绩优秀表”进行查询,按书本上代码进行查询时出错,代码为:
6_4_4基于多张表连接的视图
create view学生课程成绩表
as
select学生档案.学号,姓名,性别,专业,班级,学生成绩表.课程ID,总成绩
from学生档案,学生成绩表
where学生档案.学号=学生成绩表.学号
运行结果如图所示:
6_4_5基于多张表嵌套查询的视图
create view学生成绩优秀表
as
select学生档案.学号,姓名,性别,专业,班级,学生成绩表.课程ID,总成绩
from学生档案,学生成绩表
where学生档案.学号in(
select学号
from学生成绩表
where总成绩>=85)
运行结果如图所示:
6_4_6含有虚字段的视图
create view学生期末平均成绩表
数据库实验五:视图的应用

数据库实验五:视图的应用数据库实验五:视图的应用一、实验目的与要求:1.实验目的(1)理解视图的概念;(2)掌握视图的使用方法。
(3)理解视图和基本表的异同之处。
2.实验要求(1)参照实验五中完成的查询,按如下要求设计和建立视图:1)基于单个表按投影操作定义视图。
2)基于单个表按选择操作定义视图。
3)基于单个表按选择和投影操作定义视图。
4)基于多个表根据连接操作定义视图。
5)基于多个表根据嵌套操作定义视图。
6)定义含有虚字段的视图。
(2)分别在定义的视图设计一些查询(包括基于视图和基本表的连接或嵌套查询)。
(3)在定义的视图上进行插入、更新和删除操作,分情况讨论哪些操作可以成功完成,哪些操作不能完成,并分析原因。
(4)在实验报告中要给出具体的视图定义要求和操作要求,并针对各种情况做出具体的分析和讨论。
二、实验内容1、实验原理(1)视图是用SQL SELECT查询定义的,创建视图命令格式如下:CREATE VIEW <视图名> AS(2)删除视图的命令格式如下:DROP VIEW <视图名>2、实验步骤与结果(1)调出SQL Server2005软件的用户界面,进入SQL SERVERMANAGEMENTSTUDIO。
(2)输入自己编好的程序。
(3)检查已输入的程序正确与否。
(4)运行程序,并分析运行结果是否合理和正确。
在运行时要注意当输入不同的数据时所得到的结果是否正确。
(5)输出程序清单和运行结果。
(1)参照实验五中完成的查询,按如下要求设计和建立视图:1)基于单个表按投影操作定义视图。
create view v asselect教师编号,姓名from教师2)基于单个表按选择操作定义视图。
create view v_order asselect*from教师where职称='教授'3)基于单个表按选择和投影操作定义视图。
create view v_cuss asselect教师编号,姓名,职称from教师where职称='教授'4)基于多个表根据连接操作定义视图。
数据库的视图操作实验报告

实验(四)数据库的视图操作实验一、实验目的和要求(1)掌握SQL Server中的视图创建向导和图表创建向导的使用方法;(2)加深对视图和SQL Server图表作用的理解。
(3)掌握数据库安全性的操作方法。
二、实验内容和原理1. 基本操作实验(1)在SQL Server企业管理器中调出Create View Wizard(创建图表向导),按下列Transact-SQL描述的视图定义,创建借阅_计算机图书视图。
CREATE VIEW 借阅_计算机图书AS SELECT 图书.*,借阅.*FROM 图书,借阅WHERE图书.编号=借阅.书号AND图书.类别=‘计算机’(2)在SQL server企业管理器中调出Create View Wizard(创建图表向导),完成在图书-读者数据库中建立一个图书_借阅图表操作。
要求该图表包括图书和借阅两个表,并包括图书与借阅之间的“图书.书号=借阅.书号”外码与被参照表之间的关联。
(3)查看上述实验结果。
如果结果有误,予以纠正。
2. 提高操作实验在学生-课程数据库中用Transact-SQL语句描述下列视图定义。
(1)从学生表中建立查询所有男(女)生信息的视图STU_SEX。
视图的列名为SNO、SNAME、SSEX和SAGE。
(2)从课程表中建立查询所有课程先修课信息的视图课程_PRE。
视图的列名为课程号、课程名称和先修课名称。
(3)从选修表中建立查询成绩大于等于80信息的视图STU_CJ1。
视图的列名为学号、课程号和成绩。
(4)从学生、选修和课程三个表建立查询学生选修情况的视图STU_CJ2。
视图的列名为姓名、课程名称和成绩。
(5)从学生、选修和课程三个表建立查询学生选修情况并且成绩小于80的视图STU_CJ3。
视图的列名为姓名、课程名称和成绩。
(6)利用Transact-SQL命令修改视图STU_SEX。
把视图的列名改为学号、姓名、性别和年龄,把加上“WITH CHECK OPTION”选项。
数据库实验5 多表查询及视图

实验五:多表查询及视图一、实验目的1.掌握SELECT语句的基本语法和查询条件表示方法;2.掌握数据表的连接查询、嵌套查询、集合查询的使用方法。
3.掌握创建及管理视图的方法;二、实验学时2学时三、实验要求1.了解SELECT语句的基本语法格式和执行方法;2.掌握连接查询、嵌套查询和集合查询的语法规则;3.掌握使用界面方式和命令方式创建及管理视图;4.完成实验报告;四、实验内容1.以实验3数据库为基础,请使用T-SQL 语句实现进行以下操作:1)查询选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修课程号及成绩;2)查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息;3)按照“学号,姓名,所在院系,已修学分”的顺序列出学生学分的获得情况。
其中已修学分为考试已经及格的课程学分之和;4)查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;5)查询只被一名学生选修的课程的课程号、课程名;6)使用嵌套查询出选修了“数据结构”课程的学生学号和姓名;7)使用嵌套查询查询其它系中年龄小于CS系的某个学生的学生姓名、年龄和院系;8)使用ANY、ALL 查询,列出其他院系中比WM系所有学生年龄小的学生的姓名;9)使用集合查询查询选修1号课程同时选修2号课程的同学的学号与姓名;2.以实验数据库为基础数据,利用对象资源管理器创建以下视图:1)创建所有学生学号、姓名及年龄的信息视图v_stu_info2)创建CS系学生基本信息视图v_stu_cs3)创建选修课成绩在80分以上的学生的信息视图v_stu_80,包括学生基本情况及成绩。
3. 以实验数据库为基础数据,请使用T-SQL语句完成以下内容,并将SQL语句写在实验报告册中:1) 创建v_CS视图,包括CS系各学生的学号、姓名及年龄,要求进行修改和插入操作时仍需保证该视图只有CS系的学生;2) 创建v_CS_age20视图,包括CS系学生年龄在20岁以上的基本信息;并保证对视图文本的修改都要符合年龄大于20这个条件。
数据库实验报告视图

大连海事大学数据库原理课程实验大纲实验名称:实验五视图实验学时: 2适用专业:智能科学与技术实验环境: Microsoft SQL server 20141实验目的(1)掌握SQL视图语句的基本使用方法,如CREATE VIEW、DROP VIEW。
(2)掌握视图更新、WITH CHECK OPTION等高级功能的使用。
2实验内容2.1 掌握SQL视图语句的基本使用方法(1)创建视图(省略视图列名)。
(2)创建视图(不能省略列名的情况)。
(3)删除视图(RESTRICT / CASCADE)。
2.2 掌握视图更新和WITH CHECK OPTION的高级使用方法(1)创建视图(WITH CHECK OPTION),并利用INSERT、DELETE和UPDATE语句加以验证。
(2)创建一个行列子集可更新视图,并利用INSERT、DELETE和UPDATE语句加以验证。
(3)创建一个不可能更新的视图,并利用更新语句验证该视图不可更新。
3实验要求(1)深入复习教材第三章SQL有关视图语句。
(2)根据书上的例子,针对TPCH数据库模式设计各种视图语句,每种类型视图语句至少要设计一个,描述清楚视图要求,运行你所设计的视图语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。
也可以按照附1所列示例做实验。
(3)实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。
(4)思考题:KingbaseES把视图的定义存储在那个系统表中?如何查看某个视图的定义?4实验步骤4.1 掌握SQL视图语句的基本使用方法(1)创建视图(省略视图列名)。
(2)创建视图(不能省略列名的情况)。
(3)删除视图(RESTRICT / CASCADE)。
4.2 掌握视图更新和WITH CHECK OPTION的高级使用方法(4)创建一个行列子集可更新视图,并利用INSERT、DELETE和UPDATE语句加以验证。
(5)创建视图(WITH CHECK OPTION),并利用INSERT、DELETE和UPDATE语句加以验证。
实验五 视图的创建和使用

实验五视图的创建和使用5.1概述5.1.1任务一理解视图的概念视图是一个虚拟表,其内容由查询定义。
同真实的表一样,视图包含一系列带有名称的列和行数据。
但是,视图并不在数据库中以存储的数据集合形式存在。
行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
对其中所引用的基表来说,视图的作用类似于筛选。
定义视图的筛选可以来自当前或其他数据库的一个或多个表,或者其他视图。
视图被定义后便存放在数据库中,对视图中的数据的操作与对表的操作一样,可以对其进行查询、修改和删除,但对数据的操作要满足一定的条件。
当对视图所看到的数据进行修改时,相应的基表的数据也会发生变化,同时,若基表的数据发生变化,这种变化也会自动地反映到视图中。
5.1.2任务二理解视图的优点用户可以根据自己的实际需要创建视图,使用视图有很多优点,主要有以下几点:1、简单性视图可以屏蔽数据的复杂性,简化用户对数据库的操作。
使用视图,用户可以不必了解数据库的结构,就可以方便地使用和管理数据。
那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。
2、逻辑数据独立性视图可以使应用程序和数据库表在一定程度上独立。
如果没有视图,应用一定是建立在表上的。
有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。
3、安全性通过视图用户只能查询和修改他们所能见到的数据。
数据库中的其他数据则既看不见也取不到。
5.2创建视图创建视图的方法有三种:在创建视图前请考虑如下原则:只能在当前数据库中创建视图.视图名称必须遵循标识符的规则,且对每个用户必须为唯一.此外,该名称不得与该用户拥有的任何表的名称相同.可在其他视图和引用视图的过程之上建立视图.SQLServer 2000允许嵌套多达32级视图若要创建视图,数据库所有者必须授予用户创建视图的权限,并且用户对视图定义中所引用的表或视图要有适当的权限5.2.1任务一使用企业管理器创建视图使用企业管理器创建视图的具体操作步骤如下:1、打开企业管理器窗口,打开“新建视图”对话框。
实验五数据库的索引和视图

研究与
探讨
评语
如图,表bb多了Bb4
5.用Create View对表Bb的Bb1和Bb4建立一个视图Viewbb,字段名为Viewbb1和Viewbb2.
如图,视图viewbb已建立
6.Drop View删除视图Viewbb.
如图,viewbb已删除
7.用Create Index对表Bb的Bb3字段建立一个升序索引,索引名Indexbb.
大学实验报告五2014年4月1日专业年级2012级信计专业1班学学号201221143025成成绩姓姓名课程名称数据库管理系统实验名称数据库的索引和视图实验目的和要求掌握查询分析器中用ddl语言进行对索引视图的增加删除和改动
大学实验报告(五)
2014年4月1日
专业年级
2012级
信计专业(1)班学号201源自21143025Varchar
20
字段1
Aa2
Int
字段2
Aa3
Dec
10,2
字段3
2.用Create Table建表bb,表结构如下所示:
字段名
类型
长度
含义
Bb1
Varchar
30
字段1
Bb2
Int
字段2
Bb3
Dec
6,2
字段3
如图,表aa bb已建立完成
3.用Drop Table删除表aa.
如图,表aa已删除
4.用Alter Table修改表bb,添加一个字段Bb4,类型Varchar,长度20.
成绩
姓名
课程名称
《数据库管理系统》
实验名称
数据库的索引和视图
实验 视图、索引与数据库关系图

实验名称:实验五视图、索引与数据库关系图班级学号姓名日期所在院系指导老师成绩一、试验目的使学生掌握SQL Server中的视图创建、查看、修改和删除的方法;索引的创建和删除的方法;数据库关系图的实现方法。
加深对视图和SQL Server数据库关系图的理解。
二、实验内容(1)创建、查看、修改和删除视图。
(2)创建、删除索引文件。
(3)创建数据库关系图。
三、试验步骤1)视图操作(1)创建视图。
使用SQL Server Management Studio直接创建,步骤如下:1.单击数据库前面的+号,然后再单击“学生选课”数据库前面的+号,右击“视图”,在弹出的快捷菜单中选择“新建视图”命令,弹出“添加表”对话框。
如图5.1所示图5.1 “添加表”对话框2.在“添加表”对话框中,添加视图数据来源的表,这里添加三张表,分别是student、course和sc表。
添加表后,单击添加表对话框中的“关闭”按钮,出现创建视图界面。
如图5.2所示图5.2添加字段前的效果图3.如果要在视图中显示某些表的某个字段,只需单击其字段前的复选框即可,同时在中间列中会显示该字段,在代码区中会看到具体实现的代码。
4.如果要查看视图,单击常用工具栏中的“执行”按钮,就可以看到视图的数据显示,如由字段student.sno、sname、cname、grade生成的视图效果。
如图5.3所示图5.3 生成视图效果图5.在创建视图中还可以为字段添加列名、进行排序、添加多个筛选条件。
6.单击常用工具栏中的“保存”按钮,就可以弹出保存视图提示对话框,输入视图名字即可,为view_stu_grade。
(2)修改视图。
视图创建好后,就可以利用它进行查询信息了。
如果发现视图的结构不能很好的满足要求,还可以对它进行修改。
使用SQL Server Management Studio直接修改,步骤如下:1.在SQL Server Management Studio中,选择服务器、数据库、并使数据库展开,再单击“视图”前面的+,就可以看到已存在的视图了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五视图操作(2学时)
【实验目的】
1. 学会使用SQL语句创建和使用视图,加深对视图和SQL Server基表作用的理解。
2. 了解数据库安全控制的机制,以及自主存取控制方法。
【实验要求】
1.掌握创建、修改视图的SQL语句的用法。
2.掌握使用企业管管理器创建、修改视图的方法。
3.掌握查看视图的系统存储过程的用法。
4.掌握视图的使用方法。
5.掌握SQL有关用户、角色及操作权限的管理方法。
【实验内容】
一、视图操作
(一)定义视图
以Student 、Course表为基础完成以下视图定义。
1.定义计算机系学生基本情况视图V_Computer。
2.将Student Course 和Student_course表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G。
3.将各系学生人数,平均年龄定义为视图V_NUM_AVG。
4.定义一个反映学生出生年份的视图V_YEAR。
5.将各位学生选修课程的门数及平均成绩定义为视图V_A VG_S_G。
6.将各门课程的选修人数及平均成绩定义为视图V_A VG_C_G。
(二)使用视图
1. 查询以上所建的视图结果。
2. 查询平均成绩为90分以上的学生学号、姓名和成绩。
3. 查询各课成绩均大于平均成绩的学生学号、姓名、课程和成绩。
4. 按系统计各系平均成绩在80分以上的人数,结果按降序排列。
(三)修改视图
1. 通过视图V_IS,分别将学号为“S1”和“S4”的学生姓名更改为“S1_MMM”,”S4_MMM” 并查询结果。
2. 通过视图V_IS,新增加一个学生记录('S12','YAN XI',19,'IS'),并查询结果。
3. 通过视图V_IS,新增加一个学生记录('S13','YAN XI',19,'MA'),并查询结果。
4. 通过视图V_IS,删除学号为“S12”和“S3”的学生信息,并查询结果。
5. 要通过视图V_S_C_G,将学号为“S12”的姓名改为“S12_MMM”,是否可以实现?并说明原因。
6. 要通过视图V_A VG_S_G,将学号为“S1”的平均成绩改为90分,是否可以实现?并说明原因。
二、数据库安全性控制
1.在企业管理器中为所属的SQL服务器设置Windows NT安全认证模式。
2.在企业管理器中为自己建立一个服务器用户、数据库用户和数据库角色。
并将自己创建的学生库所有操作权赋予它们,将自设计的数据库的操作权赋予新建的数据库用户。
【实验步骤】
一、视图操作
(一)定义视图
定义计算机系学生基本情况视图V_Computer。
步骤:新建查询-输入代码:
CREATE VIEW V_COMPUTER
AS
SELECT *
FROM student
WHERE dno='计算机'
●将Student Course 和Student_course表中学生的学号,姓名,课程号,课程名,成
绩定义为视图V_S_C_G。
步骤:新建查询-输入代码:
CREATE VIEW V_S_C_G
AS
SELECT student.sno,student.sname,o,ame,student_course.score
FROM student,course,student_course
WHERE student.sno=student_course.sno
●将各系学生人数,平均年龄定义为视图V_NUM_A VG
●定义一个反映学生出生年份的视图V_YEAR
●将各位学生选修课程的门数及平均成绩定义为视图V_A VG_S_G
●将各门课程的选修人数及平均成绩定义为视图V_A VG_C_G
(二)使用视图
1.查询以上所建的视图结果。
2.查询平均成绩为90分以上的学生学号、姓名和成绩。
3.查询各课成绩均大于平均成绩的学生学号、姓名、课程和成绩。
4.按系统计各系平均成绩在80分以上的人数,结果按降序排列。
(三)修改视图
通过视图V_IS,分别将学号为“S1”和“S4”的学生姓名更改为“S1_MMM”,”S4_MMM” 并查询结果。
步骤:新建查询-输入代码:
update S_C_GRADE
set sname='S1_MMM'
WHERE sno like 'S1'
GO
update S_C_GRADE
set sname='S4_MMM'
WHERE sno like 'S4'
通过视图V_IS,新增加一个学生记录('S12','YAN XI',19,'IS'),并查询结果
INSERT INTO V_IS
values ('S12','YAN XI',19,'IS')
go
通过视图V_IS,新增加一个学生记录('S13','YAN XI',19,'MA'),并查询结果
通过视图V_IS,删除学号为“S12”和“S3”的学生信息,并查询结果
步骤:新建查询-输入代码:delete from V_IS
WHERE sno='S12' AND sno='S3'。