1 利用系统存储过程列出当前SQL Server实例中的所有数据库。
2 创建存储过程,查询学生基本信息。
3 创建存储过程,查询特定同学的平均成绩。
4 创建存储过程,查询特定课程的平均成绩。
5 修改内容4的存储过程,实现存储过程可以计算及格率,对输出的及格率进行判断,给出相应的评价信息(当及格率小于0.3时,打印“题目过难”;及格率高于0.7时,打印“题目过易”;其它情况,打印“题目难度适中”)。
--1、利用系统存储过程列出当前SQL Server实例中的所有数据库。
SELECT Name FROM Master..SysDatabases
ORDER BY Name
--2、创建存储过程,查询学生基本信息。
GO
CREATE PROCEDURE TEST1 @sno nvarchar(8)
AS
SELECT *
FROM Student
WHERE sno = @sno
EXECUTE TEST1'1004'
--3、创建存储过程,查询特定同学的平均成绩。
GO
CREATE PROCEDURE AVG_GRADE @sno nvarchar(8)
AS
SELECT AVG(grade)
FROM SC
GROUP BY sno
HAVING sno = @sno
--4、创建存储过程,查询特定课程的平均成绩。
GO
CREATE PROCEDURE AVG_C @cno nvarchar(10)
AS
SELECT AVG(grade)
FROM SC
GROUP BY cno
HAVING cno = @cno
--5、修改内容4的存储过程,实现存储过程可以计算及格率,对输出的及格率进行判断,给出相应的评价信息
--(当及格率小于0.3时,打印“题目过难”;及格率高于0.7时,打印“题目过易”;其它情况,打印“题目难度适中”)。
GO
ALTER PROCEDURE AVG_C @cno nvarchar(10)
AS
DECLARE @geshu int
SELECT @geshu = COUNT(*) FROM SC WHERE @cno = cno AND grade >=60
DECLARE @ge int
SELECT @ge = COUNT(*) FROM SC WHERE @cno = cno
IF @ge > 0
BEGIN
IF @geshu/@ge < 0.3
PRINT '题目过难'
IF @geshu/@ge > 0.7
PRINT '题目过难'
ELSE
PRINT '题目难度适中'
END