MYSQL存储过程和存储函数-数据库实验五

  •  Mysql数据库实验及练习题相关

        MySQL 数据库和表的管理-数据库实验一

        MySQL连接查询、索引、视图-数据库实验二、实验三

        MySQL约束、触发器-数据库实验四

        MYSQL存储过程和存储函数-数据库实验五

                MySQL批量随机生成name、TEL、idNumber

        MYSQL数据库的安全管理-数据库实验六

                MYSQL数据库安全性练习题

        MYSQL数据库的备份与恢复-数据库实验七

        MYSQL数据库设计题-窗帘店


一、实验目的

1. 掌握通过SQL语句CREATE PROCEDURE创建存储过程的方法。

2. 掌握使用SQL语句CALL调用存储过程的方法。

3. 掌握使用SQL语句ALTER PROCEDURE修改存储过程的方法。

4. 掌握使用SQL语句DROP PROCEDURE删除存储过程的方法。

5. 掌握使用CREATE FUNCTION创建存储函数的方法。

6. 掌握使用SQL语句ALTER FUNCTION修改存储函数的方法。

7. 掌握使用SQL语句DROP FUNCTION删除存储函数的方法。

二、实验内容

1. 输入以下代码,创建存储过程stu_info,执行时通过输入姓名,可以查询该姓名的学生的各科成绩。

DELIMITER @@

CREATE PROCEDURE stu_info(IN name CHAR(8))

 BEGIN

  SELECT s.学号,姓名,课程编号,分数 FROM student_info s,grade g

   WHERE s.学号=g.学号 and 姓名=name;

 END @@

使用CALL命令执行存储过程stu_info,其参数值为'张青平'。

DELIMITER ;

CALL stu_info('张青平');

2. 使用studentsdb数据库中的student_info表、curriculum表、grade表。

(1)创建一个存储过程stu_grade,查询学号为0001的学生的姓名、课程名称、分数。

  1. 调用存储过程stu_grade。

3. 使用studentsdb数据库中的student_info表、curriculum表、grade表。

(1)创建存储过程stu_name,当任意输入一个学生的姓名时,查看其课程的最高分、最低分、平均分。

(2)调用存储过程stu_name。

  1. 删除存储过程stu_name。

4. 使用studentsdb数据库中的grade表。

(1)创建一个存储过程stu_g_r,当输入一个学生的学号时,通过返回输出参数获取该学生选修课程的门数。

(2)执行存储过程stu_g_r,输入学号0002。

(3)显示0002号学生的选课门数。

5. 使用studentsdb数据库中的curriculum表、grade表。

(1)创建一个存储函数num_func,统计指定课程名称的选课人数。

(2)执行存储函数num_func,查看“C语言程序设计”选课人数。  

6. 使用studentsdb数据库中的curriculum表、grade表。

(1)创建一个存储函数avg_func,通过游标统计指定课程的平均分。

  1. 执行存储函数avg_func,查看“C语言程序设计”课程平均分。
  2. 删除存储函数avg_func。

三、实验思考

1. 存储函数和存储过程如何将运算结果返回给外界?

存储函数通过RETURN将RETURNS声明的数据类型返回,只能返回值或者对象;

存储过程则可以返回传入的OUT或者INOUT类型的参数。

2.存储函数有OUT参数、INOUT参数吗?

没有。

3. 使用游标的步骤。

声明游标、打开游标、提取数据、关闭游标。

DECLARE 游标名字 CURSOR FOR SELECT 语句;

OPEN 游标名;

FETCH 游标名 INTO 变量名1[, 变量名2……];

CLOSE 游标名;

四、实验数据

 1. 输入以下代码,创建存储过程stu_info,执行时通过输入姓名,可以查询该姓名的学生的各科成绩。

DELIMITER @@

CREATE PROCEDURE stu_info(IN name CHAR(8))

 BEGIN

  SELECT s.学号,姓名,课程编号,分数 FROM student_info s,grade g

   WHERE s.学号=g.学号 and 姓名=name;

 END @@

使用CALL命令执行存储过程stu_info,其参数值为'张青平'。

DELIMITER ;

CALL stu_info('张青平');

2. 使用studentsdb数据库中的student_info表、curriculum表、grade表。

(1)创建一个存储过程stu_grade,查询学号为0001的学生的姓名、课程名称、分数。

  1. 2调用存储过程stu_grade。

3. 使用studentsdb数据库中的student_info表、curriculum表、grade表。

(1)创建存储过程stu_name,当任意输入一个学生的姓名时,查看其课程的最高分、最低分、平均分。

(2)调用存储过程stu_name。

  1. 删除存储过程stu_name。

4. 使用studentsdb数据库中的grade表。

(1)创建一个存储过程stu_g_r,当输入一个学生的学号时,通过返回输出参数获取该学生选修课程的门数。

(2)执行存储过程stu_g_r,输入学号0002。

(3)显示0002号学生的选课门数。

5. 使用studentsdb数据库中的curriculum表、grade表。

(1)创建一个存储函数num_func,统计指定课程名称的选课人数。

(2)执行存储函数num_func,查看“C语言程序设计”选课人数。

        

6. 使用studentsdb数据库中的curriculum表、grade表。

(1)创建一个存储函数avg_func,通过游标统计指定课程的平均分。

  1. 2执行存储函数avg_func,查看“C语言程序设计”课程平均分。

  

  1. 3删除存储函数avg_func。

五、理解及感悟

通过本次实验,让我对于存储过程和存储函数的创建、调用和删除有了进一步的了解。同时对与结合游标的运用也有了更加深刻的认识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/281437.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python入门学习篇(十)——函数定义函数传参方式

1 相关定义和概念 1.1 函数的理解 一段被封装的可以重复调用的代码。 1.2 函数定义语法结构 def 函数名(形参1,形参2):要封装的逻辑代码 # 注意:函数可以有返回值也可以没有返回值,没有返回值的结果是None1.3 函数调用的语法结构 函数名(形参1,形参2)1.4 简单实例 1.4.1 …

【Spring】spring的容器创建

目录 控制反转IOC 依赖注入DI 创建spring的容器方式: 思考: spring整合Junit4 控制反转IOC 把对象的创建和对象之间的调用过程,交给Spring管理,IOC是容器,是思想。!!! 依赖注入…

【每日一题】【12.29】 - 【12.31】年终收尾

🔥博客主页: A_SHOWY🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 这三天的题目难度相对较小,基本都为模拟题,但是第二三的题目年份贡献类型很有代表性。2023年最后三天年终收…

【数据结构与算法】第2章线性表-选择题、判断题、填空题(头歌习题)【合集】

第1关:选择题、填空题、判断题 任务描述 本关任务:学习完线性表后,应掌握线性表相关的基础知识。 线性表知识点归纳 (1)线性表是由n(n≥0)个数据元素组成的有限序列,所有元素的性质相同,元素之间呈现线性关系&…

深度学习 | 编码器-解码器网络、seq2seq模型、束搜索算法

我们知道传统RNN输入和输出数据是等长的,这显然极大限制了他的应用范围。 前面几节我们讲到的循环神经网络的各种变体基本上都在解决一个序列的问题。还有一大类问题涉及到的是两个序列间转换。它是自然语言处理中的一个重要领域,包括机器翻译、语音识别…

Resolume Arena(VJ音视频软件):创意无限,视听艺术的新境界

Resolume Arena是一款领先的VJ音视频软件,为创意人士提供了丰富的视觉效果和音频处理功能。无论是在舞台演出、音乐会还是派对活动中,Resolume Arena能够将音乐、视频和图像无缝地结合,创造出引人入胜的视听体验。 Resolume Arena具备强大的…

Servlet中常用的三大API

HttpServlet 我们写 Servlet 代码的时候,首先第一步就是先创建类,继承自 HttpServlet,并重写其中的某些方法。我们实际开发的时候主要重写 doXXX 方法,很少会重写 init / destory / service。 因为这一些方法的调用时机&#xf…

openmediavault(OMV) (24)在线网盘(2)kodcloud

简介 KodBox是可道云推出的企业级私有云存储解决方案,旨在为中小企业提供安全可控、可靠易用的一站式在线文件存储管理与协同办公平台。具体详细信息可以查看官网http://kodcloud.com/ 安装部署 kodcloud支持在多种平台进行部署,这里我使用docker镜像进行部署 hub.docker.…

Vscode —— 解决Vscode终端无法使用npm的命令的问题

在cmd中可以正常执行npm -v等指令,但是在vs code终端中,无法执行npm -v,node -v等指令 出现报错 解决办法👇 方法一:【右键单击Vscode】以【管理员身份运行】,【重启Vscode】 方法二:①【用户变量】的【path】添加npm所在路径的…

Tips:VS2022提示MSB8040 此项目需要缓解了 Spectre 漏洞的库解决方法。

1,打开Visual Studio Installer 2、点击【修改】 3、选中【单个组件】,输入Spectre,下拉到【编译 工具和运行时】进行选择(尽量寻找最新版本),然后点击【修改】进行安装(如果VS2022没有关闭&…

劫持 PE 文件:新建节表并插入指定 DLL 文件

PE格式简介 PE(Portable Executable)格式,是微软Win32环境可移植可执行文件(如exe、dll、vxd、sys和vdm等)的标准文件格式。PE格式衍生于早期建立在VAX(R)VMS(R)上的COFF(Common Object File Format)文件格式。 Portable 是指对于不同的Windows版本和不同的CPU类型上…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取相机当前实时帧率(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取相机当前实时帧率(C#) Baumer工业相机Baumer工业相机的帧率的技术背景Baumer工业相机的帧率获取方式CameraExplorer如何查看相机帧率信息在NEOAPI SDK里通过函数获取相机帧率 Baumer工业相机通过NEOAPI…

Radar System Pro - Plug Play Solution

Radar System Pro是一款功能多样且可定制的资源,旨在通过功能齐全且易于使用的雷达系统增强您的Unity项目。无论您是在开发第一人称射击游戏、策略游戏还是太空探索模拟器,我们的雷达系统都将为您提供所需的工具,以创建引人入胜且身临其境的体验。 雷达系统是一个模块化资产…

开源可观测性平台Signoz(四)【链路监控及数据库中间件监控篇】

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 前文链接: ​​开源可观测性平台Signoz系列(一)【开篇】​​ ​​开源可观测性平台Signoz&…

40道MyBatis面试题带答案(很全)

1. 什么是MyBatis (1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接…

前端vue uni-app使用Vue和ECharts构建交互式树形结构图

题目:使用Vue和ECharts构建交互式树形结构图 摘要:本文介绍了如何使用Vue.js和ECharts构建一个交互式的树形结构图。通过整合ECharts的强大可视化功能,我们创建了一个可拖拽移动、点击展开和收缩的树形结构图,并实现了无限添加子…

ROS学习记录:用C++实现对wpr_simulation软件包中机器人的运动控制

一、在工作空间下输入catkin_make进行编译 二、在工作空间中输入source ./devel/setup.bash后回车 三、机器人的运动控制在wpr_simulation中有一个例子程序,在工作空间中输入: roslaunch wpr_simulation wpb_simple.launch后回车 四、就会启动一个仿真环…

计算机毕业设计 基于HTML5+CSS3的在线英语阅读分级平台的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

【Maven】下载及配置

文章目录 1. 定义2. 下载3. 解压4. 配置环境变量5. 验证6. 特性 1. 定义 Maven 是一个跨平台的项目管理工具。作为 Apache 组织的一个颇为成功的开源项目,其主要服务于基于 Java 平台的项目创建,依赖管理和项目信息管理,是一个自动化构建工具…

HTML---利用CSS3制作网页动画

文章目录 目录 文章目录 本章目标 一.CSS3概述 CSS函数概述 二.CSS3变形 transform属性 translate():平移函数 scale():缩放函数 rotate():旋转函数 skew():倾斜函数 三.CSS3过渡 四.CSS动画 练习 旋转按钮 本章目标 会使用…