Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >SQL存储过程

SQL存储过程

作者头像
木瓜煲鸡脚
发布于 2019-08-06 06:46:45
发布于 2019-08-06 06:46:45
1.2K10
代码可运行
举报
文章被收录于专栏:Jasper小笔记Jasper小笔记
运行总次数:0
代码可运行

存储过程

  1. 什么是存储过程
  2. 创建调用与删除
  3. 变量声明
  4. 参数定义
  5. 流程语句
  6. 查看存储过程

什么是存储过程

创建一组为了完成特定功能的SQL语句集

之后需要用到时就可以直接用存储过程名使用

创建的存储过程保存在数据库的数据字典中

创建调用与删除

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* 创建 */
DELIMITER $$
CREATE PROCEDURE 名称()
BEGIN
语句
END $$
DELIMITER ;

/* 调用 */
call 名称();

/* 删除 */
drop procedure 名称;
  • DELIMITER语句将标准分隔符 - 分号(;)更改为:$$,这样就不会被语句中的分号而结束,而是等到$$ 。这样才能保证整个存储过程一起提交
  • 创建完之后可以再改回到分号

变量声明

在存储过程中声明一个变量

  • DECLARE 变量名 数据类型(大小) DEFAULT 默认值;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* 声明整形变量a默认值为0 */
DECLARE a INT DEFAULT 0;

/* 声明多个同类型 */
DECLARE x, y INT DEFAULT 0;

分配变量值

  • 要为变量分配一个值,可以使用SET语句
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SET total_count = 10 ;
  • 使用SELECT INTO语句将查询的结果赋值给一个变量
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT COUNT(*) INTO a FROM;

参数定义

参数的三种类型

  • IN:表示调用者向过程传入值(传入值可以是字面量或变量)
  • OUT:表示过程向调用者传出值
  • INOUT:INOUT参数是IN和OUT参数的组合。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
delimiter $$
CREATE procedure name1(in x int ,OUT y int)
BEGIN
SET y = x+x;
END$$
delimiter ;

set  @b=3;
CALL name(5,@b);
SELECT @b;

结果为10

定义参数

  • create produce name(参数类型 参数名称 数据类型(大小))

流程语句

  • IF语句
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
IF 布尔式 THEN 
   操作语句;
END IF;
  
IF 布尔式 THEN
   操作语句;
ELSE
   操作语句;
END IF;
  • CASE语句
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CASE 一变量
WHEN 变量满足条件1 THEN 相应语句
WHEN 变量满足条件2 THEN 相应语句
...
ELSE 相应语句
END CASE;
  • 循环
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
WHILE 条件判断 DO
...
相应语句
...
END WHILE
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
REPEAT
...
相应语句
...
UNTIL 条件判断
END REPEAT
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set autocommit = 0;
循环语句块
commit;
/* 在循环首尾加上这两条语句,可以避免循环中语句一条一条的执行。
 从而提高效率,将循环完毕后所有要执行的语句一起执行
*/ 

查看存储过程

查看所有存储过程

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SHOW PROCEDURE STATUS;

查看指定数据库中的存储过程

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SHOW PROCEDURE STATUS WHERE db = '数据库名';

查看指定存储过程源代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SHOW CREATE PROCEDURE 存储过程名

自定义函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE FUNCTION 函数名(a int) Returns int

函数对比存储过程

  • 不能用临时表,只能用表变量,有些函数不能用,存储过程限制少
  • 存储过程处理的功能比较复杂,而函数实现的功能针对性强,
  • 存储过程可以执行修改表的操作,但是函数不能执行一组修改全局数据库状态的操作
  • 存储过程可以返回参数,如记录集,函数只能返回值或者表对象。存储过程的参数有in,out,inout三种,函数只有in,存储过程声明时不需要返回类型,而函数需要描述返回类型,且函数中必须包含一个有效的return语句
  • 存储过程一般是作为独立部分来执行,而函数可以作为查询语句的一个部分来调用,由于函数可以返回一个表对象,所以在查询中位于from关键字后面,sql语句中不可以含有存储过程
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT那个小笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
赞一个,楼主非常用心,另外推荐一篇:win10+wsl2+docker desktop实现asp.net core webapi在 docker中运行http://config.net.cn/server/microservice/ba06c6a0-34aa-4f86-a605-2cc41f860874-p1.html
赞一个,楼主非常用心,另外推荐一篇:win10+wsl2+docker desktop实现asp.net core webapi在 docker中运行http://config.net.cn/server/microservice/ba06c6a0-34aa-4f86-a605-2cc41f860874-p1.html
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
Mysql存储过程
存储过程就是一条或者多条SQL语句的集合,可以视为批文件。它可以定义批量插入的语句,也可以定义一个接收不同条件的SQL。
用户3467126
2019/08/29
6.7K0
关系数据库之存储过程
A strong, positive self-image is the best possible preparation for success.
小闫同学啊
2020/02/29
1.2K0
MariaDB 存储过程与函数详解
简单的说,存储过程就是一条或者多条SQL语句的集合,可以理解为脚本,但是起作用不仅限于批处理,下面我们将重点学习如何使用创建存储函数和过程,变量的调用查看等,存储过程是MySQL的一个重点内容.
微软技术分享
2022/12/28
1.6K0
存储过程和函数
存储过程和存储函数是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程和函数可以简化应用开发人员的工作,减少数据在数据库和应用服务器之间的传输,能够提高数据库的处理效率。
chao超的搬运文章
2023/10/15
1470
存储过程和函数
MySQL---存储过程复习
存储过程 存储过程 特点 基本语法格式 关于存储过程的参数 1.输入参数 2.输出参数 3.输入参数输出参数可以一起使用 4.INOUT输入输出参数,具有in和out的双重功能 示例 1.使用in参数 2.创建带输入和输出参数的存储过程 注意 3.使用INOUT参数,具有in和out的双重功能 4.存储过程使用局部变量 5.使用 [ select 字段 into变量 ] 把查询的结果赋值给变量 存储过程中的流程控制 IF语句 循环遍历 查看存储过程列表 查看某个存储过程的结构和信息 存储过程的删除
大忽悠爱学习
2021/11/15
3720
2024Mysql And Redis基础与进阶操作系列(9)作者——LJS[含MySQL存储过程之局部、系统变量、参数传递、流程控制-判断/case具体详步骤;注意点及常见报错问题所对应的解决方法]
存储过程就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于 JAVA语言中的方法;
盛透侧视攻城狮
2024/10/22
2020
2024Mysql And Redis基础与进阶操作系列(9)作者——LJS[含MySQL存储过程之局部、系统变量、参数传递、流程控制-判断/case具体详步骤;注意点及常见报错问题所对应的解决方法]
MySQL存储过程
1、提高代码的重用性 2、简化操作 3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率
程序猿的栖息地
2022/04/29
8.9K0
MySQL 存储过程与函数(精简笔记)
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一,该笔记用于生产环境快速查阅.
微软技术分享
2022/12/28
2K0
mysql存储过程
CONCAT(person_no,"号犯人住", i , "号床位"); ---字符串拼接
用户5927264
2019/07/31
8.3K0
【愚公系列】2023年03月 Java教学课程 103-MySQL数据库(存储过程和函数)
存储过程是一组预定义的SQL语句集合,它们被存储在数据库中并可以被重复调用。存储过程可以接收参数、执行一系列SQL操作并返回结果。
愚公搬代码
2023/03/28
1.2K0
【MySQL高级】存储过程和函数
存储过程和函数是 事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。
陶然同学
2023/02/24
1K0
【MySQL高级】存储过程和函数
sql存储过程和函数
h3110_w0r1d
2024/02/19
1130
Mysql高级7-存储过程
  存储过程是事先经过编译并存储在数据库中的一段sql语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。存储过程思想上很简单,就是数据库sql语言层面的代码封装与重用。
Se7eN_HOU
2023/08/15
8270
【数据库原理与运用|MySQL】MySQL存储过程(详细超全)
云数据库https://cloud.tencent.com/product/cdb
小小程序员
2022/12/22
1.3K0
【数据库原理与运用|MySQL】MySQL存储过程(详细超全)
MySQL 存储过程
存储过程(Stored Procedure)是一种存储在数据库中的程序,可供外部程序调用的一种数据库对象。
恋喵大鲤鱼
2023/10/12
3820
MySQL 存储过程
MySQL存储过程了解一下
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。
布禾
2021/04/09
1.3K0
【愚公系列】2022年01月 Mysql数据库-存储过程和函数
文章目录 一、MySQL存储过程和函数 1.存储过程和函数的概念 2.存储过程和函数的好处 3.存储过程和函数的区别 4.创建存储过程 5.调用存储过程 6.查看存储过程 7.删除存储过程 8.存储过程语法 8.1存储过程语法介绍 8.2变量的使用 8.3if语句的使用 8.4参数的传递 8.5case语句的使用 8.6while循环 8.7repeat循环 8.8loop循环 8.9游标 9.存储过程的总结 10.存储函数 一、MySQL存储过程和函数 1.存储过程和函数的概念 存储过程和函数是 事先经过
愚公搬代码
2022/01/28
7010
⑩⑤【DB】详解MySQL存储过程:变量、游标、存储函数、循环,判断语句、参数传递..
注意:用户定义的变量无需对其进行声明或初始化,不声明或初始化获取到的值为NULL。
.29.
2023/11/20
2.2K0
⑩⑤【DB】详解MySQL存储过程:变量、游标、存储函数、循环,判断语句、参数传递..
MySQL数据库之存储过程与存储函数
        存储过程和存储函数类似于面向对象程序设计语言中的方法,可以简化代码,提高代码的重用性。本文主要介绍如何创建存储过程和存储函数,以及存储过程与函数的使用、修改、删除等操作。
星哥玩云
2022/08/17
7.1K0
MySQL数据库之存储过程与存储函数
Mysql的存储过程
参考:https://www.runoob.com/w3cnote/mysql-stored-procedure.html
别先生
2021/12/09
6.7K0
推荐阅读
相关推荐
Mysql存储过程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验