1、sql程序设计题共34个题带答案Sql程序设计题1.-创建存储过程gch: 数据表jt包含以下列:单位名称、姓名、职称、基本工资、职贴。根据“职称”列,计算“职贴”列。职称与职贴的对应关系:教授490;副教授250;讲师150;助教100。注:“职称”的的类型为Varchar(10)。create proc gch as update jt set 职贴=case 职称 when 教授 then 490 when 副教授 then 250 when 讲师 then 150 else 100 end2.-求s=-99-97-95-93-3-1declare i int,s floatset i=
2、-99set s=0while i=-1beginset s=s+iset i=i+1endprint s3.-编写程序,在100999三位整数范围内,找出这样的数(水仙花数):该数等于其各位数字的立方和。如:371=33+73+13,即371就是水仙花数。注意:33表示3的3次方,73表示7的3次方,13表示1的3次方。DECLARE A int,B int,C intDECLARE X intSET x=100while X=999beginset A=FLOOR(x/100)SET B=FLOOR(x-a*100)/10)SET C=X-A*100-B*10if x=power(A,3)
3、+power(B,3)+power(c,3)print xset X=X+1end4.-创建一个存储过程,输入一个自然数,判断其是否为素数并使用输出参数将判断结果输出。create proc sushu a int,p varchar(2) output as declare i intset i=2while ia-1set p= 是elseset p= 否5.-求自然数1100之间偶数之和declare i int,s floatset i=1set s=0while i=100beginset s=s+iset i=i+2endprint s6.-创建存储过程gcl: 统计数据表zcj
4、(列名:学号、班级、姓名、期末成绩、平时成绩、总成绩)每个班级的人数。create proc gcl as select 班级,count(*) from zcj group by 班级7.-求s=2+4+8+16+1024declare i int,s floatset i=1set s=0while i=10beginset s=s+power(2,i)set i=i+1endprint s8.-编写程序,输出由1、2、3、4、5、6这六个数字组成的所有可能的两位数,并统计它们的个数。declare i int,j int,p varchar(100),n intselect i=1,n=
5、0while i=6beginselect j=1 ,p=while j=6beginset p=p+str(i*10+j,2)+space(2)set n=n+1set j=j+1endprint pset i=i+1endprint n9.-创建存储过程gcb: 计算数据表gz(列名:单位名称、姓名、职称、基本工资、津贴、水电费、实发工资、备注)中的备注:职称为“教授”、“讲师”、“助教”分别对应的备注为“高职”、“中职”、“初职”。注:“职称”的的类型为Varchar(10),“备注”列的类型为Varchar(10)。create proc gcb as update gz set 备注
6、=case 职称when 教授 then 高职when 讲师 then 中职when 助教 then 初职 end10.-求s=a+aa+aaa+aaaaaa(n个a),其中a和n的值由用户使用Set或Select语句自己输入。例如,当a=3,n=4时,S=3+33+333+3333。11.-计算13+23+33+1003. 其中:13表示1的3次方,23表示2的3次方,1003表示100的3次方。declare i int,s floatset i=1set s=0while i=1beginprint aset a=a-1end13.-创建存储过程gcm: 根据学号查询对应的准考证号,数据
7、表为学生信息表xsxx(列名:准考证号,学号,姓名,性别,专业,学院)。当执行存储过程exec gcm 201352480577,则可以显示学号为201352480577的同学的准考证号。注:“准考证号”、“学号”列的数据类型均为char(12)。create proc gcm xh char(12) as select 准考证号 from xsxx where 学号=xhexec gcm 20135248057714.-计算1!+2!+20!declare i int,j int,s real,p realselect i=1,s=0,p=1while i=20beginset p=p*is
8、et s=s+pset i=i+1endprint s15.-利用随机函数RAND和函数floor,产生30个1到20之间的随机整数,使用WHILE语句显示这30个随机数。Declare i intSet i=1While i=30BeginPrint floor(rand()*20+1)Set i=i+1End16.-求s=0.01+0.02+0.03+1declare i float,s floatset i=0.01set s=0while i360,全能生;数学、物理分数之和=160,理科生;其它情况:文科生。注:“分科意见”列的类型为Varchar(10)。 create proc
9、gceas update kf set 分科意见=case when 总分360 then 全能生when 数学+物理=160 then 理科生then 文科生 end18.-创建存储过程gco:根据学号查询和该学号同一宿舍同学的姓名及联系电话,数据表为学生管理表xsgl(列名:学号,姓名,性别,宿舍号,专业,院系,联系电话)。当执行存储过程exec gco 201352480577,则可以显示和该学号同宿舍同学的姓名及联系电话。注:“学号”列的数据类型为char(12),“宿舍号”和“联系电话”列的数据类型均为varchar(20)。create proc gco xh char(12) a
10、s select 姓名,联系电话 from xsglwhere 宿舍号=(select 宿舍号 from 学号=xh)exec gco 20135248057719.-设纸的厚度为0.5毫米,将纸对折,再对折,求至少对折多少次,纸张的厚度能达到珠穆朗玛峰的高度8848米。declare h real,n intselect h=0.0005,n=0while h=8848.13beginset h=h*2set n=n+1endprint 至少对折+cast(n as varchar)+次可以达到20.-创建存储过程gck: 统计数据表zcj (列名:学号、班级、姓名、期末成绩、平时成绩、总成
11、绩)每个班级总成绩的平均值。Create proc gck As Select 班级,avg(总成绩) from zcjGroup by 班级21.-在国际象棋棋盘的64个格上依次放入小麦1粒、2粒、4粒、8粒,求按此规律放满64个格需要多少粒小麦。declare a int,b floatset a=0set b=0while a=63beginset b=b+power(2.0,a)set a=a+1endprint b22.-求s=1+1/2*2+1/3*3+1/4*4+1/100*100declare i float,s floatset i=1set s=0set s=0while
12、i=100beginset s=s+1.0/(i*i)set i=i+1endprint s23.-创建存储过程gcq:根据优惠率输出对应图书的折后价,数据表为图书管理表tsgl(列名:图书标识,书名,图书分类,价格,出版日期)。如优惠率为20%,当执行存储过程exec gcq 0.2,则显示对应图书的图书标识,书名及折后价。注:“图书标识”列的数据类型为char(6),“价格”列的数据类型为real。Create proc gcq yh realAsSelect 图书标识,书名,价格*yh as 折后价 from tsgl24.-创建存储过程gcn:根据姓名查询对应的准考证号,数据表为学生信息表xsxx(列名:准考证号,学号,姓名,性别,专业,学院)。当执行存储过程exec gcn 李丽,则可以显示姓名为李丽同学的准考证号。注:“准考证号”列的数据类型为ch
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1