这姐姐呀的《数据库安全技术》实验报告-4_存储过程

以下均要求以SQL语句实现

创建默认数据库,DB_X1,创建数据表tbl_Student字段要求如下

字段

字段类型

约束

是否主键

说明

StudentID

Char(8)

非空检查约束长度8个,且必须全部都是数字。

学号

StudentName

Varchar(30)

非空

姓名

StudentPassword

Varchar(20)

非空检查约束长度大于8个,要求包含数字和英文字母

密码

StudentGender

Char(2)

默认约束为

性别

StudentBirthday

Date

检查约束,小于当前日期

生日

create database DB_X1 #创建库

use DB_X1             #启动库
CREATE TABLE tbl_Student(                               #创建表

StudentID Char(8) PRIMARY key not NULL COMMENT'学号',   #给字段添加类型,主键,约束,说明

StudentName Varchar(30) not NULL COMMENT'姓名',

StudentPassword Varchar(20) not NULL COMMENT'密码',

StudentGender Char(2) DEFAULT'男' COMMENT'性别',

StudentBirthday Date COMMENT'生日'

)

1、创建存储过程,up_AddStudent,存储过程的功能:添加用户到tbl_Student 数据表中输入参数@SID,@SName,@SPwd,@SGender,@SBirthday若@SGender空,默认添加’男’

【答题】

CREATE PROCEDURE up_AddStudent(SID char(8),SName varchar(30),SPwd varchar(20),SGender char(2),SBirthday date)                  #创建存储过程

BEGIN

if SGender ='' THEN

INSERT INTO tbl_Student VALUES(SID,SName,SPwd,'男',SBirthday);  #如果SGender值为空,就直接添加“男”

else

INSERT INTO tbl_Student VALUES(SID,SName,SPwd,SGender,SBirthday); #如果SGender值不为空,就正常添加

end if;

end;

2、创建存储过程,up_UpdateStudent,功能:根据输入参数1@SID char(8)为条件更新数据 ;输入参数2:@varchar(30)为提供更新的数据;输入参数3:@Field int更新字段编号。若@Field为1,更新StudentName@Field为2,更新StudentPassword@Field为3,更新StudentGender@Field为4更新StudentBirthday

【答题】

CREATE PROCEDURE up_UpdateStudent(SID char(8),shuju varchar(30),Field int)  #创建存储过程

BEGIN

if Field=1 THEN

UPDATE tbl_Student set studentname=shuju WHERE StudentID=SID;

ELSEIF Field=2 THEN

UPDATE tbl_Student set tudentPassword=shuju WHERE tudentPassword=SID;

ELSEIF Field=3 THEN

UPDATE tbl_Student set StudentGender=shuju WHERE StudentGender=SID;

ELSEIF Field=4 THEN

UPDATE tbl_Student set StudentBirthday=shuju WHERE StudentBirthday=SID;

end if;              #用if语句判断条件使用相对应的语句

end;

3、创建存储过程,up_SelectStudent,功能:根据输入参数1@SID char(8)为条件查询数据查询StudentName ;输出参数2:@varchar(20) output输出密码 StudentPassword

【答题】

create procedure up_SelectStudent (in sid char(8),in output varchar(20))
BEGIN 
   set output=(select studentpassword from tbl_student where studentname=sid);
   select output as 密码;
end

#一个输入一个输出,通过输入的sid,确定StudentName查询对应的StudentPassword,并输出

4、创建存储过程,up_DeleteStudent,功能:根据输入参数1:@SID char(8)为条件删除数据,输出参数2:@varchar(30) output,若@SID不存在,输出该用户不存在”。@SID存在,删除后输出“该数据已删除

【答题】

CREATE PROCEDURE up_DeleteStudent(SID char(8),out SPwd varchar(20))

BEGIN

set @i=(select studentname from tbl_student where studentname=SID);

if @i=0 THEN

set sc='该用户不存在';

ELSE

DELETE from tbl_student WHERE studentname=SID;

set sc='改数据已被删除';

end if;

END

以上仅供参考学习,不做过多的解释,不懂的就多找找资料或者多问问,学习不单单是做题看书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值