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

目录

一、存储过程——介绍

(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.mfbz.cn/a/746664.html

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

相关文章

2024年6月26日 (周三) 叶子游戏新闻

老板键工具来唤去: 它可以为常用程序自定义快捷键,实现一键唤起、一键隐藏的 Windows 工具,并且支持窗口动态绑定快捷键(无需设置自动实现)。 土豆录屏: 免费、无录制时长限制、无水印的录屏软件 《Granblue Fantasy Versus: Risi…

K210视觉识别模块学习笔记6: 识别苹果_图形化操作函数_

今日开始学习K210视觉识别模块: 图形化操作函数 亚博智能 K210视觉识别模块...... 固件库: canmv_yahboom_v2.1.1.bin 训练网站: 嘉楠开发者社区 今日学习如何在识别到目标的时候添加图形化操作:(获取坐标、框出目标等) 在识别苹果的基础上 学习与添加 这些操…

在前端开发过程中如果函数参数很多,该如何精简

1. 在前端开发过程中如果函数参数很多,该如何精简 1.1. 对象参数(对象字面量):1.2. 默认参数和解构赋值:1.3. 使用类或构造函数:1.4. 利用闭包或者高阶函数:1.5. 利用ES6的扩展运算符&#xff1…

# 深入理解 Java 虚拟机 (二)

深入理解 Java 虚拟机 (二) Java内存模型 主内存与工作内存 所有的变量存储在主内存(虚拟机内存的一部分)每条线程有自己的工作内存,线程对变量的所有操作(读取、赋值)都必须在工作内存中进行…

数据质量低下会造成什么后果?应从哪些维度衡量数据质量?

大数据时代的到来,预示着前所未有的商业机遇和洞察力。然而,要将这些海量数据中蕴含的巨大价值转化为实际的业务成果,一个关键的前提条件是必须确保所收集数据的质量。数据质量是大数据价值链上的第一道关卡,它的高低直接关系到数…

【QT】设置QTabWidget样式:上、下边线的显示与去除

目录 0.简介 1.环境 2.详细介绍 2.1我的原代码和显示效果 2.2 去掉QTabWidget的边框 2.3 单独留下边线 2.3.1 法一:通过【this->setDocumentMode(true);】设置下边线 2.3.2 通过【QTabWidget::pane】设置下边线 2.4单独设置上边线 2.5 优化界面tab 2.…

Ceil()——向上取整函数

函数原型为: double ceil(double x); 大家可以在这个网站里更清晰的了解ceil - C Reference (cplusplus.com) 下面借助一道例题来帮助大家理解:牛牛的快递_牛客题霸_牛客网 (nowcoder.com) 我们分析题得知,在大于1的情况下,只要…

AI在软件开发中的应用

AI在软件开发中的应用可以帮助开发人员更高效地编写和测试代码,并提高软件的质量和性能。它能够帮助加快软件的部署和维护过程,提供更好的开发体验。 编码辅助 帮助开发人员更快地编写代码。例如,AI可以识别代码中的语法错误,并提…

实时美颜技术解析:视频美颜SDK如何改变直播行业

实时美颜技术的出现,尤其是视频美颜SDK的应用,正逐渐改变着直播行业的生态。 一、实时美颜技术的原理 实时美颜技术利用人工智能和图像处理算法,对视频中的人物面部进行优化和修饰。该技术通常包含以下几个步骤: 1.人脸检测和识…

Linux文件编程详解

Linux文件编程详解 在Ubuntu(Linux)系统下进行文件操作涉及一系列的系统调用,这些调用是基于Unix风格的文件操作API。这些操作包括打开或创建文件、从文件中读取数据、向文件中写入数据、移动文件指针以及关闭文件。以下是这些函数的详细介绍…

std::enable_if和std::is_base_of

std::enable_if,其主要为了完成模板特偏化,有两个参数,第一个为布尔值类型,第二个如果布尔值为true,其为默认空值,如果已经赋值,则为对应的类型。 std::is_base_of,其一共存在两个参数&#xff…

ora-15025 ora-27041问题处理

这个问题先排查 [oracleracdg2-2 ~]$ cd $ORACLE_HOME/bin [oracleracdg2-2 bin]$ ls -ld oracle -rwsr-s--x 1 oracle oinstall 239626641 Jun 25 19:09 oracle 正常的属组是 [gridracdg2-1 ~]$ setasmgidwrap -o /u01/app/oracle/product/11.2.0.4/dbhome_1/bin/oracle […

玩转AI之四个免费热门的AI工具

2023年,可以说称之为人工智能元年,随着 AI 人工智能、机器学习技术的不断发展,各种 AI 算法的应用也越来越广泛,在AI这一领域中,软件、工具和网站如雨后春笋般涌现。下半年,预计会有更多王炸级别的产品问世…

windows10/win11截图快捷键 和 剪贴板历史记录 快捷键

后知后觉的我今天又学了两招: windows10/win11截图快捷键 按 Windows 徽标键‌ Shift S。 选择屏幕截图的区域时,桌面将变暗。 默认情况下,选择“矩形模式”。 可以通过在工具栏中选择以下选项之一来更改截图的形状:“矩形模式”…

线性代数基础概念:行列式

目录 线性代数基础概念:行列式 1. 行列式的定义 1.1 递归定义 1.2 代数余子式定义 1.3 几何定义 2. 行列式的性质 2.1 行列式等于其转置的行列式 2.2 交换两行或两列,行列式变号 2.3 将一行或一列乘以一个数 k,行列式乘以 k 2.4 将…

植物大战僵尸杂交版技巧大全(附下载攻略)

《植物大战僵尸杂交版》为策略游戏爱好者带来了全新的挑战和乐趣。如果你是新手玩家,可能会对游戏中的植物和僵尸感到困惑。以下是一些实用的技巧,帮助你快速掌握游戏并享受其中的乐趣。 技巧一:熟悉基本玩法 游戏的基本玩法与原版相似&…

Android 11.0 修改系统显示大小导航栏消失

Android 11.0 修改系统显示大小导航栏消失 1.显示大小设置为大时,导航栏图标不显示。 设置为大,较大,最大时,导航栏图标不显示。 2.开始怀疑是导航栏被隐藏了,各种折腾无效。 3.发现: frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/Edg…

OpenCV cv::Mat到 Eigen 的正确转换——cv2eigen

在进行计算机视觉项目时,我们经常需要处理相机位姿的变换。最近,我在项目中遇到了一个看似简单但实际上颇具挑战性的问题:从 OpenCV 的 cv::Mat 格式转换到 Eigen 库的格式。这个过程中遇到了一些问题,但最终找到了一个稳健的解决…

高考成绩加分,西藏学生推荐使用的《藏文翻译词典》APP,藏文作文高考大纲,初中高中学习内容与考试同步更新!

2024年高考成绩出炉啦!在这个特别的时刻,我想向大家表达最真挚的祝贺。高考不仅是一场考试,更是你多年学习旅程的一次总结。当你的成绩揭晓,无论结果如何,你都应该为自己感到骄傲。 在高原,藏语如同雪山上…

从官方源码精简出第1个FreeRTOS程序

一、下载官方源码 1、打开百度搜索freerots,找到官网:FreeRTOS官网 2、将源码解压到没有中文目录的路径下 二、删减目录 1、删除FreeRTOS-Plus和tools 2、删除FreeRTOS/Demo下除CORTEX_STM32F103_Keil外的所有文件 3、删除FreeRTOS\Source\portable下除RVDS和MemM…