实验四 创建视图例题部分
- 格式:doc
- 大小:15.00 KB
- 文档页数:1
视图的定义删除等的例题及SQL语句第一篇:视图的定义删除等的例题及SQL语句实验四:视图一、实验目的1、掌握视图的定义与维护操作2、加深对视图在关系数据库中的作用的理解。
二、实验环境已安装SQL Server 2005 企业版的计算机;三、实验内容以数据库原理实验1数据为基础,请使用T-SQL 语句实现进行以下操作:1、创建一个视图,该视图只含上海客户信息,即客户号、客户姓名、住址。
create view khas select cust_id,cust_name,addrfrom customer where addr='上海'2、对视图添加一条记录数据。
(注意:分别查看customer表和该视图的结果。
)insert into khvalues('c0021','李阳','上海','010*******')3、删除视图中所有姓“王”的客户数据。
delete from kh where cust_name like '王%'4、通过视图修改表内某一客户的姓名。
update kh set cust_name='万华' where cust_name='李勇'5、有两个基本表employee和sales,创建一个视图,该视图包含相同业务员的编号、姓名、订单号、销售总金额。
1.create view ywy as select sale_id,emp_name,order_no,tot_amt from employee,sales where employee.emp_no=sales.sale_id6、将上述视图中订单号为10001的记录的销售总金额改为60000。
update ywy set tot_amt=6000 where order_no='10001'7、给上述视图添加一条记录数据。
实验四(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的视图,包含计算机专业所有女生的学号、课程号及相应的成绩。
实验四视图一.实验目的及要求1.熟练掌握视图的创建、删除。
2.掌握视图的查询、修改。
二.实验任务1.理解视图的概念。
2.掌握创建视图的方法。
3.掌握更改视图的方法。
4.掌握用视图管理数据的方法。
三、操作要点1.注意带有WITH CHECK OPTION的视图对数据增删改的影响。
四、注意事项1.使用Transact-SQL语句ALTER VIEW修改视图。
五、实验学时:2学时六、实验重点及难点1.视图的创建与删除。
2.WITH CHECK OPTION的用法。
七、实验步骤(1)启动SQL查询分析器;(2) 选择SQL SERVER后,按确认;(3) 选择数据库Univisity;(4) 进行以下工作:1.从Students表中建立查询所有男(女)生信息的视图STU_SEX。
视图的列名为SNO、SNAME、SSEX和SAGE。
2.从Courses表中建立查询所有课程先修课信息的视图课程Courses_PRE。
视图的列名为课程号、课程名称和先修课名称。
3.从Reports表中建立查询成绩大于等于80信息的视图STU_CJ1。
视图的列名为学号、课程号和成绩。
4.从Students、Reports和Courses三个表建立查询学生选修情况的视图STU_CJ2。
视图的列名为姓名、课程名称和成绩。
5.从Students、Reports和Courses三个表建立查询学生选修情况并且成绩小于80的视图STU_CJ3。
视图的列名为姓名、课程名称和成绩。
6.利用Transact-SQL命令修改视图STU_SEX。
把视图的列名改为学号、姓名、性别和年龄,加上“WITH CHECK OPTION”选项。
7.删除视图STU_CJ3。
8. 建立自动化系学生视图STU_Auto1,带有WITH CHECK OPTION。
9. 建立自动化系学生视图STU_Auto2。
10. 往STU_Auto1添加一行数据:学号为S15、姓名为陈婷、性别为女、年龄为21(考虑陈婷属于自动化系、以及属于计算机系两种情况) 。
上机实验4 视图和索引操作5.1 实验目的1、练习并掌握使用对象资源管理器创建和管理视图;2、练习并掌握使用Transact_SQL 语言创建和管理视图;3、练习通过视图操作表中数据,并能理解它的含义;4、通过在对象资源管理器创建和管理索引,掌握创建和管理索引的多种方法;5、通过练习使用Transact_SQL 语言创建和管理索引,理解语句意思,掌握其用法;6、了解查看索引信息的方法。
5.2 实验练习预备知识点5.2.1 视图的概念视图是一种数据库对象,是虚拟表。
它是从基本表或者视图中导出的表, 用来存储用户想到看的数据。
视图是用户查看数据库的一种方式。
视图与数据表之间的区别:视图是引用存储在数据库中的查询语句时动态创建的,它本身并不存储数据,真正的数据依然存储在数据表中。
5.2.2 在对象资源管理器中创建视图1、打开对象资源管理器,在左边的目录树中选择要创建数据库文件夹,选中“视图”对像。
点击右键选择“新建视图”,打开“视图”设计窗口。
如图5-1所示5-1 视图设计窗口2、将用来创建视图的表添加到视图设计窗口,如图5 -2 所示。
如果创建的视图覆盖多张数据表,那么这些数据表必须是存在联系的。
3、从数据源中选择将在视图中显示的字段,同时出现在第二部分的列表中。
在该列表中可设置限制视图中显示数据的条件,排序字段和排序顺序,以及该字段是否显示。
4、在第三部分的空白处会自动显示出创建该视图所用到的SELECT 语句。
可做修改。
5、在第四部分的列表中,可以预览视图建成后打开的内容。
6、保存视图,取名。
图5-2 填写好的视图设计窗口7、最后,打开视图的方法和打开表的方法是一样的。
8、也可以使用向导创建视图(步骤略)5.2.3 在查询分析器中用T-SQL语句创建视图CREATE VIEW 语句结构如下:CREATE VIEW view_name[(column[,…n])][with ENCRYPTION]ASselect_statement[WITH CHECK OPTION]参数说明:view_name:视图名称column[,…n]:视图中的字段名,可省略。
5. 利用Management Studio创建基于多表的视图“SCGView”,包含选课成绩在>=85分的学生的学号、姓名、选课的课程名和成绩。
(1)打开“ST”数据库文件夹,右击“视图”文件夹,在快捷菜单中选择“新建视图”菜单项,出现如图7-2所示的“添加表”对话框。
(2)在“添加表”对话框中,按下Ctrl键依次选择StudentInfo 、SC 、CourseInfo 表,单击“添加”按钮;或每选择一张表,单击一次“添加”按钮;或者直接在表名上双击,均可将表添加到表设计器中。
(3)在表选择区中依次选定StudentInfo表中的Sname、CourseInfo表中的Cname和SC表中Grade。
(4)CourseInfo表与StudentInfo表、SC表之间没有共同字段,因此系统默认认为CourseInfo表与StudentInfo和SC表的内连接结果做交叉连接(笛卡尔积)。
如图7-6中SQL语句区所示。
图7-6 多表视图设计器(1)(5)在SC表中TeachTaskID字段上开始拖动鼠标到CourseInfo表中的Cno字段,将会为SC表的TeachTaskID和CourseInfo表的Cno建立联系。
因为TeachTaskId的第15位到21为表示该教学计划涉及的课程号,因此手动将SQL语句区的最后一行内容由“dbo.CourseInfo ON dbo.SC.TeachTaskID = o”修改为“dbo.CourseInfo ON SUBSTRING(dbo.SC.TeachTaskID,15,6) = o”。
如图7-7中SQL代码区所示。
(6)单击“视图设计器”工具栏中的“执行SQL”按钮,SQL语句区出现创建视图对应的SQL语句,视图对应的数据在视图结果区显示,如图7-6中视图结果区显示。
(7)保存视图,并命名为SCGView。
图7-7 多表视图设计器(2)6.使用T-SQL语句创建和上述视图“SCGView”功能一样的视图,并命名为SCGView1。
实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,理解视图和索引的概念和作用,练习视图的基本操作,包括视图的建立,视图的查询,视图的更新,视图的删除,体会视图带来的方便;练习索引的创建和删除,对比有索引和无索引的基本表查询速度,体会索引的优势。
实验内容:【实验4-1】创建视图(1)单源视图:建立今年新增的会员的视图;建立“奔驰”品牌的汽车配件视图,并要求进行修改和插入操作时仍需保证该视图只能是“奔驰”品牌。
(2)多源视图:建立每个会员的订单视图(包含会员编号、会员名称、订单编号、下单日期、货品总价)。
(3)在已有视图上定义的新视图:建立价格小于1000元的‘奔驰’品牌的汽车配件视图。
(4)表达式的视图:建立每个会员的购物信息视图(包含会员编号、会员名称、创建时间、汽车配件编号、汽车配件名称、单价、数量、金额)。
(5)分组视图:定义一个视图可以看出每天的销售数量和销售收入;定义一个视图可以看出每天每一种汽车配件的销售数量和销售收入。
【实验4-2】查询视图:在实验4-1中定义的视图或者与基表上共同完成查询:(1)检索采购了‘奔驰’品牌的汽车配件的会员编号、会员名称。
(2)查询今年新增会员的订单信息。
(3)查询会员名称为‘李广’的购物信息(包含会员编号、会员名称、创建时间、汽车配件编号、汽车配件名称、单价、数量、金额)。
(4)查看本月的销售数量和销售收入,查看本月的每一种汽车配件的销售数量和销售收入【实验4-3】更新视图(1)将‘奔驰’品牌的价格下调5%,用Select查询更新前后结果。
(2)在今年新增会员视图中,插入一个新会员的记录,其中会员名称为‘张飞’,密码为999999,邮箱为123456@。
用Select查询更新前后结果。
(3)在今年新增会员视图中,删除会员名称为‘张飞’的会员信息。
用Select查询更新前后结果。
【实验4-4】删除视图:删除今年新增会员视图。
【实验4-5】创建索引(1)创建汽车配件表上的汽车配件编号的索引(聚簇索引)。
实验4 视图与索引一、实验目的1.本实验的目的是使学生掌握视图与索引的使用方法,加深对视图与索引作用的的理解。
2.通过自行设计视图与索引,加强学生的数据库设计能力。
二、实验内容1.索引的定义和维护1)建立唯一索引,测试插入、修改记录时所受的影响。
2)建立聚簇索引,比较建立前后的记录顺序变化。
3)建立多重索引,观察执行select语句查询的结果记录顺序。
4)删除相关索引。
2.视图的定义、查询和更新1)为学生选课系统从不同用户角度出发设计相应的视图。
2)利用视图进行相关查询。
3)利用视图进行更新,注意哪些视图是不可更新的。
三、实验原理1.建立索引语句CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);⏹用<表名>指定要建索引的基本表名字⏹索引可以建立在该表的一列或多列上,各列名之间用逗号分隔⏹用<次序>指定索引值的排列次序,升序:ASC,降序:DESC。
缺省值:ASC⏹UNIQUE表明此索引的每一个索引值只对应唯一的数据记录⏹CLUSTER表示要建立的索引是聚簇索引(CLUSTERED)HAVING短语:筛选出只有满足指定条件的组⏹ORDER BY子句:对查询结果表按指定列值的升序或降序排序2.建立视图语句CREATE VIEW <视图名> [(<列名> [,<列名>]…)]AS <子查询> [WITH CHECK OPTION]四、实验步骤按实验目的和内容自行设计。
五、实验报告要求1)写出本实验中用到的SQL语句的使用说明;2)对每一实验结果进行分析;3)记录在查询实验中遇到的典型问题及你所采取的解决方法;。
实验4视图的定义和使用一实验题目:视图的定义和使用二实验目的:加深对视图的理解,熟练视图的定义、查看、修改等操作三实验内容及要求:(从下面10个题目中选一个)题目一:学生(学号,年龄,性别,系名)课程(课号,课名,学分,学时)选课(学号,课号,成绩)1 根据上面基本表的信息定义视图显示每门课的课名、选课人数、平均成绩2 观察基本表数据变化时,视图中数据的变化。
3 利用视图,查询平均成绩最高的学生。
题目二:图书(书号,书名,价格,出版社)读者(卡号,姓名,年龄,所属单位)借阅(书号,卡号,借阅日期)1 根据上面基本表的信息定义视图显示每本书的书名、借阅次数2 观察基本表数据变化时,视图中数据的变化。
3利用视图,查询借阅次数最多的书。
题目三:商品(编号,品名,进价,库存,售价,厂商编号)顾客(卡号,姓名,电话,积分)厂商(编号,厂址,名称、电话)销售(顾客卡号,商品编号,数量,日期)1 根据上面基本表的信息定义视图显示每种商品的品名、销售数量2 观察基本表数据变化时,视图中数据的变化。
3利用视图,查询销售数量最高的商品。
题目四:图书(书号,书名,作者编号,价格,出版社编号)作者(编号,姓名,电话)出版社(编号,出版社名称,地址)1 根据上面基本表的信息定义视图显示每个出版社的名称、出版书的数量2 观察基本表数据变化时,视图中数据的变化。
3利用视图,查询出版书最多的出版社题目五:零件(编号,名称,颜色,生产车间号)车间(编号,名称,人数,主任)产品(编号,名称,车间编号)使用(产品编号,使用零件编号,个数)1 根据上面基本表的信息定义视图显示每门课的课名、选课人数、平均成绩2 观察基本表数据变化时,视图中数据的变化。
3利用视图,查询选课人数最多的课。
题目六:药品(编号,名称,价格,厂商)处方(药品编号,数量,医生编号)医生(编号,姓名,科室,职称)1 根据上面基本表的信息定义视图显示每种药品的品名、销售金额2 观察基本表数据变化时,视图中数据的变化。
实验四创建视图
[目的和意义]
掌握使用T -SQL语句创建视图的方法,包括视图的建立、删除、修改;了解如何应用视图有选择地查看所需数据,并熟悉通过视图更改数据表中数据的方法。
[实验内容]
在数据库Company_Data中,基于表"项目数据表"和"员工数据表"创建视图,要求为:
视图名为"员工项目"。
包含字段"编号"、"姓名"、"名称"和"开始日期"。
字段别名分别是"员工编号"、”员工姓名"、"项目名称"、"项目开始日期"。
[实现步骤]
(1)打开查询分析器。
在查询窗口书写CREATE VIEW语句创建视图,并指定字段别名:
use reddevil //自己数据库
go
create view员工项目
as
select编号as员工编号,姓名as员工姓名,名称as项目名称,开始日期as项目开始日期
from employee,project
where employee.编号=project.负责人
(2)使用INSERT语句通过视图向员工数据表中添加一条记录,要求"姓名"字段值
为"马中兴"。
use reddevil //自己数据库
go
insert into
员工项目(员工编号,员工姓名) //注意,员工项目视图中员工编号来自主键,不能为空values('20','马中兴')
(3)使用UPPDATE语句通过视图将第二步中插入记录的员工姓名改为"马中新"。
use reddevil //自己数据库
update员工项目
set员工姓名='马中新'
where员工姓名='马中兴'
(4)执行系统存储过程sp_rename将视图更名为"employee_project_VIEW "。
use reddevil //自己数据库
go
EXEC sp_rename'员工项目','emp1oyee_project_VIEW';。