文章目录

  • 1 概述
  • 2 语法
    • 2.1 创建
    • 2.2 调用
    • 2.3 查询
    • 2.4 删除

1 概述

#mermaid-svg-uujcLyKOdw40JE4G {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-uujcLyKOdw40JE4G .error-icon{fill:#552222;}#mermaid-svg-uujcLyKOdw40JE4G .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-uujcLyKOdw40JE4G .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-uujcLyKOdw40JE4G .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-uujcLyKOdw40JE4G .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-uujcLyKOdw40JE4G .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-uujcLyKOdw40JE4G .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-uujcLyKOdw40JE4G .marker{fill:#333333;stroke:#333333;}#mermaid-svg-uujcLyKOdw40JE4G .marker.cross{stroke:#333333;}#mermaid-svg-uujcLyKOdw40JE4G svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-uujcLyKOdw40JE4G .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-uujcLyKOdw40JE4G .cluster-label text{fill:#333;}#mermaid-svg-uujcLyKOdw40JE4G .cluster-label span{color:#333;}#mermaid-svg-uujcLyKOdw40JE4G .label text,#mermaid-svg-uujcLyKOdw40JE4G span{fill:#333;color:#333;}#mermaid-svg-uujcLyKOdw40JE4G .node rect,#mermaid-svg-uujcLyKOdw40JE4G .node circle,#mermaid-svg-uujcLyKOdw40JE4G .node ellipse,#mermaid-svg-uujcLyKOdw40JE4G .node polygon,#mermaid-svg-uujcLyKOdw40JE4G .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-uujcLyKOdw40JE4G .node .label{text-align:center;}#mermaid-svg-uujcLyKOdw40JE4G .node.clickable{cursor:pointer;}#mermaid-svg-uujcLyKOdw40JE4G .arrowheadPath{fill:#333333;}#mermaid-svg-uujcLyKOdw40JE4G .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-uujcLyKOdw40JE4G .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-uujcLyKOdw40JE4G .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-uujcLyKOdw40JE4G .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-uujcLyKOdw40JE4G .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-uujcLyKOdw40JE4G .cluster text{fill:#333;}#mermaid-svg-uujcLyKOdw40JE4G .cluster span{color:#333;}#mermaid-svg-uujcLyKOdw40JE4G div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-uujcLyKOdw40JE4G :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

存储过程
是什么?
数据库中存储的,一段具有名称的代码
优点
封装代码,隐藏逻辑
优化性能,反复调用
缺点
占用内存

2 语法

2.1 创建

create procedure 存储过程名(in|out|inout 参数名 参数类型)
begin-- 变量定义declare v_int int default 0;-- 变量赋值set v_var = 1;-- 具体逻辑...;
end;

实例:

use test;  -- 指定执行用户
drop procedure if exists procedure_demo; -- 若存在,先删除
delimiter $$  -- 指定分隔符,避免与逻辑代码中的 ";" 产生冲突-- 创建存储过程
create procedure procedure_demo(in i_int int, out o_varchar varchar(255))
begin
-- 变量定义
declare v_int int default 0;
declare v_numeric numeric(10, 2) default 13.14;
declare v_date date default '2021-05-10';
declare v_datetime datetime default '2021-05-10 21:03:00';
declare v_varchar varchar(255) default '存储过程模板';-- 变量赋值
set v_int = i_int;-- 逻辑代码
select v_int,v_numeric,v_date,v_datetime,v_varcharfrom dual;-- 输出,y: 执行成功
set o_varchar = 'Y';
end $$delimiter ; -- 还原默认分隔符 ";"

2.2 调用

-- 有参数: 入参, 出参
call procedure_demo(2, @v_out);
select @v_out;-- 无参数
call procedure_name();

2.3 查询

-- 方式1:查询常规情况
show procedure status where db='数据库名';-- 方式2:查询常规情况
select * from information_schema.routines  rwhere r.routine_schema='数据库名'and r.routine_type = 'PROCEDURE';-- 方式3:查询定义的部分 create ...
show create procedure 数据库.存储过程名;

2.4 删除

drop procedure if exists procedure_demo; -- 若存在,先删除

Mysql 存储过程详解(procedure)相关推荐

  1. MySQL存储过程详解 mysql 存储过程

    mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的S ...

  2. mysql存储过程详解[转]

    mysql存储过程详解[转] 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功 ...

  3. mysql存储过程按区间_针对新手的MYSQL存储过程详解_CSDN_ChenF的博客-CSDN博客

    原文作者:橘左京i 原文标题:针对新手的MYSQL存储过程详解 发布时间:2021-02-22 10:03:18 一位爱好技术的橘右京的哥哥橘左京 前言:什么是存储过程?存储过程就像是一个接口,可以直 ...

  4. MySQL——存储过程详解及实例分析

    目录 一.储存过程简介 1.什么是存储过程 2.存储过程优缺点 3.存储过程入门程序 4.在idea中如何调用储存过程? 二.存储过程编程 1.存储过程的变量 2.存储过程中的参数 3.选择结构if ...

  5. MySQL存储过程详解

    1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储 ...

  6. mysql 存储过程详解

    前言 在项目开发中,经常会遇到这样一种场景,当修改A表的一条数据时,需要关联修改B表.C表甚至其他更多表的数据,为什么会这样呢? 在真实的业务场景中,往往一张表的数据关联的业务是多样的,举例来说,用户 ...

  7. mysql存储过程default的意思,针对新手的MYSQL存储过程详解

    一位爱好技术的橘右京的哥哥橘左京 前言:什么是存储过程?存储过程就像是一个接口,可以直接去调用,不需要重复的编写. 1.1 存储过程和函数概述存储过程和函数是事先经过编译并存储在数据库的一段SQL语句 ...

  8. mysql存储过程详解 mysql存储过程和函数

    第20章:存储程序和函数 目录 20.1. 存储程序和授权表 20.2. 存储程序的语法 20.2.1. CREATE PROCEDURE和CREATE FUNCTION 20.2.2. ALTER ...

  9. 史上最简单MySQL教程详解(进阶篇)之存储过程(一)

    史上最简单MySQL教程详解(进阶篇)之存储过程(一) 史上最简单MySQL教程详解(进阶篇)之存储过程(一) 什么是存储过程 存储过程的作用 如何使用存储过程 创建存储过程 DELIMITER改变分 ...

最新文章

  1. JavaScript 读写文件
  2. ASP.NET 2.0 读取配置文件[INI](示例代码下载)
  3. 安装MySQL之后修改编码方式
  4. 生产环境故障处理之nginx缓存权限问题
  5. edx错误的地方开始安装
  6. Android Service的使用方法 音乐播放器实例
  7. 10个关于人工智能和机器学习的有趣开源项目
  8. 动态规划解题套路框架
  9. 国内MySQL技术现状_1024不搬砖,谈谈自己2020剩余两月的学习计划
  10. Hbase单节点安装
  11. java获取参数编码_java获取接口数据编码问题
  12. 都说.yml 比 .properties好用,你知道为什么嘛
  13. idea怎么跳转到源代码_mooc-IDEA 项目/文件之间跳转--002
  14. MIT大牛Gilbert Strang新书:《线性代数与从数据中学习》抢先看
  15. 综合应用WPF/WCF/WF/LINQ之二十七:代码生成器之DBMLToProcedure
  16. Python类常用的魔术方法
  17. dsp和通用计算机的区别,DSP处理器与通用处理器的比较
  18. Scikit-learn实战之最近邻算法
  19. k8s各组件的端口说明
  20. 招聘季如何面试软件测试岗位?超全面试题分享

热门文章

  1. SiO2/KH550修饰四氧化三铁纳米磁性颗粒|PDA包裹四氧化三铁磁性纳米颗粒(科研级)
  2. 【CF1616H】Keep XOR Low(字典树)
  3. Genome Biology + 微生物组学研究,2022『热门研究与论文发表系列研讨会』 第六期即将开讲!...
  4. PCB设计十条黄金法则
  5. 好嗨游戏:LPL春季赛决赛在即,黑8传奇JDG迎战S8冠军IG
  6. 小鱼鱼的 Python 学习笔记(第一周)
  7. 获取Device Name方法
  8. python函数高级话题
  9. P3P解决cookie存取的跨域问题
  10. 计算机人机交互接口论文,人机交互小论文