mysql函数

实验要求
1.根据编号查询名字【传入编号,获取名字】
2.根据编号查询vip的名字(传入编号,获取名字和性别)
3.创建过程,根据输入的成绩编号【pk】,获取该学号,科目号以及成绩
4.根据考试号查找学生的名字,科目名字,以及成绩
5.使用存储函数|过程 传入学号,获取学生的姓名,总分,平均分
6.输入,科目名字,学时,以及gradeid ,将该数据插入到数据库
7.根据传入的科目编号删除科目信息,如果该科目以及被考过试,则不能删除

delimiter $$
		create procedure test(id varchar(20),out sname varchar(20))
		begin
				SELECT studentName into sname from students WHERE studentNo=id;
		end$$
delimiter;
call test('s1004',@姓名);
SELECT @姓名 as 姓名;
delimiter $$
		create procedure test1(id varchar(20),out sname varchar(20), out thesex varchar(20))
		begin
				select studentName,sex into sname,thesex from students where studentNo=id;
		end$$
delimiter;
call test1('s1004',@姓名,@性别);
select @姓名 as 姓名,@性别 as 性别;
delimiter $$
	create procedure test2(sid int,out sNo varchar(20),out suid int ,out sScore varchar(10))
	begin
			select studentNo,subjectId,studentScore into sNo,suid,sScore from achievements where id=sid;
	end$$
delimiter;
call test2(4,@学号,@学科,@分数);
SELECT @学号 as 学号,@学科 as 学科, @分数 as 分数
	delimiter $$
	CREATE PROCEDURE test3 (
		eid INT,
		OUT sname VARCHAR ( 20 ),
		OUT subName VARCHAR ( 20 ),
		OUT score VARCHAR ( 10 )) BEGIN
	SELECT
		a.studentName,
		b.studentScore,
		sub.subjectName INTO sname,
		score,
		subName 
	FROM
		students a
		INNER JOIN achievements b ON b.studentNo = a.studentNo
		INNER JOIN subjects sub ON sub.subjectId = b.subjectId 
	WHERE
		b.id = eid;
	
END $$delimiter;
CALL test3 ( 2, @姓名, @学科, @分数 ) SELECT
@姓名,
@学科,
@分数;
delimiter$$
 create procedure test4(sid VARCHAR(20),out sname varchar(20),out sumall VARCHAR(20),out average varchar(20))
	BEGIN
			select studentName into sname from students WHERE studentNo=sid;
			select sum(studentScore),avg(studentScore) into sumall,average from achievements WHERE studentNo=sid;
	end$$
delimiter;
	call test4('s1002', @姓名,@总分,@平均分);
	SELECT @姓名,@总分,@平均分
delimiter $$
create PROCEDURE test113(subName varchar(20), subHour int, gid int(5))
		BEGIN
		insert into subjects values(null, subName, subHour, gid);
		END$$
DELIMITER;
		CALL TEST113('测试', 20, 1)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值