--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 法学考试成绩表
|