存储过程-数据库

本文介绍了如何在MySQL中创建、执行和删除存储过程。示例展示了一个名为`给学生成绩划等级`的存储过程,该过程用于根据学生的成绩分配等级(A, B, C)。存储过程通过声明变量、游标和条件判断实现,最后展示了调用存储过程的语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1创建存储过程

create or replace procedure 过程名([参数1],...)

as<过程化sql块>;

DELIMITER $$
--
-- 存储过程
--
DROP PROCEDURE IF EXISTS `给学生成绩划等级`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `给学生成绩划等级` ()  NO SQL
begin
    declare rowsname varchar(20) charset 'utf8';
    declare rowcname varchar(20) charset 'utf8';
    declare rowgrade int;
    declare rowlevel varchar(20) charset 'utf8';
    declare cnt int default 0;
    declare i INT DEFAULT 0;
    declare scursor cursor for
        select sname,cname,grade
        from sc,student,course
        where sc.sno=student.sno and sc.cno=course.cno;
    select count(*) into cnt from sc;
    open scursor;
    while i<cnt do
        set i=i+1;
        fetch scursor into rowsname,rowcname,rowgrade;
        if rowgrade>90 then
            set rowlevel='A';
        else
            if rowgrade>80 then
                set rowlevel='B';
            else
                set rowlevel='C';
            end if;
        end if;
        select rowsname,rowcname,rowlevel;
    end while;
    close scursor;
end$$

2执行存储过程

call/perform procedure 过程名([参数1],...);

CALL `给学生成绩划等级`();

3删除存储过程

drop procedure 过程名();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值