sql程序设计题共34个题带答案.docx
- 文档编号:24098726
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:14
- 大小:19.06KB
sql程序设计题共34个题带答案.docx
《sql程序设计题共34个题带答案.docx》由会员分享,可在线阅读,更多相关《sql程序设计题共34个题带答案.docx(14页珍藏版)》请在冰豆网上搜索。
sql程序设计题共34个题带答案
Sql程序设计题
1.---------------
创建存储过程gch:
数据表jt包含以下列:
单位名称、姓名、职称、基本工资、职贴。
根据“职称”列,计算“职贴”列。
职称与职贴的对应关系:
教授490;副教授250;讲师150;助教100。
注:
“职称”的的类型为Varchar(10)。
createprocgch
as
updatejtset职贴=
case职称
when'教授'then490
when'副教授'then250
when'讲师'then150
else100
end
2.---------------
求s=-99-97-95-93-…-3-1
declare@iint,@sfloat
set@i=-99
set@s=0
while@i<=-1
begin
set@s=@s+@i
set@i=@i+1
end
print@s
3.---------------
编写程序,在100~999三位整数范围内,找出这样的数(水仙花数):
该数等于其各位数字的立方和。
如:
371=3^3+7^3+1^3,即371就是水仙花数。
注意:
3^3表示3的3次方,7^3表示7的3次方,1^3表示1的3次方。
DECLARE@Aint,@Bint,@Cint
DECLARE@Xint
SET@x=100
while@X<=999
begin
set@A=FLOOR(@x/100)
SET@B=FLOOR((@x-@a*100)/10)
SET@C=@X-@A*100-@B*10
if@x=power(@A,3)+power(@B,3)+power(@c,3)
print@x
set@X=@X+1
end
4.---------------
创建一个存储过程,输入一个自然数,判断其是否为素数并使用输出参数将判断结果输出。
createprocsushu@aint,@pvarchar
(2)output
as
declare@iint
set@i=2
while@i<=@a-1
begin
if@a%@i=0break
set@i=@i+1
end
if@i>@a-1
set@p='是'
else
set@p='否'
5.---------------
求自然数1~100之间偶数之和
declare@iint,@sfloat
set@i=1
set@s=0
while@i<=100
begin
set@s=@s+@i
set@i=@i+2
end
print@s
6.---------------
创建存储过程gcl:
统计数据表zcj(列名:
学号、班级、姓名、期末成绩、平时成绩、总成绩)每个班级的人数。
createprocgcl
as
select班级,count(*)fromzcjgroupby班级
7.---------------
求s=2+4+8+16…+1024
declare@iint,@sfloat
set@i=1
set@s=0
while@i<=10
begin
set@s=@s+power(2,@i)
set@i=@i+1
end
print@s
8.---------------
编写程序,输出由1、2、3、4、5、6这六个数字组成的所有可能的两位数,并统计它们的个数。
declare@iint,@jint,@pvarchar(100),@nint
select@i=1,@n=0
while@i<=6
begin
select@j=1,@p=''
while@j<=6
begin
set@p=@p+str(@i*10+@j,2)+space
(2)
set@n=@n+1
set@j=@j+1
end
print@p
set@i=@i+1
end
print@n
9.---------------
创建存储过程gcb:
计算数据表gz(列名:
单位名称、姓名、职称、基本工资、津贴、水电费、实发工资、备注)中的备注:
职称为“教授”、“讲师”、“助教”分别对应的备注为“高职”、“中职”、“初职”。
注:
“职称”的的类型为Varchar(10),“备注”列的类型为Varchar(10)。
createprocgcb
as
updategzset备注=case职称
when‘教授’then‘高职’
when‘讲师’then‘中职’
when‘助教’then‘初职’end
10.---------------
求s=a+aa+aaa+…+aaa…aaa(n个a),其中a和n的值由用户使用Set或Select语句自己输入。
例如,当a=3,n=4时,S=3+33+333+3333。
11.---------------
计算1^3+2^3+3^3+…+100^3.其中:
1^3表示1的3次方,2^3表示2的3次方,…,100^3表示100的3次方。
declare@iint,@sfloat
set@i=1
set@s=0
while@i<=100
begin
set@s=@s+power(@i,3)
set@i=@i+1
end
print@s
12.---------------
输出一个数列:
10,9,8,7,6,5,4,3,2,1
declare@aint
set@a=10
while@a>=1
begin
print@a
set@a=@a-1
end
13.---------------
创建存储过程gcm:
根据学号查询对应的准考证号,数据表为学生信息表xsxx(列名:
准考证号,学号,姓名,性别,专业,学院)。
当执行存储过程execgcm'201352480577',则可以显示学号为'201352480577'的同学的准考证号。
注:
“准考证号”、“学号”列的数据类型均为char(12)。
createprocgcm@xhchar(12)
as
select准考证号fromxsxxwhere学号=@xh
execgcm‘201352480577’
14.---------------
计算1!
+2!
+…+20!
declare@iint,@jint,@sreal,@preal
select@i=1,@s=0,@p=1
while@i<=20
begin
set@p=@p*@i
set@s=@s+@p
set@i=@i+1
end
print@s
15.---------------
利用随机函数RAND和函数floor,产生30个1到20之间的随机整数,使用WHILE语句显示这30个随机数。
Declare@iint
Set@i=1
While@i<=30
Begin
Printfloor(rand()*20+1)
Set@i=@i+1
End
16.---------------
求s=0.01+0.02+0.03+…+1
declare@ifloat,@sfloat
set@i=0.01
set@s=0
while@i<=1
begin
set@s=@s+@i
set@i=@i+0.01
end
print@s
17.---------------
创建存储过程gce:
计算数据表fk(列名:
序号、姓名、数学、物理、历史、政治、总分、分科意见)中的分科意见。
总分>360,全能生;数学、物理分数之和>=160,理科生;其它情况:
文科生。
注:
“分科意见”列的类型为Varchar(10)。
createprocgce
as
updatekfset分科意见=case
when总分>360then‘全能生’
when数学+物理>=160then‘理科生’
then‘文科生’end
18.---------------
创建存储过程gco:
根据学号查询和该学号同一宿舍同学的姓名及联系电话,数据表为学生管理表xsgl(列名:
学号,姓名,性别,宿舍号,专业,院系,联系电话)。
当执行存储过程execgco'201352480577',则可以显示和该学号同宿舍同学的姓名及联系电话。
注:
“学号”列的数据类型为char(12),“宿舍号”和“联系电话”列的数据类型均为varchar(20)。
createprocgco@xhchar(12)
as
select姓名,联系电话fromxsgl
where宿舍号=(select宿舍号from学号=@xh)
execgco'201352480577'
19.---------------
设纸的厚度为0.5毫米,将纸对折,再对折…,求至少对折多少次,纸张的厚度能达到珠穆朗玛峰的高度8848米。
declare@hreal,@nint
select@h=0.0005,@n=0
while@h<=8848.13
begin
set@h=@h*2
set@n=@n+1
end
print'至少对折'+cast(@nasvarchar)+'次可以达到'
20.---------------
创建存储过程gck:
统计数据表zcj(列名:
学号、班级、姓名、期末成绩、平时成绩、总成绩)每个班级总成绩的平均值。
Createprocgck
As
Select班级,avg(总成绩)fromzcj
Groupby班级
21.---------------
在国际象棋棋盘的64个格上依次放入小麦1粒、2粒、4粒、8粒…,求按此规律放满64个格需要多少粒小麦。
declare@aint,@bfloat
set@a=0
set@b=0
while@a<=63
begin
set@b=@b+power(2.0,@a)
set@a=@a+1
end
print@b
22.---------------
求s=1+1/2*2+1/3*3+1/4*4+…+1/100*100
declare@ifloat,@sfloat
set@i=1
set@s=0
set@s=0
while@i<=100
begin
set@s=@s+1.0/(@i*@i)
set@i=@i+1
end
print@s
23.---------------
创建存储过程gcq:
根据优惠率输出对应图书的折后价,数据表为图书管理表tsgl(列名:
图书标识,书名,图书分类,价格,出版日期)。
如优惠率为20%,当执行存储过程execgcq0.2,则显示对应图书的图书标识,书名及折后价。
注:
“图书标识”列的数据类型为char(6),“价格”列的数据类型为real。
Createprocgcq@yhreal
As
Select图书标识,书名,价格*@yhas折后价fromtsgl
24.---------------
创建存储过程gcn:
根据姓名查询对应的准考证号,数据表为学生信息表xsxx(列名:
准考证号,学号,姓名,性别,专业,学院)。
当执行存储过程execgcn'李丽',则可以显示姓名为'李丽'同学的准考证号。
注:
“准考证号”列的数据类型为char(12),“姓名”列的数据类型为varchar(10)。
Createprocgcn@xmvarchar(10)
As
Select姓名,准考证号fromxsxxwhere姓名=@xm
25.---------------
创建存储过程gci:
数据表bz包含以下列:
姓名、性别、毕业学校、毕业时间、获奖级别、获奖次数、备注。
根据“毕业时间”列计算“备注”列:
2007年毕业的备注为“新聘”,其它为空白。
注:
“备注”列的类型为Varchar(10),“毕业时间”列的类型为Datetime。
Createprocgci
As
Updatebzset备注=case
Whenyear(毕业时间)=2007then‘新聘’
Else‘’end
26.---------------
有一个分数序列,求出这个序列的前20项之和。
2/1,3/2,5/3,8/5,13/8,21/13,….提示:
后一项是前一项的倒数加1。
declare@aint,@bfloat,@treal
set@a=1
set@b=0
set@t=2.0/1
while@a<=20
begin
set@b=@b+@t
set@t=1.0/@t+1
set@a=@a+1
end
print@b
27.---------------
创建存储过程gcp:
根据图书标识删除对应的图书信息,数据表为图书管理表tsgl(列名:
图书标识,书名,图书分类,价格,出版日期)。
当执行存储过程execgcp'TC4203',则可以删除标识为'TC4203'对应图书的数据。
注:
“图书标识”列的数据类型为char(6)。
createprocgcp@tsbschar(6)
as
deletefromtsglwhere图书标识=@tsbs
28.---------------
求和:
1^1+2^2+3^3+…+10^10.其中:
1^1表示1的1次方,2^2表示2的2次方,…,10^10表示10的10次方。
declare@ifloat,@sfloat
set@i=1
set@s=0
while@i<=10
begin
set@s=@s+power(@i,@i)
set@i=@i+1
end
print@s
29.---------------
计算10!
declare@iint,@sfloat
set@i=1
set@s=1
while@i<=10
begin
set@s=@s*@i
set@i=@i+1
end
print@s
30.---------------
利用循环结构求s的值,S=1*2*3+2*3*4+…+i*(i+1)*(i+2)+…+15*16*17的值。
declare@iint,@sfloat
set@i=1
set@s=0
while@i<=15
begin
set@s=@s+@i*(@i+1)*(@i+2)
set@i=@i+1
end
print@s
31.---------------
创建存储过程gca:
计算数据表gz(列名:
单位名称、姓名、基本工资、津贴、个人税、实发工资、备注)中的备注:
单位名称为“理学院”、“工学院”、“商学院”分别对应的备注为“理”、“工”、“商”。
注:
“单位名称”的的类型为Varchar(20),“备注”列的类型为Varchar(10)。
Createprocgca
As
Updategzset备注=case单位名称
When‘理学院’then‘理’
When‘工学院’then‘工’
When‘商学院’then‘商’
end
32.---------------
创建存储过程gcg:
数据表mz包括以下列:
工号、司机、货物类别、毛重、皮重、净重。
根据“司机”列数据计算“工号”列,李大方、赵美丽、张可爱的工号分别是“01”、“02”、“03”。
注:
“司机”列的类型为Varchar(10),“工号”列的类型为char
(2)。
Createprocgcg
As
Updatemzset工号=case司机
When‘李大方’then‘01’
When‘赵美丽’then‘02’
When‘张可爱’then‘03’
end
33.---------------
创建存储过程gcj:
统计数据表xs(列名:
序号、姓名、部门、工作时数、小时报酬、薪水)每个部门的薪水之和。
Createprocgcj
As
Select部门,sum(薪水)fromxsgroupby部门
34.---------------
找出并输出100-999之间所有能被7整除的数
declare@iint
set@i=100
set@s=0
while@i<=999
begin
if@i%7=0
print@i
set@i=@i+1
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sql 程序设计 34 个题带 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)