2020数据库作业题

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

一、.创建带有输入和输出参数的存储过程。

A..创建计算某个学生的个人平均成绩的通用存储过程PJ,执行存储过程PJ,并打印学号=

‘ 9601005’计算结果。

use xssjk

go

create procedure PJ

@st_no char(8),@average float output

as

select @average=avg(成绩)

from 成绩

Where 学号=@st_no

go

执行存储过程:

declare @average float

exec PJ'9601002',@average output

print @average

B.创建统计某门课程选课人数的通用存储过程TJ,执行存储过程TJ,打印课程号=‘005’的计算结果。

use xssjk

go

create procedure TJ1

@kch char(3),@xk int output

as

select @xk=COUNT(学号)

from 成绩

where 课程号=@kch

group by 课程号

Go

执行存储过程;

use xssjk

go

declare @xk int

exec TJ1'001',@xk output

print @xk

二、

1.什么是游标?为什么要使用游标?

(1)游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果

每个游标区都有一个名字,用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。

(2)SQL语言与主语言具有不同数据处理方式

SQL语言是面向集合的,一条SQL语句原则上可以产生或处理多条记录;

主语言是面向记录的,一组主变量一次只能存放一条记录;

仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求。

2.创建游标及使用游标的步骤?

(1)创建:

使用declare语句

语句格式

declare <游标名> scroll cursor

for ;

(2)步骤:

1.说明游标

2.打开游标

3.推进游标指针并取当前记录

4.关闭游标

3.创建游标pjcj,打印平均成绩第3名的学生的学号、平均成绩

use xssjk

declare pjcj SCROLL CURSOR

FOR

SELECT 学号,avg(成绩)

FROM dbo.成绩

GROUP BY 课程号, 成绩, 学号

ORDER BY avg(成绩) DESC

open pjcj

declare @xh nvarchar(7),@avggrade int

fetch absolute 3

from pjcj

into @xh,@avggrade

print '第三名的学号是:'+@xh

print '第三名的平均成绩是:'+str(@avggrade)

close pjcj

4.创建游标secon,打印成绩第2名的学生的学号、总成绩

use xssjk

DECLARE secon SCROLL CURSOR

FOR SELECT 学号,sum(成绩)

FROM dbo.成绩

GROUP BY 成绩,学号

ORDER BY sum(成绩) DESC

open secon

DECLARE @xh nvarchar(7),@cj int

FETCH ABSOLUTE 2

FROM secon

into @xh,@cj

print '第二名的学号是:'+@xh

print '第二名的成绩是:'+str(@cj)

Close secon

5.把上述两个游标作为储存过程p34创建到数据库服务器中,执行该过程use xssjk

go

create procedure PJCJ

@xh char(8) output,@cj numeric(6,2) output

as

DECLARE seconx SCROLL CURSOR

FOR

SELECT 学号,sum(成绩)

FROM dbo.成绩

GROUP BY 成绩,学号

ORDER BY sum(成绩) DESC

open seconx

FETCH ABSOLUTE 2

FROM seconx

into @xh,@cj

执行过程:

use xssjk

declare @xh char(8),@cj numeric(6,2)

exec PJCJ @xh output,@cj output

print @xh

1.

2.关系SC(SN,CN,CJ)是第几范式?为什么?

是第一、第二、第三范式。

首先,它属于第一范式,SC所有属性都是不可分的基本数据项;

再者,它属于第二范式,SC中CJ属性完全函数依赖于SN和CN;

最后,它属于第三范式,非主属性只有一个,不存在函数依赖关系。

3.创建游标,查询统计选课人数为第3名的课程号,打开游标,把选课人数为第3名的课程号

及选课人数打印出来。

use xssjk

DECLARE pjcj SCROLL CURSOR

相关文档
最新文档