1存储过程访问数据库一、实验内容和要求在实验2建立的数据库TEST的基础之上进行。编写存储过程,完成以下功能:1、统计“离散数学”课程的成绩分布情况,即按照各分数段来统计人数;2、统计任意一门课程的平均成绩;3、将学生选课成绩从百分制改为等级制(即A、B、C、D、E)。以‘sa’身份登录SQLServer系统,执行sp_addlogin'SYSTEM','MANAGER','TEST'sp_adduser'SYSTEM','SYSTEM'创建登录名'SYSTEM',然后以登录名'SYSTEM'的身份登录。(一)、统计“离散数学”课程的成绩分布情况1、创建存储过程(1)创建需要的表结构CREATETABLERank(divisionCHAR(20),numberINT)(2)编写存储过程CREATEPROCEDUREproStatisticMark(***@sNameCHAR(50))******@less60int,***@b60a70int,***@b70a80int,***@b80a90int,***@more90int,***@ochar(4)******@less60=******@b60a70=******@b70a80=******@b80a90=******@more90=******@o=''******@AME=***@******@o=''SELECT'输入错误,不存在此用户。'******@less60=count(*)O=***@oANDGRADE<******@b60a70=count(*)O=***@oANDGRADE>=60ANDGRADE<******@b70a80=count(*)O=***@oANDGRADE>=70ANDGRADE<******@b80a90=count(*)O=***@oANDGRADE>=80ANDGRADE<******@more90=count(*)O=***@oANDGRADE>=90DELETEFROMRankINSERTINTORankVALUES('[0,60)',***@less60)INSERTINTORankVALUES('[60,70)',***@b60a70)INSERTINTORankVALUES('[70,80)',***@b70a80)INSERTINTORankVALUES('[80,90)',***@b80a90)INSERTINTORankVALUES('[90,100]',***@more90)END2、执行存储过程EXECUTEproStatisticMark'离散数学'EXECUTEproStatisticMark'运筹学'然后在表RANK中查看执行结果。SELECT*FROMRank(二)、统计任意一门课程的平均成绩1、创建存储过程(1)创建所需要的表结构。ameCHAR(50),avggNUMERIC(10,6))(2)编写存储过程******@curnameCHAR(50),***@oCHAR(4),***@curavggNUMERIC(10,6)******@o,***@curnameWHILE(@***@FETCH_STATUS=0)******@curavgg=AVG(GRADE)O=***@OIN
存储过程实现学生成绩由百分制到等级制 来自淘豆网www.taodocs.com转载请标明出处.