实验四 视图及游标
实验四视图及游标
实验目的:
(1)熟悉视图的概念和作用;
(2)掌握视图的创建方法;
(3)掌握如何查询和修改视图;
(4)掌握用可视化方法设计Employees_view;
(5)掌握游标的概念及使用方法。
实验内容:
(1)创建视图,包含员工号码、姓名、所在部门名称和实际收入这几列。
create view employees_view(employeeid,name,departmentname,real income) as
select employees.employeeid,name,departmentname,income-outcome
from employees,departments,salary
where employees.employeeid=salary.employeeid and
employees.departmentid=departments.departmentid
(2)从视图Employees_view查询出姓名为“王林”的员工的实际收入
SELECT dbo.salary.inCome - dbo.salary.outCome AS realincome
FROM dbo.Employees INNER JOIN
dbo.salary ON dbo.Employees.EmployeeID = dbo.salary.employeeID
WHERE ( = '王林')
(3)若视图关联了某表中的所有字段,而此时该表中添加了新字段,视图中能否查询到该字段?
select*from employees_view where name='叶鑫'
答:不能,必须重新创建视图才能查询到新字段。
(4)试图employees-view中无法插入和删除数据,其中的realincome字段也无法修改,为什么?
insert into employees_view values('000011','叶鑫','财务部',1500)
答:不能,因为视图employees-view中的字段realincome是基本表列通过计算所得的列,所以无法修改。
(5)修该视图ds_view,将部门号为的部门名称修改为“生产车间”。
update ds_view
set departmentname='生产车间'
where departmentid='5'
(6)删除视图。
drop view ds_view
(7)声明游标,打开游标,读取数据,关闭游标,删除游标。
声明游标:
declare xs_cur1 scroll cursor
for
select sno,sname,sex,birthdate from xs
打开游标:
open xs_cur1
读取数据:
fetch next from xs_cur1
关闭游标:
close xs_cur1
删除游标:
deallocate xs_cur1
实验小结:
通过今天的学习我了解了视图的概念和作用、视图的创建方法、查询和修改视图、用可视化方法设计Employees_view、游标的概念及使用方法。
通过使用游标可以方便地处理集中地一行或几行,为数据的查询提供了方便。
实习4 视图和查询的创建与使用
实习4 视图和查询的创建与使用一.实习目的1.掌握创建单表视图和多表视图的方法,能够创建视图,并利用视图更新表中的数据。
2.掌握创建单表查询和多表查询的方法,能够创建并使用单表查询和多表查询。
二.实习要求1.创建一个单表视图。
2.创建一个多表视图。
3.利用视图更新表中的数据。
4.创建一个单表查询。
5.创建一个多表查询。
三.实习内容实习4-1 根据“学生表”创建一个单位表视图,视图文件名为“学生”。
操作步骤如下:1.打开“河南工程学院数据库”,打开“数据库设计器”窗口,如图所示。
2.在“数据库设计器”窗口中,选择“文件”菜单中的“新建”命令,打开“新建”对话框。
3.在“新建”对话框中选择“视图”,然后单击“新建文件”按钮,打开“添加表或视图”对话框,如下图所示。
4.在“添加表或视图”对话框中,把建立视图所需的表添加到“视图设计器”中,单击“关闭”按钮,打开“视图设计器”窗口,如下图所示。
5.在“视图设计器”窗口中,在“可用字段”列表框中,逐个双击可用的字段,将其添加到“选定字段”列表框中,如下图所示。
6.选择“文件”菜单中的“保存”命令,打开“保存”对话框,输入视图名“学生”,单击“确定”按钮,视图文件建立完成并被存放在打开的数据库中。
如下图所示。
7.在“数据库”菜单中选择“浏览”命令,打开“浏览”窗口,浏览视图中的数据,如下图所示。
实习4-2 根据“学院表”、“系表”、“班级表”、“学生表”、“课程表”、“成绩表”这个表创建一个多表视图,视力文件名为“学院系班级学生成绩”。
操作步骤如下:1.打开“河南工程学院数据库”,打开“数据库设计器”窗口,如图所示。
2.在“数据库设计器”窗口中,选择“文件”菜单中的“新建”命令,打开“新建”对话框。
3.在“新建”对话框中选择“视图”,然后单击“新建文件”按钮,打开“添加表或视图”对话框,如下图所示。
4.在“添加表或视图”对话框中,把建立视图所需的表添加到“视图设计器”中,单击“关闭”按钮,打开“视图设计器”窗口,如下图所示。
视图和游标
练习
【 】 过 标将学 条纪录 declare cur_c cursor for select * from xs for update of sname open cur_c fetch next from cur_c update xs set sname='bbb' where current of cur_c close cur_c deallocate cur_c 改
使用游标的步骤 ①声 标。使用T-SQL语句生成一个结果集,
并且定义游标的特征,如游标中的记录是否可 以修改。
② 开 标。 ③ 从 标 结果
读 数据。从游标中 。
检索一行或多行数据称为取数据。
④对 标 数据 ⑤ 关闭 释 标。
声明游标
declare 游标名 [scroll] cursor for <select语句> [for read only|for update of 列名] 其中select语句可以是简单查询,也可以是复杂的 连接查询和嵌套查询 例: Declare mycursor cursor for select * from AddSalary
更新视图的数据
(4) 果视图 创建时 个数据 则 DELETE‚–•p 删 数据, UPDATE‚–•p 数据,则应与INSERT语 更 句 样, 更 须属 个数据 。
视图的加密
with encryption SQL Server 加 系统 reate view 语句 内 系统 。 备份. , 可 , 加 备份. create view v1 c 加
DEALLOCATE authors_cur
/* 提取数据集中的第 行*/ 提取数据集中的第4行 FETCH ABSOLUTE 4 FROM authors_cur /*提取当前行的前两行 提取当前行的前两行*/ 提取当前行的前两行 FETCH RELATIVE -2 FROM authors_cur
实验四 视图
实验四数据库视图4.1 实验目的1.掌握视图的三种建立方法:(1)用向导创建视图(2)用图表创建视图(3)用SQL语言创建视图2.掌握对视图进行查询、删除的方法3.掌握利用视图对基本表进行插入、更新和删除数据的操作4.2 实验内容(一)“图书管理”数据库1.使用向导建立以下视图:“企业管理器”中“工具”菜单→“向导”命令→“数据库选项”→“创建视图向导”。
(1)建立视图名为“计算机图书视图”,包含计算机类图书的所有信息(2)建立视图“借阅计算机书视图”,包含借阅了计算机类图书的读者编号,读者姓名,读者单位,书号,书名,借阅日期。
(3)建立视图“库存图书视图”,包含未借出的图书信息。
图书表中“借出否”字段取值为1表示已借出2.用SQL语句建立下面视图:在“查询分析器”中完成,运行并保存完成的命令(1)建立视图“图书价格视图”,包含图书类别,每类图书的最高价格、最低价格、平均价格create view 图书价格视图asselect 类别,max(定价)as 最高价格,min(定价)as 最低价格,avg(定价)as 平均价格from 图书group by 类别(2)建立视图“超期图书视图”,要求查询借阅时间超过3个月的图书书号、书名、读者编号、读者姓名、借阅日期。
create view 超期图书视图asselect 图书.书号,图书.书名,读者.读者编号,读者.读者姓名,借阅.借阅日期from 图书,借阅,读者where 图书.书号=借阅.书号and 借阅.读者编号=读者.读者编号and month(getdate()-借阅.借阅日期)>3(3)建立视图“借阅_出版社视图”,查询借阅了“华东理工出版社”和“机械工业出版社”出版的图书的读者编号、读者姓名、书号、书名、出版社、借阅日期create view 借阅_出版社视图asselect distinct(读者.读者编号),读者.读者姓名,图书.书号,图书.书名,图书.出版社,借阅.借阅日期from 读者,图书,借阅where 读者.读者编号=借阅.读者编号and 借阅.书号=图书.书号and (图书.出版社='华东理工出版社和' or 图书.出版社='机械工业出版社')3.利用视图更新表(1)利用视图查询机械工业出版社在今年第一季度的借出信息select *from 借阅_出版社视图where 出版社='机械工业出版社' and Datepart(quarter,借阅日期)=14.删除视图:可在企业管理器中删除,也可用SQL命令删除(格式drop view 视图名)(1)删除“计算机图书视图”,记录SQL命令,并查看删除的结果。
试验四视图一试验目的及要求熟练掌握视图的创建删除2
实验四视图一.实验目的及要求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视图
insert into sc values('200215122','2','90');
insert into sc values('200215122','3','80');
查询结果如下:
select * from student;
《数据库系统概论》实验报告(四)
班级:
学号:
姓名:
实验成绩:优秀□良好□中□及格□不及格□
实验题目:视图
实验目的:在学生-课程数据库中,创建、查询与修改视图。
实验要求:1、用CREATE语句建立视图,观察结果。
⑴把计科系(CS)学生的学号、姓名作为视图cs_studeng,并要求将sno,sname分别名为“学号、姓名”。
⑶删除视图cs_studeng中学号为200215122的记录。
delete from cs_studeng where学号='200215122'
建立信息系学生的视图。
删除计算机系学生视图CS- S中学号为95029的记录
3、删除“反映学生出生年份的视图”
drop view s_s2
实验总结:
此次实验过程中,我们掌握了视图的所有语句,有视图建立:create view<视图名>[(<列名>[,<列名>]….)] as <子查询>[with check in]。视图删除:drop view<视图名>[cascade]。查询视图:select<列名>from<视图名>where<条件>。更新视图,包括插入:insert into <视图名> values(插入的记录);删除视图:delete from <视图名> where条件;修改视图:update <视图名> set修改信息where条件。
实验四视图和索引的使用
实验四视图和索引的使用
实验四视图和索引的使用
一、实验目的
1.掌握视图的创建、修改和删除
2.掌握通过视图修改表中的记录
3.掌握索引的创建、修改和删除
二、实验内容
根据实验二创建的表进行如下的操作:
1、对表S,创建一个专业为“计算机应用”的视图,视图名为STUDENT_SDEPT1。
2、对表S,创建一个专业为“计算机软件”的视图,视图名为STUDENT_SDEPT2。
3、建立一个视图名S_C_SC,视图里包括每个学生每一门课的成绩(学号、
姓名、课程名和成绩)。
4、删除视图STUDENT_SDEPT2。
5、通过视图STUDENT_SDEPT1,往S表中插入一条记录,内容为(“9901”,
“王套”,22“男”,“计算机应用”)。
6、对表S,按SNAME字段创建一个惟一非聚集索引,索引名为INDEX_SNO。
7、对表C,按CNAME创建一个惟一聚集索引,索引名COURSE_INDEXCNO。
8、对表S,按SEX和SNAME字段创建一个复合索引,索引名为INDEX_SEX_SNAME。
9、删除索引INDEX_SEX_SNAME、COURSE_INDEXCNO。
三、思考题:
1、视图与表的区别是什么?
2、视图的作用是什么?
3、索引的作用?
4、惟一索引的含义是什么?。
数据库原理实验报告-实验四-视图与索引
《数据库原理》实验报告题目:实验四视图与索引学号班级日期2016.10.20一、实验内容、步骤以及结果1.在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是1996年出生的学生的视图,视图中包括学号,性别,成绩三个信息。
(5分)2.用两种不同的SQL语句创建第五版教材第三章第9题中要求的视图(视图名:V_SPJ)(10分,每种方法5分)。
--第一种方法CREATE VIEW V_SPJ ASSELECT sno,pno,qty FROM SPJWHERE jno=(SELECT jno FROM JWHERE jname ='');GO--删除建好的视图DROP VIEW V_SPJ;GO--第二种方法CREATE VIEW V_SPJ ASSELECT sno,pno,qtyFROM SPJ,JWHERE J.jno=SPJ.jno AND J.jname='';3.用SQL语句完成第五版教材第三章第11题中的视图查询(10分,每小题5分)。
11.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。
针对该视图VSP完成下列查询:(1)找出三建工程项目使用的各种零件代码及其数量。
(2)找出供应商S1的供应情况。
4.用SQL语句完成视图的数据更新。
(15分,每题5分)(1)给视图V_SPJ中增加一条数据。
提示:-SPJ表中JNO允许为空时,数据可以插入基本表,此时JNO为NULL,由于JNO 为NULL,所以视图中没有该条数据。
-SPJ表中JNO不能为空时,可以使用instead of触发器实现。
(2)修改视图V_SPJ中的任意一条数据的供应数量。
(3)删除视图V_SPJ中的任意一条数据(注意所创建视图可以视图消解时,才能正常删除,否则会删除失败;也可以考虑用instead of触发器实现)。
实验四 数据库的查询和视图
软件实验报告专业:电子商务课程:___SQL server 实用教程____ _______学号:_121144063__姓名:__姚玉龙____班级:___12级电子商务________实验内容:4.1 数据库的查询1 实验准备(1)了解SELECT语句的基本语法格式;(2)了解SELECT语句的执行方法;(3)了解子查询的表示方法;(4)了解连接查询的表示;(5)了解SELECT语句的GROUPBY子句的作用和使用方法;(6)了解SELECT语句的ORDER BY子句的作用;2实验内容(1)SELECT语句的基本使用。
①对于实验2给出的数据库表结构,查询每个雇员的所有数据。
新建一个查询,在查询分析器中输入如下语句并执行:USEYGGLGOSELECT*FROMEmployees\ ②用SELECT语句查询Employees表中每个雇员的地址和电话。
新建一个查询,在查询分析器中输入如下语句并执行:Use YGGLGOSELECT Address PhoneNumberFROM Employees③查询EmployeeID为000001的雇员的地址和电话。
Use YGGLGOSELECT Address PhoneNumberFROM EmployeesWHERE EmployeeID=’000001’④查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址、电话。
USE YGGLGOSELECT Address AS 地址,PhoneNumber AS 电话FROM EmployeesWHERE Sex=0⑤查询Employees表中员工的姓名和性别,要求SEX值为时显示为“男”,为0时显示为“女”。
SELECT NameAS姓名,CASEWHENSex=1 THEN 男WHENSex=1 THEN 女END AS性别FROM Employees ⑥计算每个雇员的实际收入USE YGGLGOSELECT EployeeID,实际收入=income-OutCome FROMSalary⑦获得员工总数。
数据库实验四 视图与索引
实验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)记录在查询实验中遇到的典型问题及你所采取的解决方法;。
实验—视图、游标实验
实验视图、游标一、实验目的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.视图的查看。
