存储程序分为存储过程和存储函数。在MySQL中创建存储过程和存储函数的语句分别是create procedure 和create function。使用call语句来调用存储过程,只能用输出变量返回值。

1.创建存储过程。

需要用到create procedure,其基本语法如下:

create procedure 存储过程名称(参数列表)存储过程特性 存储体;

参数列表为:【in|out|inout 参数名称 参数类型】。in为输入参数,out为输出参数,inout两者都有。

存储特性为指定存储过程中的特性。

存储体就是写的具体的SQL。

其中参数列表和存储过程特性为可选项。

# 比如此存储过程就是一个名为sumPrice的存储过程,begin和end用来限定存储体。
create procedure sumPrice()
begin
select sum(price) from books;
end;
# 例如使用参数的存储过程,将其命名为countTotal,将计算的数目给参数ct。
create procedure countTotal(out ct int)
begin
select count(*) into ct from books;
end

2.创建存储函数。

创建存储函数需要用到create function语句。

create function func_name(参数列表)returns type 指定存储特性 存储体。

其中参数列表如存储过程一样,returns type是返回类型,指定存储特性也是可选项。

# 定义一个nameString无参存储函数,其返回类型为字符类型。
create function nameString()
returns char(100)
return(select name from class);

需要注意的是:指定参数in,out,inout只能对于存储过程,而对于存储函数来说,只能是默认的in。

以上就是最简单的存储过程和存储函数的创建过程。

MYSQL中如何创建存储过程和存储函数(上篇)相关推荐

  1. MySQL(六)——存储过程和存储函数

    前言 今天简单的介绍一下"存储函数"和"存储过程",平时在工作中用到的时间不多,时间长了难免会忘记.在这里简单的做个回忆总结,方便自己以后复习回忆,当然能帮到需 ...

  2. Mysql存储过程和存储函数

    存储过程和存储函数 前言 存储过程的相关操作 创建 调用 查看 删除 语法 变量的定义与赋值 if条件判断 参数 case结构 while循环 repeat循环结构 loop语句 leave语句 游标 ...

  3. MySQL初级篇——存储过程、存储函数的相关概念及应用举例

    文章目录: 1.什么是存储过程? 2.存储过程操作相关SQL 3.存储过程实操SQL 4.存储函数操作相关SQL 5.存储函数实操SQL 6.存储过程.存储函数的优缺点 1.什么是存储过程? 含义:存 ...

  4. 【宋红康 MySQL数据库】【基础版】【15】存储过程与存储函数

    文章目录 存储过程与存储函数 定义存储过程与存储函数 对比存储函数和存储过程 存储过程概述 理解 分类 创建存储过程 语法分析 代码举例 调用存储过程 调用格式 代码举例 如何调试 存储函数的使用 语 ...

  5. 【MySQL】存储过程与存储函数

    存储过程与存储函数 1 存储过程 1.1介绍 存储过程是事先经过编译并存储在数据库中的一段SQL 语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提 ...

  6. MySQL存储过程与存储函数

    1.创建存储过程 存储过程就是一条或者多条 SQL 语句的集合,可以视为批文件.它可以定义批量插入的语句,也可以定义一个接收不同条件的 SQL. 创建存储过程的语句为 "create pro ...

  7. 【MySQL进阶】存储过程及存储函数

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

  8. 第15章_存储过程与函数(创建存储过程、调用存储过程、存储函数的使用、存储过程和函数的查看、修改、删除)

    第15章_存储过程与函数 第15章_存储过程与函数 1. 存储过程概述 1.1 理解 1.2 分类 2. 创建存储过程 2.1 语法分析 2.2 代码举例 3. 调用存储过程 3.1 调用格式 3.2 ...

  9. MySQL学习笔记 05、触发器、存储过程、存储函数、定时任务

    文章目录 前言 一.触发器 提前准备测试表 1.1.创建触发器 1.2.删除触发器 二.存储过程 2.1.认识变量 2.1.1.系统变量 2.1.2.用户变量 2.2.存储过程创建 2.3.删除存储过 ...

最新文章

  1. 《CCNP TSHOOT 300-135认证考试指南》——5.10节定义关键术语
  2. HDU 1536 求解SG函数
  3. [html] html5中的form怎么关闭自动完成?
  4. Python基础 —— sys 模块
  5. 目标检测回归损失函数——IOU、GIOU、DIOU、CIOU、EIOU
  6. 《Windows via C/C++》学习笔记 —— 用户模式的“线程同步”之“条件变量”
  7. 我的博客css得到别人的认可
  8. 迈信EP100伺服驱动器量产型修改bug全套C源代码
  9. 3dmax:3dmax的软件面板简介、软件配置优化、设计流程、设计经验、六种建模方法
  10. AOSP ~ 默认开启开发者模式
  11. java绘制图形_java怎么绘制简单图形
  12. wps折线图如何画多条折线_如何用wps制作折线图
  13. 5种方案实现订单30分钟未支付,则自动取消
  14. Ubuntu20.4 ping baudu.com contect: 网络不可达
  15. linux修改英文设置密码,linux 如何修改passwd的密码 设置密码
  16. 10.HTML基础——表格标签
  17. windows键按了没反应_教你如何从Windows无缝衔接到MacOS
  18. 苏宁11.11:一种基于神经网络的智能商品税分类系统
  19. 华清远见-重庆中心-数据库阶段技术总结/个人总结
  20. 三菱伺服调试软件_三菱M70第四轴追加参数设定一览表

热门文章

  1. 已解决NameError: name ‘unichr‘ is not defined
  2. 【剑指offer-54】20190907/03 字符流中第一个不重复的字符
  3. 985毕业,沪漂10年,月薪4w,我却活得一地鸡毛
  4. Python 3 print() 输出自动换行
  5. 【工具使用系列】关于 MATLAB 多机电力应用,你需要知道的事
  6. 从软件工程师到一个愤青IT猎头的经历
  7. JEB2插件教程之一JEB2AutoRenameByTypeInfo.py
  8. 关于我AbortME
  9. JS padStart()方法和padEnd()方法(ES6新增方法)
  10. OFDMA trigger frame