实验目标:
1.掌握交互式创建、删除视图的方法
2.掌握使用SQL创建、删除视图的方法
3.掌握交互式更新视图的方法
4.掌握使用SQL更新视图的方法
5.掌握游标的使用
一、视图
数据库中的视图是一个虚拟表,视图包含一系列带有名称的行和列数据。行和列数据来自*定义视图查询所引用的表,并且在引用视图时动态生成。
视图是一个或者多个表中导出的,视图的行为与表非常相似,但是视图是一个虚拟表。在视图中用户可以使用SELECT语句查询数据,以及使用INSERT、UPDATE和DELETE修改记录。
1. 创建成绩视图SCORE_VIEW,包含:学号SNO、姓名SNAME、课程名CNAME、成绩Score,通过该视图,修改学号为991102,课号为01001的成绩记录。
2. 创建一个计算机系学生名单视图S_VIEW,包含:学号SNO,姓名SN,性别SEX,完成下面内容。
3. 创建一个视图,即计算机系学生的成绩单SCORE_VIEW_CDEPT,包含:学号SNO,姓名SN、课程名CN、成绩Score。
4. 创建一个教师工资视图SAL_VIEW,包含字段:教师名TN、性别SEX、职称PROF、工资总和SALSUM、系别DEPT。通过该视图,查询教师“张朋”的工资收入。
二、使用游标
游标的概念
--游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集。使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。
--游标的优点
--从游标定义可以得到游标的如下优点,这些优点使游标在实际应用中发挥了重要作用:
--1)允许程序对由查询语句select返回的行集合中的每一行执行相同或不同的操作,而不是对整个行集合执行同一个操作。
--2)提供对基于游标位置的表中的行进行删除和更新的能力。
--3)游标实际上作为面向集合的数据库管理系统(RDBMS)和面向行的程序设计之间的桥梁,使这两种处理方式通过游标沟通起来。
① 先将S表快速复制到表S1;
② 定义一个游标cur_xs。要求该游标返回返有所有学生的性别,且游标可以更新AGE列。
③ 一行一行读取游标,若性别为女,则删除该行,若性别不为女,则更新当前行的年龄,年龄加1,直到判断完所有的行。效果如下图所示。
④ 关闭游标
⑤ 删除游标
(思路:读取游标可用fetch next,可用全局变量@@FETCH_STATUS判断游标是否到了最后一行记录,每次读取游标得到的性别可保存至一变量中,做男女判断并进行不同的处理,通过where current of 游标名更新或者删除最后由游标取的记录)
执行前 执行后