以下均要求以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
以上仅供参考学习,不做过多的解释,不懂的就多找找资料或者多问问,学习不单单是做题看书