数据库 实验六 游标、存储过程的创建和使用
–1、游标操作–在选修数据库中,以Student(sno,sname,ssex,sage,sdept),Course(cno,cname,cpno,credit),SC(sno,cno,grade)表为基础完成下列游标操作。–(1)在Student表中定义一个包含sno,sname,ssex,sage,sdept的滚动游标,游标的名称为“cs-cursor”,并将游标中的数据逐条显示出来,并读取第
–1、游标操作
–在选修数据库中,以Student(sno,sname,ssex,sage,sdept),Course(cno,cname,cpno,credit),SC(sno,cno,grade)表为基础完成下列游标操作。
–(1)在Student表中定义一个包含sno,sname,ssex,sage,sdept的滚动游标,游标的名称为“cs-cursor”,并将游标中的数据逐条显示出来,并读取第一行数据、最后一行数据,当前行前面的一行数据,当前游标开始的第二行数据,关闭游标,释放游标。
declare cs_cursor cursor
scroll for select * from student open cs_cursor
fetch next from cs_cursor
fetch prior from cs_cursor--向前一行
fetch first from cs_cursor--游标移到第一行
fetch last from cs_cursor--游标移到最后一行
–(2)在Student表中定义一个所在系部为CS,包含sno,sname,ssex的游标,游标的名称为“cs-cursor”,并将游标中的绝对位置为2的学生的姓名改为“王楠”,性别改为“女”。
declare cs_cursor2 cursor
scroll for select sno,sname,ssex from student where sdept='CS';
open cs_cursor2;
fetch ABSOLUTE 2 from cs_cursor2 ;
update student set sname='王楠', ssex='女' where current of cs_cursor2;
–(3)在Student表中定义一个包含sno,sname,grade的游标,游标的名称为“cs-cursor”,并将游标遍历整个数据表。
declare cs_cursor3 cursor
scroll for select s.sno,sname,grade from student s,sc where s.sno=sc.sno ;
open cs_cursor3;
declare @no char
declare @name char
declare @grade int
fetch NEXT from cs_cursor3 INTO @no,@name,@grade while @@FETCH_STATUS=0
BEGIN
PRINT @no+' '+@name+' '+str(@grade)
fetch NEXT from cs_cursor3 INTO @no,@name,@grade
END;
close cs_cursor3;
DEALLOCATE cs_cursor3;
–2、存储器操作
–在选修数据库中,以Student(sno,sname,ssex,sage,sdept),Course(cno,cname,cpno,credit),SC(sno,cno,grade)表为基础创建下列存储过程。
–(1)创建一个向Student表插入数据的存储过程,该过程需要用5个参数,分别传递
sno,sname,ssex,sage,sdept。
CREATE PROCEDURE sp_insert(@sno char,@sname char,@ssex char,@sage int,@sdept char)
AS
insert into student values(@sno,@sname,@ssex,@sage,@sdept);
--CLOSE sp_insert
--DEALLOCATE sp_insert
--exec sp_insert '201825139','莉莉','女',20,'CS';
–(2)创建一个向Course表插入数据的存储过程,该过程需要用4个参数,分别传递cno,cname,cpno,ccredit。
CREATE PROCEDURE cp_insert(@cno char,@cname char,@cpno int,@ccredit char)
AS
insert into course values(@cno,@cname,@cpno,@ccredit);
–(3)创建一个向SC表插入数据的存储过程,该过程需要用3个参数,分别传递sno,cno,grade。
CREATE PROCEDURE scp_insert(@sno char,@cno char,@grade int)
AS
insert into sc values(@sno ,@cno ,@grade );
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)