实验05 视图的创建和使用题目和答案

合集下载

数据库实验五:视图的应用

数据库实验五:视图的应用

数据库实验五:视图的应用数据库实验五:视图的应用一、实验目的与要求: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) 视图的创建与使用

实验四(1) 视图的创建与使用

实验四(1)视图的创建与使用学号 ____ 姓名_ __ 班级___专业___ _____一、实验目的1)理解视图的概念。

2)掌握创建视图、测试、加密视图的方法。

3)掌握更改视图的方法。

4)掌握用视图管理数据的方法。

5)了解分区视图的实现方法。

二、实验内容说明:在所有库文件名与表名取名时,请各位同学在所给定的文件名后加上下划线及学号后四位数字构成自己的实验数据库名与表名。

如:XSGL1_20051101.创建视图是数据库应中的常见需求,可以使用企业管理创建、管理视图,也可以用T-SQL 语言创建、管理视图。

1、用创建视图向导创建视图使用视图向导创建一个名为studview的投影视图,该视图从student表中查询出班级号为“052”班的所有学生的学号,姓名,性别,班级,家庭住址,入学时间,出生年月资料。

(提示:分别进入企业管理器,再分别单击“工具”、“向导”、“数据库”、“创建视图向导”,然后一步一步地创建视图。

)基本步骤:1)进入企业管理器,“工具”→“向导”,出现如下窗口。

2)选择“数据库”→“创建视图向导”,出现下图窗口。

3)单击“下一步”,如下图,选择数据库“XSML_20061779”,单击“下一步”。

4)在弹出的如下窗口中选择引用对象表Student,单击“下一步”。

5)在弹出的如下窗口中选择列Sno,Sname,Sex,Classno,Home_addr, Entrance_date,Birth。

单击“下一步”。

6)定义限制“where Classno='052'”,单击“下一步”。

7)在弹出窗口中输入视图名称studview_20061779,单击“下一步”。

8)在弹出的窗口中单击“完成”。

9)点击“确定”即可。

2、用企业管理器创建、管理视图(1)创建视图A、使用企业管理器在表student上创建一个能查询“051”班学生学号、姓名、家庭住址信息的投影视图。

1)依次进入企业管理器、数据库、XSGL库,并用鼠标右键单击“视图”。

视图的创建与使用-学生管理(参考答案)

视图的创建与使用-学生管理(参考答案)

视图的创建与使用-学生管理(参考答案)视图的创建与使用一、实验目的(1) 理解视图的概念。

(2) 掌握视图的创建与维护操作。

(3) 掌握用视图管理数据的方法。

二、实验内容1.创建视图(1) 创建一个视图stu_info,用于查看学生学号、姓名和性别信息,并修改其字段定义别名。

create view stu_info(学号,姓名,性别)asselect studentID,studentname,sexfrom studentgo(2) 创建计算机专业学生基本信息视图:stu_计算机,包括学生的学号、姓名及年龄,并要求进行修改和插入操作时仍需保证该视图只有计算机专业的学生create view stu_计算机asselect studentID,studentname,age,majorfrom studentwhere major='计算机'with check optiongo(3) 建立计算机专业选修了计算机基础课程的学生视图:stu_计算机_计算机基础create view stu_计算机_计算机基础asselect student.studentID, sex,coursename,gradefrom student,course,scorewhere student.studentID=score.studentid and score.courseid=course.courseid and coursename='计算机基础'and major='计算机'(4) 建立计算机专业选修了计算机基础课程且成绩在80分以上的学生的视图v_gradecreate view v_gradeasselect student.studentID,coursename,gradefrom student,course,scorewhere student.studentID=score.studentid andscore.courseid=course.courseid and coursename='计算机基础'and major='计算机'and grade>80(5) 创建一个名为View_Student的视图,包含计算机专业所有女生的学号、课程号及相应的成绩。

ex05索引与视图定义参考答案

ex05索引与视图定义参考答案

实验五索引与视图定义1 实验目的与要求(1) 掌握索引的建立和删除操作。

(2) 掌握视图的创建和查询操作。

2 实验内容(1) 根据基本表创建以下索引:①在图书表中按出版社号建立一个非聚集索引PublishingnoIdx。

②在读者表中按身份证号建立一个非聚集索引IdentifycardIdx。

③在读者表中,首先按工作单位的升序,然后按借书数量降序建立一个非聚集索引WorkunitCountIdx。

(2) 创建一个只含清华大学出版社信息的图书视图BookView。

(3) 创建一个包含读者编号、读者姓名、图书编号、图书名称、借阅日期、归还日期的视图BorrowView。

(4) 创建一个视图,要求显示至少借阅了3本书的读者信息ReaderView。

(5) 在视图BorrowView中查询2010年4月22日以前被借阅的图书。

(6) 在视图ReaderView中查询姓张的读者信息。

(7) 在视图BorrowView基础上再建一个只包含合生元有限公司读者所借图书信息的视图BorrowView1。

(8) 删除视图BorrowView。

参考答案(1) 根据基本表创建以下索引:①在图书表中按出版社号建立一个非聚集索引PublishingnoIdx。

create nonclustered index PublishingnoIdx on book(Publishingno)②在读者表中按身份证号建立一个非聚集索引IdentifycardIdx。

create nonclustered index IdentifycardIdx on reader(Identifycard)③在读者表中,首先按工作单位的升序,然后按借书数量降序建立一个非聚集索引WorkunitCountIdx。

create nonclustered index WorkunitCountIdx onreader(Workunit,borrowCount desc)(2) 创建一个只含清华大学出版社信息的图书视图BookView。

实验报告五 视图与索引

实验报告五 视图与索引

实验五视图与索引一.实验目的1.学会使用企业管理器建立视图与索引2.掌握使用SQL语句建立视图与索引二.实验内容1.使用企业管理器建立视图索引2.使用SQL语句建立视图索引三.实验准备1.复习与本次实验内容相关知识2.对本次实验中要求自己完成的部分做好准备四.实验步骤1.用企业管理器建立一个基于学生表、课程表、成绩表的视图,要求该视图显示学号、姓名、课程、成绩o启动企业管理器、注册、连接o"新建视如下图所示o在新视图窗口内的关系图窗格内右击鼠标,弹出的菜单即为视图设计菜单,执行"添加表(B)...",如下图所示再在添加表对话框中选择SCORES表,再单击添加按钮。

依此操作,分别添加STUDENT、COURSES表,单击关闭按钮。

再在关系窗格内,拖动STUDENT表的"SID"至SCORES的STUDENT_ID,拖动COURSES表的"CNO"至SCORES的COURSE_ID,再分别选中STUDENT表的"SID","NAME"列(列前的复选框),COURSES表的"COURSE"列以及SCORES表的"SCORE"列,然后单击"!"按钮,显示视图结果,如下图所示:单击保存按钮,将视图保存为V_SCORES,单击确定.2.用查询分析器建立一个基于学生表、班级表的学生视图(V_STUDENTS),包括学号、姓名、班级、系,SQL语句如下:CREATE VIEW dbo.V_STUDENTSASSELECT dbo.U_STUDENTS.ID, dbo.U_,dbo.U_CLASSES.CLASS,dbo.U_CLASSES.DEPARTMENTFROM dbo.U_STUDENTS INNER JOINdbo.U_CLASSES ON dbo.U_STUDENTS.CLASS_ID = dbo.U_CLASSES.ID3.自己写一个SQL语句建立一个基于课程表的视图(V_COURSES),要求显示课程编号.课程名、学分。

实验六 视图的定义及使用实验 实验报告

实验六  视图的定义及使用实验   实验报告

实验六视图的定义及使用实验实验报告实验任务(一)建立视图(运行并观察结果)1.建立信息系学生的视图IS_student。

CREATE VIEW IS_StudentASSELECT Sno,Sname,SageFROM StudentWHERE Sdept='IS'2.建立信息系选修了1号课程的学生的视图IS_S1。

CREATE VIEW IS_S1(Sno,Sname,Grade)ASSELECT Student.Sno,Sname,GradeFROM Student,SCWHERE Sdept='IS'ANDStudent.Sno=SC.Sno ANDo='1';3.建立信息系选修了1号课程且成绩在90分以上的学生的视图IS_S2。

CREATE VIEW IS_S2ASSELECT Sno,Sname,GradeFROM IS_S1WHERE Grade>=904.建立一个反映学生出生年份的视图BT_S。

CREATE VIEW BT_S(Sno,Sname,Sbirth)ASSELECT Sno,Sname,2004-SageFROM Student5.将学生的学号及他的平均成绩定义为一个视图S_G。

CREATE VIEW S_G(Sno,Gavg)ASSELECT Sno,AVG(Grade)FROM SCGROUP BY Sno6.将课程的课号及选修人数定义为一个视图C_XIU。

CREATE VIEW C_XIU(Cno,Scount)ASSELECT Cno,COUNT(*)FROM SCGROUP BY Cno(二)查询视图(运行并观察结果)1.在信息系学生的视图中找出年龄小于20岁的学生。

SELECT Sno,SageFROM IS_StudentWHERE Sage<202.查询信息系选修了1号课程的学生。

SELECT IS_Student.Sno,SnameFROM IS_Student,SCWHERE IS_Student.Sno=SC.Sno ANDo='1'3.在S_G中查询平均成绩在90分以上的学生的学号和平均成绩。

实验5 视图的创建与使用

实验5 视图的创建与使用

实验5 视图的创建和使用【实验目的】掌握创建与删除视图的方法掌握更新视图的方法掌握视图的查询操作【实验内容】一、创建视图1、用企业管理器创建视图此实验中以mydb1数据库中的test01、student、course、sc表为基础创建视图。

打开企业管理器,展开左侧窗口树形结构上的数据库节点,选中要创建视图的数据库(这里是mydb1),右击数据库中的“视图”对象,选择“新建视图”命令,如图1所示,就会弹出如图2所示的视图设计器窗口。

图【1】新建视图图【2】视图设计器在视图设计器窗口中右击选择“添加表”或单击工具栏上“添加表”按钮,添加所需要的表。

如图3所示。

图【3】添加表在表窗口中各字段名的前面方框里单击,选择相应的字段,或是在下面“列”的下拉列表框中选择字段,并可在“准则”列中输入提取记录时的过滤条件,在“或”列中输入提取记录所用的附加条件,最后在上面窗口中右击,选择“运行”,则在最下面的窗口中就能看到视图的结果。

如图4所示。

图【4】选择视图内容视图设计完后,点击保存图标,在弹出的“另存为”对话框中输入视图名,此实验为score_view ,最后点击“确定”按钮。

如图5所示。

图【5】保存视图2、使用向导创建视图(略)3、用T-SQL语句创建视图格式:CREATE VIEW view_name[(column1,column2,……)] Asselect_statement[with check option]例:创建所有选课学生的信息视图,如图6所示。

(3)重命名表test001为test01。

当发现表名不恰当的时候,需要为表重新命名。

使用系统存储过程sp_rename 可以为表重新命名,语法如下:sp_rename old_table_name , new_table_name请在查询管理器中输入如下的语句:Use mydb1Gosp_rename test001 , test01 /*EXEC sp_rename test001 , test01 也可以*/Go系统执行,将返回如图6所示的结果。

数据库实验——视图的创建与使用

数据库实验——视图的创建与使用

数据库实验——视图的创建与使用数据库是一种利用计算机系统来管理、存储、处理数据的技术,视图则是在数据库中使用的一种技术。

视图是一种虚拟表,实际上并不存储数据,而是使用查询语句从一个或多个表中提取所需的数据。

在本次实验中,将学习视图的创建和使用。

一、实验目的1. 理解视图的概念和特点;2. 掌握视图的创建和使用方法;3. 熟悉视图的应用场景。

二、实验内容1. 视图的创建方法;2. 视图的使用方法;3. 视图的实际应用。

三、实验过程1. 视图的创建方法视图的创建方法如下:CREATE VIEW [视图名称] AS [查询语句];例如,要从学生表中提取所有学生的姓名和学号,则可以使用以下语句创建视图:CREATE VIEW student_info AS SELECT sname, sno FROM student;这样,就创建了一个名为student_info的视图,其中包含学生表中的姓名和学号两列数据。

2. 视图的使用方法创建视图之后,可以像使用普通表一样使用视图。

例如,可以使用SELECT语句来查询视图中的数据,如下所示:SELECT * FROM student_info;这样就可以查询出student_info视图中的所有数据。

3. 视图的实际应用视图在实际应用中有很多用途,例如:(1)简化查询语句当数据库中有较多的关联表时,查询语句会变得非常复杂。

此时,可以使用视图来简化查询语句。

例如,以下语句查询学生所在的班级名称:SELECT s.sname, ame FROM student s INNER JOIN class c ON s.classno = c.classno;使用视图后,查询语句可以变得更简洁:CREATE VIEW student_class AS SELECT s.sname, ame FROM student s INNER JOIN class c ON s.classno = c.classno;SELECT * FROM student_class;(2)保护数据安全例如,可以创建只包含学生姓名和学号的视图,而不包含其他敏感数据,以确保保护学生的隐私。

视图操作练习题

视图操作练习题

视图操作练习题视图操作是指在数据库中创建、修改或删除视图的过程。

视图是由表或其他视图衍生出来的虚拟表,可以简化数据查询和操作,提高数据库的可用性和安全性。

以下是几个视图操作练习题,供读者练习和巩固对视图操作的理解和应用。

题一:创建视图假设有一个学生信息表(Student)包含以下字段:学号(StudentID)、姓名(Name)、性别(Gender)、年龄(Age)、班级(Class)。

请根据以上信息,编写创建一个视图(View_Student)的SQL语句,该视图包含学号、姓名和班级三个字段,并且只包含年龄小于18岁的学生信息。

题二:修改视图在题一的基础上,请根据以下要求进行修改:将视图View_Student中的字段名称“姓名”修改为“名字”,并增加一个字段“成绩”(Score)。

题三:删除视图假设已创建一个视图(View_Course)用于显示课程信息,包含以下字段:课程号(CourseID)、课程名(CourseName)、教师名称(TeacherName)。

请编写删除视图View_Course的SQL语句。

题四:更新视图假设已创建一个视图(View_Score)用于显示学生的成绩信息,包含以下字段:学号(StudentID)、姓名(Name)、课程名(CourseName)、成绩(Score)。

请编写更新视图View_Score的SQL语句,将学号为2021001的学生在数学课程中的成绩修改为90分。

题五:视图的嵌套假设已创建两个视图View_Student和View_Course,分别用于显示学生和课程信息。

请编写一个新的视图View_Score,以View_Student和View_Course 为基础,显示学生的学号、姓名、课程名和成绩。

题六:视图的权限管理假设某个数据库有多个用户,其中用户A被授予了View_Student 视图的查询权限,但不允许对该视图进行修改操作。

请编写一个SQL语句,控制用户A对View_Student视图的访问权限。

视图的创建和使用实验报告

视图的创建和使用实验报告
测试过程: (实验中出现的问题、错误、解决方法) 建立视图的时候发现不会使用 SQL 语句建立,就只能直接建立了,但建 专业: 立过程中条件控制不得当,导致视图建立出错,后来在同学的帮助下成功建 立视图。 实验名称 实验类型
软件实验报告
软件工程 课程: 数据库
学号: 1234567890 姓名: 某某某 班级: 10 软件工程 视图的创建和使用 验证性 实验时间 2011 年 12 月 27 日
实验环境
Microsoft SQL Server 2005
实验目的与要求: 1.理解 SQL 的视图以及与基本表的区别; 实验总结: 2.掌握 SQL 视图的定义、查询、更新。 经过这次数据库系统基础课程设计, 我们不仅及时巩固的了数据库以及软 件工程的知识,并对数据库以及软件工程提供的开发流程和工具对于实现 特定功能程序的重要意义
4. 统计每个学生有成绩的课程门数、平均成绩 select studentno as 学号,count(*) as 课程门数,avg(score)as 平均成 绩 2. 在男学生视图中查询平均成绩大于 80 分的学生学号与姓名 select studentname,studentno from Male_Student where score>80 3.对男学生视图的数据进行修改 将“95001”学号的学生姓名改为“李咏” 将“95001”学生选修“数据库”的成绩改为“95” update Male_Student set studentname='李咏' from score where score is not null group by studentno
签名 某某某 2011 年 12 月 27 日 评语与成绩:
实验内容:对学生数据库,应用 SQL 语句实现以下要求: 1)建立男学生的视图(Male_Student) ,属性包括学号、姓名、选修 课程名和成绩。 2)在男学生视图中查询平均成绩大于 80 分的学生学号与姓名。 3)对男学生视图的数据进行修改。 将“95001”学号的学生姓名改为“李咏” ; 将“95001”学生选修“数据库”的成绩改为“95” ;

SQL server视图练习

SQL server视图练习

实验五视图练习试图是关系数据库系统中的重要机制。

用户通过视图能以多种角度观察数据,视图可以对数据提供一定程度的安全保护。

本实验主要介绍用企业管理器和SQL语言创建、删除视图的方法和步骤,以及通过视图向基本表中插入、更新、删除数据的方法和步骤。

[知识要点]1.视图视图是从一个或几个基本表导出的表,它与基本表不同,是一个虚表。

数据库中只存储视图的定义而不存储视图中的数据,从视图中可访问的数据应存放在原来的基本表中。

视图一经定义,就和基本表一样被查询、删除,也可以在一个视图之上再定义新的视图,但对视图的更新(增加、删除、修改)操作则有一定的限制。

2.视图的作用∙每个视图能够简化用户的操作;∙视图使用户能够以多种角度看待同一数据∙视图对重构数据库提供了一定程度的逻辑独立性∙视图能够对机密数据提供安全保护3.可更新视图的限制∙若视图是由两个以上基本表导出的,则此视图不可更新;∙若视图的字段来自字段表达式或常数,则不允许对此视图执行insert和update操作,但允许执行delete操作;∙若视图的字段来自集函数,则此视图不允许更新;∙若视图定义中含有GROUP BY字句,则此视图不允许更新;∙若视图中含有DISTINCT短语,则此视图不允许更新;∙若视图定义中含有嵌套查询,并且内层查询FROM字句中涉及的表也是导出该视图的基本表,则此视图不允许更新;∙一个不允许更新的视图上定义的视图也不允许更新。

4.创建视图的SQL语句Create View [<database_name>.][<owner>.]view_name[(column[,…n])]ASSelect_statement[with check option]5.修改视图的SQL语句Alter view [<database_name>.][<owner>.]view_name[(column[,…n])]ASSelect_statement[with check option]6.删除视图的SQL语句DROP view 视图名【实验目的】∙掌握使用企业管理器创建、删除视图;∙掌握使用SQL创建、删除视图;∙掌握使用企业管理器更新视图;∙掌握使用SQL更新视图。

视图的使用实验报告

视图的使用实验报告
两个基本语句createview表明asselect查询块删除视图dropview视图名实验内容实验内容与关键步骤sql语句等实验结果视图可以被看成是虚拟的表或存储查询可通过视图访问的数据不作为独立的对象存储在数据库内
数据库*实验报告
实验项名称:视图的使用
实验日期:2010 11 22
姓名:
学号:084208123
班级:08计算机一班
成绩:
信息技术学院软件技术与数据库教研室
南京中医药大学
实验概述:
1.实验目的:通过视图的创建过程,理解视图的概念和意义,掌握视图的基本使用方法
2.实验要求:通过视图的设计和定义,掌握建立视图的基本方法,包括通过单张表建立视图和通过多张表建立视图;通过在定义的视图上进行查询,插入,更新和删除操作,理解视图的概念,掌握简单的视图查询方法
3.实验预备知识:两个基本语句CREATE VIEW <表明>AS <SELECT查询块>
删除视图DROP VIEW <视图名>
实验内容
1.实验方案设计
2.实验内容与关键步骤、SQL语句等
3.
(
1.实验结果
视图可以被看成是虚拟的表或存储查询,可通过视图访问的数据不作为独立的对象存储在数据库内。本实验只要学习视图的使用,包括视图的定义,查询,插入和删除操作,还包括使用“企业管理器“进行视图的建立,删除,修改。通过这次实验,清楚的了解了视图的概念,掌握创建视图的基本方法,作用和意义
2.疑难与需解决的问题
3.实验体会
教师评语及成绩

实验5 视图的创建与使用分析

实验5 视图的创建与使用分析

XX实验报告学号 :系别专业班级姓名课程名称课程类型学时数实验名称视图的创建和使用实验目的:使用SQL Server Mangement Studio创建视图。

使用Transcat-sql创建视图。

查询视图了解创建和查询视图的方法。

实验要求:据库设计确定要创建的视图。

之前已经完成了其他实验,成功创建了stu中的各个表。

了解创建和查询视图的方法实验内容:要点:视图是从一个表或者几个基本表导出的表。

他与基本表不同,是一个虚表。

数据库只存放视图的定义,而不存放对应的数据,这些数据仍然存放在原来的基本表中,所以一旦基本表的数据发生改变,先从视图中查出的信息也就发生改变,从这个意义上来讲,视图就像一个窗口。

视图一经定义,就可以和基本表一样被查询,被删除,也可以在一个视图上在定义另一个视图,但对视图的(增,删,改)操作有一定的限制。

1. 打开SQL Server2008 ->SQL Server Mangenent Studio命令,弹出连接到服务器的对话框。

2. 在“连接到服务器”的对话框中,单击”连接“按钮。

3. 在“对象资源管理器中”依次展开“数据库“,stu,和视图。

4. 右击视图,然后选择”新建视图“的命令。

5. 在”添加表“对话框中选择student(students)表中的sno,sname,ssex,sage,sdept。

6.sdept的输出选项不可选,在筛选器一栏输入”is“,具体设置如图所示。

7. 将视图的架构属性设置为students。

8. 选择文件进行保存,输入名称”StudentISView“,然后单击确定。

实验结果:视图的创建:建立信息系学生的视图,并要求进行修改和插入操作认保持该视图只有信息系的学生:信息系学生的视图进行更新操作:更新操作后将姓名改变为‘刘晨’,如图所示:对新建的S_G视图进行删除操作;如图所示:将删除在视图中学号为201315127的学生信息。

对新建的F_Student视图进行查询操作:即选择F_Student视图中姓名为:宋敏的同学所有的信息如图所示:实验总结:通过本次实验对SQL-Server语言有了更深入的理解,并且掌握了使用SQL Server Mangement Studio创建视图。

sql实验5 视图

sql实验5 视图
3. 学习灵活熟练的进行视图的操作,认识视图的作用
二.实验内容
一.定义视图
在EDUC数据库中,已StudentCourse 和Student_course表为基础完成一下视图定义
1. 定义计算机系学生基本情况视图V_Computer;
2.将Student Course 和Student_course表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G
insertintoV_IS
values ('S12','YAN XI',19,'IS')
go
3.通过视图V_IS,新增加一个学生记录 ('S13','YAN XI',19,'MA'),并查询结果
insert into V_IS
values(‘S13’,’YAN XI’,19,’MA’)
go
4.通过视图V_IS,删除学号为“S12”和“S3”的学生信息,并查询结果
3. 通过视图V_IS,新增加一个学生记录 ('S13','YAN XI',19,'MA'),并查询结果
4. 通过视图V_IS,删除学号为“S12”和“S3”的学生信息,并查询结果
5. 要通过视图V_S_C_G,将学号为“S12”的姓名改为“S12_MMM”,是否可以实现?并说明原因
6. 要通过视图V_AVG_S_G,将学号为“S1”的平均成绩改为90分,是否可以实现?并说明原因
在企业管理器中将视图 COMPUTE_AVG_GRADE中改成建立在数学系的学生学号、选修课程号以及平均成绩的视图。
(2) 使用SQL语句修改视图
①在查询分析器中使用更改视图的命令将上面建立的视图“V_计算机系学生”更名为“V_计算机系男生”。

实验五视图的创建和使用

实验五视图的创建和使用

实验五视图的创立和使用5.1概述5.1.1任务一理解视图的概念视图是一个虚拟表,其内容由查询定义。

同真实的表一样,视图包含一系列带有名称的列和行数据。

但是,视图并不在数据库中以存储的数据集合形式存在。

行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

对其中所引用的基表来说,视图的作用类似于挑选。

定义视图的挑选可以来自当前或其他数据库的一个或多个表,或者其他视图。

视图被定义后便存放在数据库中,对视图中的数据的操作与对表的操作一样,可以对其进展查询、修改和删除,但对数据的操作要满足一定的条件。

当对视图所看到的数据进展修改时,相应的基表的数据也会发生变化,同时,假设基表的数据发生变化,这种变化也会自动地反映到视图中。

5.1.2任务二理解视图的优点用户可以根据自己的实际需要创立视图,使用视图有很多优点,主要有以下几点:1、简单性视图可以屏蔽数据的复杂性,简化用户对数据库的操作。

使用视图,用户可以不必理解数据库的构造,就可以方便地使用和管理数据。

那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。

2、逻辑数据独立性视图可以使应用程序和数据库表在一定程度上独立。

假设没有视图,应用一定是建立在表上的。

有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。

3、平安性通过视图用户只能查询和修改他们所能见到的数据。

数据库中的其他数据那么既看不见也取不到。

5.2创立视图创立视图的方法有三种:在创立视图前请考虑如下原那么:➢只能在当前数据库中创立视图.➢视图名称必须遵循标识符的规那么,且对每个用户必须为唯一.此外,该名称不得与该用户拥有的任何表的名称一样.➢可在其他视图和引用视图的过程之上建立视图.SQLServer 2000允许嵌套多达32级视图➢假设要创立视图,数据库所有者必须授予用户创立视图的权限,并且用户对视图定义中所引用的表或视图要有适当的权限5.2.1任务一使用企业管理器创立视图使用企业管理器创立视图的详细操作步骤如下:1、翻开企业管理器窗口,翻开“新建视图〞对话框。

实验五:视图的创建与使用

实验五:视图的创建与使用
理解索引和视图的特点,并掌握创建和删除索引的方 法和视图的查询
1、 建立索引 1. 选择要创建索引的数据库文件夹, 如“S_C”文件夹,并在右边的对象窗口中选 择并打开其中的“表”对象。 2. 选择所要创建索引的表,如“Student”表, 并从“操作”菜单中选择“所有任务”子菜单 下的“管理索引”命令,打开SQL Server 的 索引管理器窗口。 3. 单击其中的“新建”按钮,创建新的索引,并 为其设置相应的属性。 4. 为Student 表创建一个基于“Sname”列 和“Sdept”列的索引IX_Student,其中 Sname列按升序排列,Sdept列按降序排列。
后单击“确定”按钮,关闭视图设计窗口,完成视图
的创建。
7) 创建一个简单视图,统计每门课程的选课人数和最高
分。
实验结
果(结 论及
成功建立了试验所要求的视图
分析)
教师
评语
2、 建立视图并利用视图查询数据 1) 启动SQL Server企业管理器,打开“SQL Server
Enterprise Manager”窗口。 2) 选择要创建视图的数据库文件夹,如“S_C”文件
夹,并在右边的对象窗口中选择其中的“视令,打开SQL Server的视图设计窗口。 4) 在“数据源关系图窗口”中单击鼠标右键,打开“添 加表”窗口,添加XSQK表和Student表。 5) 选择Student表的学号和姓名列,选择Student表的 sno,sname和ssex列,作为视图的显示列。
指导教师 黄川林
实验室 G108
实验日期
分组 情况
何威、李苗苗、杨德龙、孟炜 东、杨琦


1、 建立索引 1. 选择要创建索引的数据库文件夹, 如“S_C”文件夹,并在右边的对象窗口中选 择并打开其中的“表”对象。 2. 选择所要创建索引的表,如“Student”表, 并从“操作”菜单中选择“所有任务”子菜单 下的“管理索引”命令,打开SQL Server 的 索引管理器窗口。 3. 单击其中的“新建”按钮,创建新的索引,并 为其设置相应的属性。 4. 为Student 表创建一个基于“Sname”列 和“Sdept”列的索引IX_Student,其中 Sname列按升序排列,Sdept列按降序排列。

数据库实验5 索引和视图(答案)

数据库实验5 索引和视图(答案)

实验5 索引和视图学号:18103317专业:电子信息工程一、实验内容1.分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的《学生表》和《课程表》创建主键索引。

2.使用SQL Server管理平台按《课程表》的课程编号列创建唯一性索引。

3.分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的《成绩表》的“分数”字段创建一个非聚集索引,命名为《成绩_index》。

CREATE INDEX 成绩_index ON 成绩表(分数)4.为studentsdb数据库的《成绩表》的“学号”和“课程编号”字段创建一个复合唯索引,命名为《成绩表_id_c_ind》。

CREATE UNIQUE INDEX 成绩表_id_c_ind ON 成绩表(学号,课程编号)5.分别使用SQL Server管理平台和系统存储过程sp_helpindex查看《成绩表》和《学生表》上的索引信息。

6.使用SQL Server管理平台的“向导'工具对《成绩表》创建一个聚集索引和唯一索引。

7.使用系统存储过程sp_rename将索引《成绩表_index》更名为《成绩表_ind》。

Sp_rename ‘grade.grade_index’,’grade_ind’,’INDEX’8.分别使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索《成绩表_ind》再次使用系统存储过程sp_helpindex查看《成绩表》上的索引信息。

DROP INDEX grade.grade_ind9.在studentsdb数据库中,以《学生表》为基础,使用SQL Server管理平台建立名为v_stu_i的视图,使视图显示学生姓名、性别、家庭住址。

10.在studentsdb数据库中,使用Transact-SQL语句CREATE VIEW建立一个名为v_stu _c的视图,显示学生的学号、姓名、所学课程的课程编号,并利用视图查询学号为’0002'的学生情况。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五视图的创建和使用
【实验目的】
1.利用企业管理器建立视图;
2.利用视图进行查询和修改记录;
【实验内容】
①利用查询分析器和样本(实验一)中的三个表:STUDENTS、SC及C表
建立视图V_grobal,视图V_grobal包含的字段为:
s.sno、、o、ame 、grade
创建:
CREATE VIEW V_grobal
AS
SELECT STUDENT.SNO,STUDENT.SNAME,O,AME,GRADE
FROM STUDENT,SC,C
WHERE STUDENT.SNO=SC.SNO AND O=O
②创建一个名为V_student的视图。

该视图仅查看student表中”0908032”班
的学生信息。

并强制通过视图修改和添加的数据满足where条件。

(with check option)
CREATE VIEW V_student
AS
SELECT*
FROM STUDENT
WHERE SNO LIKE'0908032%'
WITH CHECK OPTION
1)通过视图修改该班的某一学生的姓名。

能否成功?
UPDATE V_student
SET AGE='100'
WHERE SNO='090803201'
能成功
2)通过视图修改该班的某一学生的学号改为”090803155”,成功与否?
得到什么结论?
UPDATE v_student
SET SNO='090803155'
WHERE SNO='090803201'
显示不成功:
结论:通过使用WITH CHECK OPTION 子句,用户可以强制要求针对视图中数据所发生的所有修改,都必须符合视图SELECT语句中WHERE 子句所定义的查询条件,题2学号修改为‘090803155’,不满足WHERE 条件‘sno like '0908032%'’,所以修改不成功。

③创建一个名为V_Sgrade的视图,该视图能显示各学生的学号,姓名,平
均成绩
CREATE VIEW V_Sgrade
AS
SELECT SC.SNO,SNAME,A VG(GRADE) A VGG
FROM STUDENT,SC
WHERE STUDENT.SNO=SC.SNO
GROUP BY SC.SNO,SNAME
问:能不能将某一个学生的平均成绩改成90,为什么?
UPDATE V_Sgrade
SET A VGG='90'
WHERE SNO='090803101'
结果,不能修改
因为:
字段来自聚合函数avg,此视图不允许更新
④建立1班学生的视图,在1班学生的视图中找出年龄小于22岁的学生。

CREATE VIEW STUDENT_1
AS
SELECT*
FROM STUDENT
WHERE cls='1'
查询:
SELECT*
FROM STUDENT_1
WHERE AGE<22
⑤建立一反映各学生总成绩的视图S_ZCJ,视图包括学号、姓名、总成绩
三列。

CREATE VIEW S_ZCJ
AS
SELECT SC.SNO,SNAME,SUM(GRADE) SUMG
FROM STUDENT,SC
WHERE STUDENT.SNO=SC.SNO
GROUP BY SC.SNO,SNAME
【实验步骤】(要求自己填写详细的实验步骤)【实验体会及存在问题】(要求自己填写)。

相关文档
最新文档