SQL数据库实验和参考答案

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

数据库实验和参考答案

上机实验七

1.声明一个字符串型的局部变量,并对其赋值:‘我的变量’,然后显示出此值。

declare @a char(10)

set @a='我的变量'

--select @a as 变量的值

print @a

2.编程实现如下功能:

1)声明两个整形的局部变量:@i1和@i2,对@i1赋初值:10,@i2的值为:@i1乘以5,再显示@i2

的结果值。

declare @i1 int,@i2 int

set @i1=10

set @i2=@i1*5

print @i2

2)用While语句实现5000减1,

减2,……一直减到50的计算,并显示最终的结果。

declare @sum int,@i int

set @sum=5000

set @i=1

while(@i<=50)

begin

set @i=@i+1

end

print @sum

3)输出100以内的素数。

declare @i smallint,@j

smallint,@k smallint

set @i=2

while(@i<=100)

begin

set @k=0

set @j=2

while(@j<@i)

begin

if(@i%@j=0)

begin

set @j=@I

end

set @j=@j+1

end

if @k=0

print @I

set @i=@i+1

end

4)将字符数在20以内的字符串变量C的值逆序输出。要求输出界面为:

declare @i varchar(20),@j int,@k varchar(20)

set @j=1

set @k=''

while @j<=len(@i)

begin

set @k=substring(@i,@j,1) set @j=@j+1

end

print '字符串C的值:'+@i

print 'C的逆序字符串:'+@k

5)从SC表中查询所有学生的选课成

绩情况,分别统计各分数段人数,

并输出统计结果。

输出格式为:

缺考:人

<60:人

60-69:人

70-79:人

80-89:人

90-100:人

select 成绩=

case

when 成绩is null then '缺考:' when 成绩<60 then '<60'

when 成绩>=60 and 成绩<70 then '60-69:'

when 成绩between 70 and 79 then '70-79:'

when 成绩between 80 and 89 then '80-89:'

when 成绩between 90 and 100 then '90-100:'

end

into ss1

from sc

select 成绩分数段,count(*) 人数from ss1

group by 成绩

上机实验八

3.创建满足下述条件的存储过程:1)创建查询每个学生的修课学分

的存储过程,要求列出学生学号

及总学分。

create procedure t1_1

as

select 学号,sum(学分) 总学分

from sc ,course where sc.课程号=course.课程号group by 学号

go

exec t1_1

2)创建查询个学生的学号、姓名、课程号、课程名、课程学分的存

储过程,将学生所在的系作为输

入参数,执行此存储过程,并分

别指定一些不同的输入参数值。

create proc t1_2

@szx char(20)

as

select student.学号,姓名,course.课程号,课程名,学分

from student, sc ,course where sc.学号=student.学号

and course.课程号=sc.课程号and 所在系=@szx

exec t1_2 '计算机系'

exec t1_2 '信息系'

3)创建计算1+2+3+……一直加到

指定值的结果的存储过程,要

求:计算的终止值由输入参数决

定,计算结果由输出参数表示。

实验如下数据并记下结果:

1+2+3+ (150)

1+2+3+ (500)

create proc t1_3

@in1 int,@out int output

as

declare @sum int

declare @n int

set @n=1

beg:

if(@n<=@in1)

begin

set @sum=@sum+@n

set @n=@n+1

goto beg

end

set @out=@sum

declare @i1 int

exec t1_3 150,@i1 out

相关文档
最新文档