T-SQL程序设计和存储过程

一、声明一个整型变量a,赋值为5,再声明一个长度为10的字符型变量b,赋值为“数据库”。输出(PRINT)变量a和变量b。

DECLARE @a INT = 5;

DECLARE @b VARCHAR(10) = '数据库';

PRINT @a;

PRINT @b;

二、依次查询选修了课程的学生姓名(按性别排序)和选修了课程的学生人数。

-- 查询选修了课程的学生姓名(按性别排序)

SELECT Sname, Ssex

FROM Student WHERE Sno IN (

SELECT DISTINCT Sno

FROM SC

) ORDER BY Ssex; -- 按照性别排序

-- 查询选修了课程的学生人数

SELECT COUNT(DISTINCT Sno) AS StudentCount

FROM SC;

三、使用IF语句进行条件判断。声明变量Score,数据类型为整型,并给Score赋一个任意值,并根据Score的值判断成绩是否合格。如果Score>=60,输出“成绩合格”,否则,输出“成绩不合格”。

DECLARE @Score INT = 75; -- 给Score赋一个任意值,比如75

IF @Score >= 60

PRINT '成绩合格';

ELSE

PRINT '成绩不合格';

四、使用CASE语句进行条件判断。查询每个学生的姓名和平均成绩,并根据平均成绩输出成绩等级(列名即为成绩等级)。平均成绩大于等于90分,输出“等级A”;平均成绩大于等于80分且小于90,输出“等级B”;平均成绩大于等于70分且小于80,输出“等级C”;平均成绩大于等于60分且小于70,输出“等级D”;平均成绩小于60,输出“等级E”。

SELECT Sname, AVG(Grade) AS AverageGrade, CASE WHEN AVG(Grade) >= 90 THEN '等级A' WHEN AVG(Grade) >= 80 AND AVG(Grade) < 90 THEN '等级B' WHEN AVG(Grade) >= 70 AND AVG(Grade) < 80 THEN '等级C' WHEN AVG(Grade) >= 60 AND AVG(Grade) < 70 THEN '等级D' ELSE '等级E' END AS 成绩等级 FROM Student JOIN SC ON Student.Sno = SC.Sno GROUP BY Sname ORDER BY CASE WHEN AVG(Grade) >= 90 THEN 1 WHEN AVG(Grade) >= 80 THEN 2 WHEN AVG(Grade) >= 70 THEN 3 WHEN AVG(Grade) >= 60 THEN 4 ELSE 5 END; -- 按照成绩等级排序

五、使用WHILE语句完成循环程序。计算1+3+5+7+……+99的和,并输出和。

DECLARE @sum INT = 0; -- 初始化和为0

DECLARE @num INT = 1; -- 初始化起始数字为1

WHILE @num <= 99

BEGIN

SET @sum = @sum + @num; -- 累加当前数字到和

SET @num = @num + 2; -- 往后移两位

END

PRINT '1+3+5+7+...+99 的和为: ' + CAST(@sum AS VARCHAR); -- 输出结果

六、创建一个存储过程,命名为“proc+你的名字全拼的首字母+下划线+1”(张三:proc_zs_1)。要求实现如下功能:产生学分为‘4’的课程学生选课情况列表,其中包括学生姓名、课程名、学分、系别、该门课程的成绩。调用此存储过程,显示执行结果。

-- 创建存储过程 CREATE PROCEDURE proc_zs_1 AS BEGIN SELECT S.Sname AS 学生姓名, C.Cname AS 课程名, C.Credit AS 学分, S.Sdept AS 系别, SC.Grade AS 成绩 FROM Student S JOIN SC ON S.Sno = SC.Sno JOIN Course C ON SC.Cno = C.Cno WHERE C.Credit = 4; END; -- 调用存储过程 EXEC proc_zs_1;

七、使用sp_helptext查看上一题创建的存储过程的文本。

EXEC sp_helptext 'proc_zs_1';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值