news 2026/5/4 17:11:26

【头歌系统数据库实验】实验14 数据库编程-2

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【头歌系统数据库实验】实验14 数据库编程-2

目录

第1关:定义一个名为PROC_UPDATEGRADE的存储过程

第2关:使用游标定义一个名为PROC_JGRADE无参存储过程

第3关:使用游标定义一个名为PROC_NUMGRADE有参存储过程


如果对你有帮助的话,不妨点赞收藏评论一下吧,爱你么么哒😘❤️❤️❤️

第1关:定义一个名为PROC_UPDATEGRADE的存储过程

任务描述

定义一个名为PROC_UPDATEGRADE的存储过程,将学生选课成绩从百分制改为等级制(即A、B、C、D、E),其中A为[90,100],B为[80,90),C为[70,80),D为[60,70),E为[0,60)。

相关知识

1、学生选课表SC由学号(Sno)、课程号(Cno)、成绩(Grade)组成。 SC表如下图:

 

现已构建SC表,结构信息如下:

 

创建SC表的Mysql代码为:

CREATE TABLE SC( Sno CHAR(9), Cno CHAR(4), Grade INT, PRIMARY KEY(Sno, Cno) );

INSERT INTO SC VALUES('200215121','1',92); INSERT INTO SC VALUES('200215121','2',85); INSERT INTO SC VALUES('200215121','3',88); INSERT INTO SC VALUES('200215122','2',90); INSERT INTO SC VALUES('200215122','3',80); INSERT INTO SC VALUES('200215123','1',60); INSERT INTO SC VALUES('200215123','2',75); INSERT INTO SC VALUES('200215124','1',52); INSERT INTO SC VALUES('200215124','2',63); INSERT INTO SC VALUES('200215125','1',100); INSERT INTO SC VALUES('200215125','2',100); INSERT INTO SC VALUES('200215126','2',34); INSERT INTO SC VALUES('200215126','3',45); INSERT INTO SC VALUES('200215127','2',86); INSERT INTO SC VALUES('200215127','3',88);

2、存储过程定义 定义一个存储过程语句的语法格式如下:

  1. CREATE [OR REPLACE ] PROCEDURE <模式名.存储过程名> [WITH ENCRYPTION]
  2. [(<参数名> <参数模式> <参数数据类型> [<默认值表达式>]
  3. {,<参数名> <参数模式> <参数数据类型> [<默认值表达式>] })]
  4. AS | IS
  5. [<说明语句端段>]
  6. BEGIN
  7. <执行语句段>
  8. [Exception
  9. <异常处理语句段>]
  10. END;

其中: (1)<模式名.存储过程名>:指明被创建的存储过程的名称。 (2)<参数名>:指明存储过程参数的名称。 (3) WITH ENCRYPTION:为可选项,如果指定 WITH ENCRYPTION 选项,则对 BEGIN 到 END 之间的语句块进行加密,防止非法用户查看其具体内容,加密后的存储过程或存储函数的定义可在 SYS.SYSTEXTS 系统表中查询。 (4)<参数模式>:指明存储过程参数的输入/输出方式。参数模式可设置为 IN、OUT 或 IN OUT(OUT IN),默认为 IN 类,IN 表示向存储过程传递参数,OUT 表示从存储过程返回参数。而 IN OUT 表示传递参数和返回参数。 (5)<参数数据类型>:指明存储过程参数的数据类型。 (6)<说明语句端段>:由变量、游标和子程序等对象的申明构成。 (7)<执行语句段>:由 SQL 语句和过程控制语句构成的执行代码。 (8)<异常处理语句段>:各种异常的处理程序,存储过程执行异常时调用,可默认。注意:使用该语句的用户必须是 DBA 或该存储过程的拥有者且具有 CREATE PROCEDURE 数据库权限的用户;参数的数据类型只能指定变量类型,不能指定长度。

相关操作① DECLARE定义变量DECLARE用于定义变量,在存储过程和函数中通过declare定义变量在BEGIN...END中,且在语句之前,定义变量语法为:

  1. DECLARE 变量名 变量类型 [DEFAULT 初始化值];

例如:

  1. DECLARE a, b INT DEFAULT 5
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/4 17:09:27

终极指南:揭秘Lem编辑器的模块化架构设计与实践

终极指南&#xff1a;揭秘Lem编辑器的模块化架构设计与实践 【免费下载链接】lem General-purpose editor/IDE with high expansibility in Common Lisp 项目地址: https://gitcode.com/gh_mirrors/le/lem Lem是一款基于Common Lisp开发的通用编辑器/IDE&#xff0c;以其…

作者头像 李华
网站建设 2026/5/4 17:08:15

AI驱动的财产险核保自动化:基于MCP协议的风险情报聚合器实战

1. 项目概述&#xff1a;当AI助手成为你的首席核保分析师 如果你是一名财产险&#xff08;P&C&#xff09;核保员&#xff0c;每天面对几十份来自全国各地的商业地产投保申请&#xff0c;你的工作流程大概是这样的&#xff1a;打开FEMA的灾害数据库&#xff0c;查询该地区…

作者头像 李华
网站建设 2026/5/4 17:07:45

突破Android数据库困境:ORMLite全栈实战指南(2025版)

突破Android数据库困境&#xff1a;ORMLite全栈实战指南&#xff08;2025版&#xff09; 【免费下载链接】ormlite-android ORMLite Android functionality used in conjunction with ormlite-core 项目地址: https://gitcode.com/gh_mirrors/or/ormlite-android ORMLit…

作者头像 李华
网站建设 2026/5/4 17:06:29

如何快速实现多语言俄罗斯方块:Vue-Tetris国际化配置完整指南

如何快速实现多语言俄罗斯方块&#xff1a;Vue-Tetris国际化配置完整指南 【免费下载链接】vue-tetris Use Vue, Vuex to code Tetris.使用 Vue, Vuex 做俄罗斯方块 项目地址: https://gitcode.com/gh_mirrors/vu/vue-tetris Vue-Tetris是一个基于Vue和Vuex开发的经典俄…

作者头像 李华
网站建设 2026/5/4 16:57:28

告别重启!IDEA里用JRebel实现Java代码热更新(附自动编译设置避坑)

告别重启&#xff01;IDEA里用JRebel实现Java代码热更新&#xff08;附自动编译设置避坑&#xff09; 每次修改Java代码后等待Tomcat重启的煎熬&#xff0c;相信每个开发者都深有体会。那种盯着进度条、手指无意识敲击桌面的焦灼感&#xff0c;不仅打断了编程的流畅状态&#x…

作者头像 李华