1 存储过程访问数据库一、实验内容和要求在实验 2 建立的数据库 TEST 的基础之上进行。编写存储过程,完成以下功能: 1、统计“离散数学”课程的成绩分布情况,即按照各分数段来统计人数; 2、统计任意一门课程的平均成绩; 3、将学生选课成绩从百分制改为等级制(即 A、B、C、D、E)。以‘ sa’身份登录 SQL Server 系统,执行 sp_addlogin 'SYSTEM' , 'MANAGER' , 'TEST' sp_adduser 'SYSTEM' , 'SYSTEM' 创建登录名'SYSTEM' , 然后以登录名'SYSTEM' 的身份登录。(一)、统计“离散数学”课程的成绩分布情况 1 、创建存储过程(1 )创建需要的表结构 CREATE TABLE Rank ( division CHAR ( 20 ), number INT )(2 )编写存储过程 CREATE PROCEDURE proStatisticMark ( ***@sName CHAR ( 50 )) AS BEGIN DECLARE ***@less60 int , ***@b60a70 int , ***@b70a80 int , ***@b80a90 int , ***@more90 int , ***@o char (4) SET ***@less60 =0 SET ***@b60a70 =0 SET ***@b70a80 =0 SET ***@b80a90 =0 SET ***@more90 =0 SET ***@o = '' SELECT ***@o = CNO FROM Course AME = ***@sName IF ***@o = '' SELECT ' 输入错误,不存在此用户。' SELECT ***@less60 = count (*) FROM SC O = ***@o AND GRADE < 60 SELECT ***@b60a70 = count (*) 2 FROM SC O = ***@o AND GRADE >= 60 AND GRADE < 70 SELECT ***@b70a80 = count (*) FROM SC O = ***@o AND GRADE >= 70 AND GRADE < 80 SELECT ***@b80a90 = count (*) FROM SC O = ***@o AND GRADE >= 80 AND GRADE < 90 SELECT ***@more90 = count (*) FROM SC O = ***@o AND GRADE >= 90 DELETE FROM Rank INSERT INTO Rank VALUES ( '[0,60)' , ***@less60 ) INSERT INTO Rank VALUES ( '[60,70)' , ***@b60a70 ) INSERT INTO Rank VALUES ( '[70,80)' , ***@b70a80 ) INSERT INTO Rank VALUES ( '[80,90)' , ***@b80a90 ) INSERT INTO Rank VALUES ( '[90,100]' , ***@more90 ) END 2 、执行存储过程 EXECUTE proStatisticMark ' 离散数学' EXECUTE proStatisticMark ' 运筹学' 然后在表 RANK 中查看执行结果。 S
存储过程实现学生成绩由百分制到等级制 来自淘豆网www.taodocs.com转载请标明出处.