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。

五、理解及感悟

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于JetCache整合实现一级、二级缓存方案(方案实现)

目录 一、整体方案说明 1.1 需求说明 1.2 整体方案实现组件结构图 二、Caffeine缓存实现 2.1 组件说明 2.2 组件结构图 2.3 组件Maven依赖 2.4 组件功能实现源码 2.4.1 CaffeineCacheManager扩展实现 2.4.2 CaffeineConfiguration配置类实现 2.4.3 涉及其他组件的类 …

如何在Android Termux中使用SFTP实现远程传输文件

文章目录 1. 安装openSSH2. 安装cpolar3. 远程SFTP连接配置4. 远程SFTP访问5. 配置固定远程连接地址6、结语 SFTP(SSH File Transfer Protocol)是一种基于SSH(Secure Shell)安全协议的文件传输协议。与FTP协议相比,SFT…

Spring Boot 中的虚拟线程

在本文中,我将讨论 Spring Boot 中的虚拟线程。 什么是虚拟线程? 虚拟线程作为 Java 中的一项功能引入,旨在简化并发性。 Virtual threads 是 轻量级的线程,由 Java Virtual Machine 而不是操作系统管理。它们被设计为易于使用且…

ElasticSearch:centos7安装elasticsearch7,kibana,ik中文分词器,云服务器安装elasticsearch

系统:centos7 elasticsearch: 7.17.16 安装目录:/usr/local 云服务器的安全组:开放 9200 和5601的端口 一、下载安装elasticsearch7.17.16 1、安装 #进入安装目录 cd /usr/local#下载elasticsearch wget https://artifacts.elastic.co/d…

Elasticsearch:在不停机的情况下优化 Elasticsearch Reindex

实现零停机、高效率和成功迁移更新的指南。更多阅读:Elasticsearch:如何轻松安全地对实时 Elasticsearch 索引 reindex 你的数据。 在使用 Elasticsearch 的时候,总会有需要修改索引映射的时候,遇到这种情况,我们只能做…

前端实现websocket类封装

随着Web应用程序的发展,越来越多的人开始利用Websocket技术来构建实时应用程序。Websocket是一种在客户端和服务器之间建立持久连接的协议。这种协议可以在一个单独的连接上实现双向通信。与HTTP请求-响应模型不同,Websocket允许服务器自主地向客户端发送…

想要学会JVM调优,先掌握JVM内存模型和JVM运行原理

1、前言 今天将和你一起探讨Java虚拟机(JVM)的性能调优。 JVM算是面试中的高频问题了,通常情况下总会有人问到:请你讲解下 JVM 的内存模型,JVM 的 性能调优做过? 2、为什么 JVM 在 Java 中如此重要 首…

利用网络教育系统构建个性化学习平台

在现代教育中,网络教育系统作为一种创新的学习方式,为学生提供了更加个性化和灵活的学习体验。在本文中,我们将通过简单的技术代码,演示如何构建一个基础的网络教育系统,为学生提供个性化的学习路径和资源。 1. 环境…

在Go语言中实现HTTP请求的缓存

大家好,我是你们可爱的编程小助手,今天我们要一起探讨如何使用Go语言实现HTTP请求的缓存。听起来是不是很酷?让我们开始吧! 首先,我们要明白什么是缓存。简单来说,缓存就是将数据存储在内存中,…

Flutter配置Android和IOS允许http访问

默认情况下,Android和IOS只支持对https的访问,如果需要访问不安全的连接,也就是http,需要做以下配置。 Android 在res目录下的xml目录中(如果不存在,先创建xml目录),创建一个xml文件network_security_con…

Appium+python自动化(三)- SDK Manager(超详解)

简介 本来宏哥一开始打算用真机做的,所以在前边搭建环境时候就没有下载SDK,但是由于许多小伙伴通过博客发短消息给宏哥留言说是没有真机,所以顺应民意整理一下模拟器,毕竟“得民心者,得天下”。SDK顾名思义&#xff0c…

【Linux学习笔记】Linux下nginx环境搭建

1、下载nginx 安装rpm命令: rpm ivh nginx-release.rpm。(直接使用linux命令下载wget http://nginx.org/packages/rhel/6/noarch/RPMS/nginx-release-rhel-6-0.el6.ngx.noarch.rpm 2、设置nginx开机启动 chkconfig nginx on 3、开启nginx服务 方法一:service nginx…

引力魔方的基础知识总结

1.简介:引力魔方是投放推荐广告的渠道,融合了钻展和超推;更新升级平台之后统一叫做人群精准推广; 2.展位:包括淘宝首页、内页频道页、门户、帮派、画报等多个淘宝站内广告位 ,每天拥有超过8亿的展现量&…

快速排序:高效分割与递归,排序领域的王者算法

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《数据结构&算法》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 📋 前言 快速排序这个名词,快排之所以叫快排肯定是有点东西的。他在处理大规模数据集时表现及其…

怎么设置Facebook双重验证,让Facebook账号更稳定?

对于跨境电商而言,Facebook 账号被封是常有的事,原因之一可能是没有给 Facebook 设置双重验证,今天就和大家科普一下什么是 Facebook双重验证以及如何设置,另外,作为跨境卖家,我们还需要了解如何保护 Faceb…

Bert-vits2最终版Bert-vits2-2.3云端训练和推理(Colab免费GPU算力平台)

对于深度学习初学者来说,JupyterNoteBook的脚本运行形式显然更加友好,依托Python语言的跨平台特性,JupyterNoteBook既可以在本地线下环境运行,也可以在线上服务器上运行。GoogleColab作为免费GPU算力平台的执牛耳者,更…

视频格式网络地址转换视频到本地,获取封面、时长,其他格式转换成mp4

使用ffmpeg软件转换网络视频,先从官网下载对应操作系统环境的包 注意:网络地址需要是视频格式结尾,例如.mp4,.flv 等 官网地址:Download FFmpeg window包: linux包: 如果下载缓慢,下载迅雷安装使用…

Pycharm2023版本:Python远程调试配置详解

工欲善其事,必先利其器 首先你需要选择一个专业版本的pycharm,社区版本不支持远程配置功能,专业版下载地址:Pycharm 2023 双击程序进行安装,30天内免费试用,如果想要永久使用,办法你懂的&…

GBASE南大通用 GCDW阿里云计算巢:自动化部署云原生数据仓库

目前,GBASE南大通用已与阿里云计算巢合作,双方融合各自技术优势,助力企业用户实现云上数据仓库的自动化部署,让用户在云端获取数据仓库服务“更简单”,让用户在云端使用数据仓库服务“更便捷”,满足企业用户…

uniapp 安卓模拟器链接

下载genymotion 安装 配置adb路径 模拟端口设为 5307