MySQL 数据库项目式教程 习题六

将xscjgl文件内容导人xscjgl数据库,完成以下内容。

(1)创建一个显示学生的学号、姓名、课程名、成绩的存储过程

CREATE PROCEDURE p1()  

BEGIN  

    SELECT a.学号, a.姓名, b.课程名, c.成绩  

    FROM xs a  

    JOIN xs_kc c ON a.学号 = c.学号  

    JOIN kc b ON c.课程号 = b.课程号;  

END;

验证:

call p1();

(2)创建一个输入学号、课程号,以及输出学生成绩的存储过程。

CREATE PROCEDURE p2(IN student_id CHAR(10), IN course_id CHAR(10), OUT score INT)  

BEGIN  

    SELECT 成绩 INTO score   

    FROM xs_kc   

    WHERE 学号 = student_id AND 课程号 = course_id;  

END;

验证:

set @output_score = null;  

call p2('081241', '101', @output_score);  

select @output_score as score;

(3)创建一个游标,循环显示所有学生成绩(学号、课程号、成绩)。

CREATE PROCEDURE p3()  

BEGIN  

    DECLARE done INT DEFAULT FALSE;  

    DECLARE student_id CHAR(10);  

    DECLARE course_id CHAR(10);  

    DECLARE score INT;  

    DECLARE cur CURSOR FOR   

        SELECT 学号, 课程号, 成绩 FROM xs_kc;  

    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;    

    OPEN cur;  

    read_loop: LOOP  

        FETCH cur INTO student_id, course_id, score;   

        IF done THEN  

            LEAVE read_loop;  

        END IF;  

        SELECT student_id, course_id, score;  

    END LOOP;  

    CLOSE cur;  

END;

验证:

call p3();

(4)创建一个游标,指定学生学号显示此学生的成绩信息(姓名、课程名、成绩)。

CREATE PROCEDURE p4(IN p_student_id CHAR(10))  

BEGIN  

    DECLARE done INT DEFAULT FALSE;  

    DECLARE v_name VARCHAR(5);  

    DECLARE v_course_name VARCHAR(10);   

    DECLARE v_score INT;  

    DECLARE cur CURSOR FOR   

        SELECT xs.姓名, kc.课程名, xs_kc.成绩  

        FROM xs_kc  

        JOIN xs ON xs_kc.学号 = xs.学号  

        JOIN kc ON xs_kc.课程号 = kc.课程号  

        WHERE xs_kc.学号 = p_student_id;  

    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

    OPEN cur;  

    read_loop: LOOP  

        FETCH cur INTO v_name, v_course_name, v_score;  

        IF done THEN  

            LEAVE read_loop;  

        END IF;  

        SELECT v_name AS 姓名, v_course_name AS 课程名, v_score AS 成绩;  

    END LOOP;  

    CLOSE cur;  

END;

验证:

call p4('081101');

(5)创建一个存储过程,按学号输入参数,删除xs和xs_kc表中的学生相关信息,必须采用事务处理。

CREATE PROCEDURE p5(IN p_student_id CHAR(10))  

BEGIN  

    DECLARE EXIT HANDLER FOR SQLEXCEPTION  

    BEGIN  

        ROLLBACK;  

        RESIGNAL;

    END;  

    START TRANSACTION;  

    DELETE FROM xs_kc WHERE 学号 = p_student_id;

    IF ROW_COUNT() = 0 THEN   

    END IF;  

    DELETE FROM xs WHERE 学号 = p_student_id;  

      COMMIT;  

END;

验证:

call p5('081101');

SELECT * FROM xs WHERE 学号 = '081101';

SELECT * FROM xs_kc WHERE 学号 = '081101';

--以上内容仅供参考学习!

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MySQL数据库项目教程双色是一本关于MySQL数据库教程,它采用了双色的设计方,旨在提供更好的学习体验。以下是关于质料的详细信息。 首先,该教程对于MySQL数据库的内容进行了全面而有序的讲解。从基本概念、安装步骤、SQL语法等基础知识开始,逐步深入介绍了MySQL数据库的高级特性和操作技巧。通过一系列具有实际应用场景的项目,读者可以学会如何在实际工作中灵活运用MySQL数据库,并提高自己的数据库应用能力。 其次,该教程采用了双色的设计风格,使得内容更加清晰易懂。整本书分为两个色块,左侧的色块用来解释理论知识,右侧的色块则用来展示代码实例和案例分析。这种双色的设计方,让读者能够清晰地辨认到理论和实践的区别,更加轻松地掌握和运用MySQL数据库。 另外,该教程还配有丰富的实例和案例分析,帮助读者更好地理解和应用MySQL数据库。每个章节结束时,还配有练习题答案,供读者巩固所学知识。同时,该教程还提供了在线资源和支持,读者可以通过教程相关的网站获取更多的学习资料和辅助资源。 总的来说,MySQL数据库项目教程双色是一本内容全面、设计精美的教程,适合想要学习MySQL数据库的初学者和有一定基础的开发人员。通过学习该教程,读者可以系统地了解和应用MySQL数据库,提高自己的数据库开发和管理能力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值