EXEC PROC 存储过程练习——考试成绩表

论坛 期权论坛 脚本     
已经匿名di用户   2022-4-20 22:05   1847   0
--History:
 --2021/03/05 ZhangYiHeng  First release
--Program:
 --1.创建一个法学考试成绩表
 --2.列名为:学号 , 姓名 , 籍贯 ,成绩
 --3.做个小游戏,检测对sql server存储过程章节的熟练度
--Function:
 --使用exec proc,输入0添加英雄信息,输入1-查询个人分数,
 --输入2查询全部分数,输入3-根据分数打印出考生的罗老师评语
--Knowledge points:
 --(1)创建存储过程语句:CREATE PROC [proc_name]
 --(2)注意这里:最后的跟as在一块的变量后不能加逗号
 --(3)需要使用begin...end 把全部的if语句套住
 --(4)if里面的insert,select等语句也需要用begin...end套住
 --(5)sql 语句是同时执行的,写上go让语句【从上到下】先后执行
 --(6)建议删除时先删除存储过程再删除表
 --(7)都是varchar 值时,可以加号拼接
--创建数据库
CREATE DATABASE text_one
--使用数据库
USE text_one
GO --(5)
--创建表
CREATE TABLE 法学考试成绩表 (
学号 varchar(20) CONSTRAINT Student_id PRIMARY KEY,
姓名 varchar(10),
籍贯 varchar(20),
成绩 varchar(10)
)
GO
--添加一条数据
INSERT INTO 法学考试成绩表
(学号,姓名,籍贯,成绩)VALUES
(20210305001,'张三','B站',0)
GO
--创建存储过程
CREATE PROC p_fakao  --(1)
--创建变量
@a int,
@id varchar(20),
@name varchar(10),
@place varchar(20),
@grade varchar(10) --(2)
as
BEGIN --(3)
 --输入0添加英雄信息
 IF @a = 0
  BEGIN --(4)
   INSERT INTO 法学考试成绩表
   (学号,姓名,籍贯,成绩)VALUES
   (@id,@name,@place,@grade)
  END
 --输入1-查询个人分数
 IF @a = 1
  BEGIN
   --输入@id参数,进行成绩查询
   SELECT @grade=成绩,@name=姓名 FROM 法学考试成绩表 WHERE 学号 = @id
   PRINT @name+'的成绩是:'+@grade --(7)
  END
 --2查询全部分数
 IF @a = 2
  BEGIN
   SELECT * FROM 法学考试成绩表 
  END
 --3-根据分数打印出考生的罗老师评语
 IF @a = 3
  BEGIN
   --当@id被赋值后,进入SELECT语句。
   --SELECT语句根据学号查询成绩和姓名并且把@grade,@name赋值
   SELECT @grade=成绩,@name=姓名 FROM 法学考试成绩表 WHERE 学号 = @id
   BEGIN
    --赋值后的@grade,@name进入if语句
    IF @grade>=90
    PRINT '罗老师:'+@name+'牛b!'
    IF @grade<90 AND @grade>=80
    PRINT '罗老师:'+@name+'很好!不错不错!'
    IF @grade<80 AND @grade>=70
    PRINT '罗老师:'+@name+'还行!还行'
    IF @grade<70 AND @grade>=60
    PRINT '罗老师:'+@name+'come on!加油!奥里给!'
    IF @grade<60 
    PRINT '罗老师:'+@name+'食shi啦你!'
   END   
  END
END

GO
--输入0 和学号 , 姓名 , 籍贯 ,成绩 添加考生信息
EXEC  p_fakao '0','20210305002','迪迦','M78星云','100'
GO
EXEC  p_fakao '0','20210305003','超人','氪星','90'
GO
EXEC  p_fakao '0','20210305004','擎天柱','塞伯坦星球','89'
GO
EXEC  p_fakao '0','20210305005','黑凤凰女','氪星','78'
GO
EXEC  p_fakao '0','20210305006','灭霸','泰坦','66'
GO
EXEC  p_fakao '0','20210305007','贝利亚','M78星云','35'
GO 
EXEC  p_fakao '0','20210305007','DIO','B站','0'
GO
--输入1 和 学号 查询成绩
EXEC  p_fakao '1','20210305001','','',''
EXEC  p_fakao '1','20210305002','','',''
EXEC  p_fakao '1','20210305003','','',''
EXEC  p_fakao '1','20210305004','','',''
EXEC  p_fakao '1','20210305005','','',''
EXEC  p_fakao '1','20210305006','','',''
EXEC  p_fakao '1','20210305007','','',''
--输入2查询全部分数
GO
EXEC  p_fakao '2','','','',''
--输入3 和 学号 打印罗老师评语
GO
EXEC  p_fakao '3','20210305001','','',''
EXEC  p_fakao '3','20210305002','','',''
EXEC  p_fakao '3','20210305003','','',''
EXEC  p_fakao '3','20210305004','','',''
EXEC  p_fakao '3','20210305005','','',''
EXEC  p_fakao '3','20210305006','','',''
EXEC  p_fakao '3','20210305007','','',''
--查询表
--SELECT * FROM 法学考试成绩表 
--删除表和存储过程 --(6)
--DROP PROC p_fakao
--GO
--DROP TABLE 法学考试成绩表


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP