MySQL—存储过程(详细介绍与基本语法)

news2025/1/4 19:59:29

目录

一、存储过程——介绍

(1)基本介绍

(2)基本特点

二、存储过程——语法

(1)基本语法

创建

调用

(2)实操(创建和调用)

1、创建一个叫 "p1" 的简单存储过程。

2、调用 "p1" 存储过程 。

(3)基本语法

查看

删除

(4)实操(查看和删除)

1、第一种方法查看

2、第二种方法查看

3、删除存储过程


一、存储过程——介绍

(1)基本介绍

    存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合。调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输。对于提高数据处理的效率是有好处的。

    存储过程思想上很简单,就是数据库SQL语言层面的代码封装与重用

    其实就是将我们的数据库的sql语句进行一个封装(变成集合),封装后进行"重用"。当业务想要调用某一块SQL语句集合,就调用对应的存储过程就行了。

(2)基本特点
  • 封装、复用
  • 在存储过程中,是可以接收参数,也可以返回数据

(解释:我们定义一个存储过程,可以给这个存储过程传入对应的请求参数。当然在我们的存储过程把业务逻辑执行完了之后,也可以给我们 "调用方" 返回对应的结果)

  • 通过存储过程,可以减少应用服务器和数据库之间的网络交互,访问效率提升。(作用)

大致了解完存储过程,就要学会如何定义、调用存储过程。

二、存储过程——语法

(1)基本语法
  • 创建

CREATE PROCEDURE 存储过程名称 ( [ 参数列表 ] )

BEGIN

          SQL语句

END;


注意

1、PROCEDURE (procedure:程序、步骤)。


2、存储过程的名称可以自由定义。


3、存储过程我们在定义的时候是可以指定它的输入参数、以及返回的参数信息。


4、begin ... end :里面就是这个存储过程里面封装的SQL语句(可以是一条或多条)。


5、所有存储过程的逻辑都是在 BEGIN ... END 之间定义的。

  • 调用

(当我们的存储过程创建好了之后,想要调用就通过一个关键字:CALL)


CALL 名称 ( [ 参数 ] );

接下来通过 DataGrip 进行操作。


(2)实操(创建和调用)
1、创建一个叫 "p1" 的简单存储过程。
-- 创建一个简单的存储过程
CREATE PROCEDURE p1 ()
BEGIN
/* 在这里面统一学生表的总记录数 */
    SELECT COUNT(*) FROM student;
end;

2、调用 "p1" 存储过程 。

(一旦调用了存储过程,就会执行封装的SQL语句的相关逻辑业务)

-- 调用存储过程
CALL p1();

(3)基本语法
查看

(查看存储过程有两种方式)

1、

  • (当前数据库服务器里面所有的存储过程的信息)
  • 是直接查看一张系统表(数据库:information_schema.routines(表) )
  • WHERE 后面是跟着限定要查询的数据库名字(哪个数据库下的存储过程)

2、

  • (查询指定的存储过程,在创建的时候的它的SQL语句是怎么样的)也就是查询某个存储过程的定义

SHOW CREATE PROCEDURE 存储过程名称;


删除
  • DROP PROCEDURE [ IF EXISTS ] 存储过程名称;

接下来通过 DataGrip 进行操作。


(4)实操(查看和删除)
1、第一种方法查看
-- 查看
SELECT * FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA='itcast';

2、第二种方法查看

(存储过程在创建的时候它的SQL语句)

SHOW CREATE PROCEDURE p1;

3、删除存储过程

(删除表:DROP TABLE [IF EXISTS] 表名;

(删除存储过程:DROP PROCEDURE ...

-- 删除
DROP PROCEDURE p1;

这是这一篇博客所讲的关于——存储过程的创建、调用、查看以及如何删除。

温馨提示

  • 在命令行中,执行创建存储过程的SQL时,需要通过关键字 delimiter 指定SQL语句的结束符。

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

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

相关文章

SAP CO11N BAPI_PRODORDCONF_CREATE_TT连续报工异步更新导致COGI解决方案

背景: 之前上一个项目上有同事碰到一个问题,外围接口数据进入SAP,可能会对同一工单同一工序进行连续多次报工,并且工序控制码配置的是会自动货物移动的,所以正常来说,调用完BAPI完之后除了报工数量会更新之…

indexedDB---浏览器本地数据库实现增删改查

关于indexedDB indexedDB的基本使用,可以参考:indexedDB---掌握浏览器内建数据库的基本用法_indexdb浏览器使用-CSDN博客 indexedDB是浏览器本地数据库,既然是数据库就能够实现增删改查,了解了indexedDB的基本使用后&#xff0c…

怎么把不同的文件做成二维码?多种文件类型在线生码的制作方法

扫码来展示文件是现在很多场景下会使用的一种内容展示方法,这种方式能够简化其他人获取文件的流程,从而提升文件传播的效率,用户可以存储二维码,随时扫码查看文件内容。文件生成二维码支持多种类型的文件使用,比如ppt、…

Element 页面滚动表头置顶

在开发后台管理系统时,表格是最常用的一个组件,为了看数据方便,时常需要固定表头。 如果页面基本只有一个表格区域,我们可以根据屏幕的高度动态的计算出一个值,给表格设定一个固定高度,这样表头就可以固定…

Transformer实战——摘要生成

本文借助Huggingface Tranformer库完成一个摘要生成任务,参考自https://github.com/datawhalechina/learn-nlp-with-transformers/,在本文,将展示如何使用简单的加载数据集,同时针对相应的任务使用transformer中的Trainer接口对模…

司美格鲁肽在中国获批!深度解析报告附上

在中国,肥胖问题日益严重,但有效的治疗方法却相对匮乏。然而,这一现状随着国家药品监督管理局(NMPA)对诺和诺德公司研发的司美格鲁肽注射液(商品名:诺和盈)的批准而得到改变。6月25日…

hadoop离线与实时的电影推荐系统-计算机毕业设计源码10338

摘 要 随着互联网与移动互联网迅速普及,网络上的电影娱乐信息数量相当庞大,人们对获取感兴趣的电影娱乐信息的需求越来越大,个性化的离线与实时的电影推荐系统 成为一个热门。然而电影信息的表示相当复杂,己有的相似度计算方法与推荐算法都各…

文件管理器加载缓慢-禁用文件类型自动发现功能

文件管理器加载缓慢-禁用文件类型自动发现功能 右键“Shell”项,选择新建“字符串值” “FolderType”,数值为 NotSpecified。

Python数据分析-糖尿病数据集数据分析

一、研究背景介绍 糖尿病是美国最普遍的慢性病之一,每年影响数百万美国人,并对经济造成重大的经济负担。糖尿病是一种严重的慢性疾病,其中个体失去有效调节血液中葡萄糖水平的能力,并可能导致生活质量和预期寿命下降。。。。糖尿…

【网络安全学习】漏洞利用:-01- BurpSuite的基础设置使用

Burp Suite是一款集成了多种功能的Web应用渗透测试工具,可以帮助渗透测试人员对Web应用进行拦截、分析、修改、重放、扫描、爆破、模糊测试等操作,从而发现和利用Web应用中的漏洞。可以说Burp Suite是每个安全从业人员必须学会使用的安全渗透测试工具。 …

服务器硬件以及RAID配置

目录 一、RAID磁盘阵列原理(嘎嘎重要) 1、RAID的概述 2、常用的RAID 2.1、RAID 0 2.2、RAID 1 2.3、RAID 5 2.5、RAID 10 3、阵列卡介绍 二、建立软件RAID磁盘阵列 1、添加硬盘 2、使用fdisk分区,类型为fd 3、mdata命令使用参数 …

今日好料(中国农业银行研发中心DevOps规划与实践)

今日好料(中国农业银行研发中心DevOps规划与实践) 在数字化转型的背景下,企业面临着更加复杂和多变的市场环境,对IT系统的敏捷性和稳定性提出了更高的要求。作为金融行业的领军企业,中国农业银行在其研发中心推进DevO…

eXosip协议栈构造Info应答并发送

最近在开发GB28181视频监控平台,对于录像的暂停、倍速等控制是通过INFO消息完成的,但是eXosip协议栈没有明确说明该如何去构造INFO消息的应答。通过对源代码的解读,是使用eXosip_call_send_answer接口去构造,参考了一些博客&#…

AI大模型训练过程

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 大模型训练概述 AI大模型训练是指在海量数据中,对拥有数百万至数千万参数及深层次神经网络结构的模型进行训练的过程。这类大模型因其庞大的参数规模和复杂的网…

【云原生】深入理解Pod的使用进行管理

深入理解Pod 文章目录 深入理解Pod一、介绍Pod1.1、什么是Pod1.2、Pod的特点1.3、Pod的用途1.4、Pod网络1.5、Pod存储1.6、Pod的工作方式 二、创建Pod2.1、命令行创建Pod2.2、资源清单创建Pod2.2.1、镜像拉取策略2.2.2、Pod重启策略2.2.3、部署资源2.2.4、删除资源 三、静态Pod…

大厂面试经验分享,小白如何在面试中脱颖而出

前言 毕业季,对于每一位即将步入社会的学子来说,都是一个充满挑战和机遇的时刻。作为我的一位好朋友也是好学长,他刚刚在一家顶尖科技公司斩获了他梦寐以求的职位。他深知求职路上的艰辛,因此打算把自己的经验分享给大家&#xf…

项目实战系列三: 家居购项目 第六部分

文章目录 🌈Ajax检验注册名🌈Ajax添加购物车🌈上传与更新家居图片🌈作业布置🍍会员登陆后不能访问后台管理🍍解决图片冗余问题🍍分页导航完善 🌈Ajax检验注册名 需求分析 注册会员时…

flask水质监测预警系统-计算机毕业设计源码10148

摘 要 近些年来,对河道水位进行实时、准确的监测越来越受到广大人民群众的重视。然而要建立一个稳定的、可靠地、准确的城市河道水位远程监测系统,就必须要解决由人工监测向自动化监测的转变,使用新科技来进行设计。水质监测预警系统是以实际…

构筑卓越:建筑企业如何通过GB/T 50430:2017认证铸就质量管理基石

在建筑业这片充满挑战和机遇的战场上,企业资质犹如一面旗帜,标志着企业的实力和信誉。GB/T 50430:2017《工程建设施工企业质量管理规范》的实施,成为了建筑企业提高管理水平、赢得市场竞争的重要武器。 GB/T 50430:2017的战略意义 GB/T 5043…

【JavaScript】BOM编程

目录 一、BOM编程是什么 二、window对象的常用方法 1、弹窗API方法 2、计时器任务方法 三、window对象的属性对象常用方法 1、history网页浏览历史 2、location地址栏 3、数据存储属性对象 4、console控制台 一、BOM编程是什么 当我们使用浏览器打开一个网页窗口时,…