一、存储过程介绍

存储过程是一组预先编译好的SQL语句的集合,可理解成批处理语句。它的优点主要有以下几点:

1、提高代码的重用性;

2、简化操作;

3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率。

二、存储过程的创建

DELIMITER 定界符
CREATE PROCEDURE 存储过程名(形参列表)
BEGIN存储过程体(一组合法的SQL语句)
END 定界符

但MySQL实际存储的存储过程定义可能并没有这么简单:

在使用存储过程的时候,一定要注意参数列表中,每个形参的定义都包含三部分:

参数模式 (IN、OUT、INOUT)、参数名、参数类型

例如:

IN stuname VARCHAR(10)

牢记参数模式分为三种:

IN : 该模式参数仅可以作为输入值使用。

OUT : 该模式参数仅可以作为输出值使用,从存储过程并没有类似函数那样的返回值,通过定义OUT 模式的参数,可以让存储过程携带返回值。

INOUT : 该模式参数既可以作为输入,也可以作为输出。

另外,如果存储过程体仅有一句话,可以省略 BEGIN 和 END 。存储过程体的每条SQL 语句要求必须以分号结尾

定义存储过程需要设置一个定界符,代表存储过程定义完毕,一般使用 $ 、& 等特殊字符均可。

注意,存储过程一旦创建,将无法修改(存储体),如果希望修改,可以删除后重建。删除存储过程的方法和 DROP TABLE 类似,只是将 TABLE 关键字换为 PROCEDURE 即可。

查看创建好的存储过程可以使用:

SHOW CREATE PROCEDURE 存储过程名;

三、存储过程的调用

CALL 存储过程名(实参列表);

四、MySQL 函数

函数和存储过程很类似,也是是一组预先编译好的SQL语句的集合,类似于批处理语句。提供了代码重用性,简化操作,同时减少了编译次数,并且减少了和数据库服务器的连接次数,提供了效率。

但是和存储过程也有所不同,他们的区别主要是:

存储过程:可以没有返回值,也可以有多个返回值,适合做批量插入,批量更新。

函数:有且仅有 1 个返回值,适合做处理数据后返回一个结果。

五、函数的创建

CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型
BEGIN函数体
END

参数列表中的每个参数包含两部分:

参数名、参数类型

函数体必须要有 RETURN 语句,并且与"函数签名" 中的 RETURNS 类型相对应,否则会报错。一般将 RETURN 语句放在函数体的最后,其他位置不建议。

函数体如果只有一句话,同样可以像存储过程一样省略 BEGIN 和 END 。

函数定义同样需要 DELIMITER 设置定界符。

六、函数的调用

SELECT 函数名(实参列表);

MySQL 基础 ———— 存储过程与函数相关推荐

  1. mysql以下日期函数正确的_[数据库]MYSQL基础03(日期函数)

    [数据库]MYSQL基础03(日期函数) 0 2015-10-29 01:00:09 工作中对日期的处理是经常遇到的,需求可能多种多样,因此重点介绍. 1.获取当前日期select NOW()-- 结 ...

  2. MySQL之存储过程及函数的使用

    MySQL之存储过程及函数的使用 4.存储过程和函数 4.1 存储过程和函数概述 存储过程和函数是 事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程和函数可以简化应用开发人员的很多工作 ...

  3. mysql创建存储过程及函数详解

    文章来源: 学习通http://www.bdgxy.com/ 目录 1. 存储过程 1.1. 基本语法 1.2 创建一个指定执行权限的存储过程 1.3?DELIMITER 的使用 2. 创建函数? 1 ...

  4. MySQL 案例实战--MySQL数据库 存储过程 存储函数

    MySQL数据库 存储过程 & 存储函数 前言 一.什么是存储过程 & 存储函数 二.存储过程的创建和调用 三.存储函数的创建和调用 前言 本环境是基于 Centos 7.8 系统构建 ...

  5. MySQL的存储过程和函数简单写法

    什么是存储过程 简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法: ps:存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的,且功 ...

  6. mysql存储过程输入参数拆分_一文看懂mysql数据库存储过程、函数、视图、触发器、表...

    概述 抽空总结一下mysql的一些概念性内容,涉及存储过程.函数.视图.触发器等. 一.查看存储过程.函数.视图.触发器.表 1.存储过程 select * from mysql.proc where ...

  7. MySQL高级-存储过程和函数

    存储过程和函数 1.存储过程和函数概述 2 创建存储过程 3 调用存储过程 4 查看存储过程 5 删除存储过程 6 语法 6.1 变量 6.2 if条件判断 6.3 传递参数 6.4 case结构 6 ...

  8. MySQL——创建存储过程和函数

    简单地说,存储过程就是一条或多条  SQL  语句的集合,可视为批文件,但是其作用不仅限于批处理.存储程序可以分为存储过程和函数.存储过程要用 CALL  语句来调用,并且只能用输出变量返回值. 1. ...

  9. MySQL基础 - 表达式和函数

    表达式 学过小学数学的我们应该知道,将数字和运算符连接起来的组合称之为表达式,比方说这样: 1 + 1 5 * 8 我们可以将其中的数字称之为操作数,运算符可以称之为操作符.特殊的,单个操作数也可以被 ...

最新文章

  1. 异形隔离java剧情_异形隔离攻略 系统上手教程 全剧情流程图文攻略(41)
  2. ActiveMQ消息队列的使用及应用
  3. tableau中的那些快捷键,让你的操作更顺滑
  4. Python eval的用法及注意事项
  5. 【iCore1S 双核心板_FPGA】例程十六:基于SPI的ARM与FPGA通信实验
  6. python中属性是什么意思啊_python中的“对象属性”和一般属性是什么?
  7. 通用型CRM还是行业型CRM?-定制为王
  8. SQL中on条件与where条件的区别(二)【转】
  9. k2p 高恪魔改固件
  10. 区分clientHeight、scrollHeight、offsetHeight
  11. 5.3 解决二维拉普拉斯方程:heat_2d
  12. 2022-2028全球与中国智能家居产品市场现状及未来发展趋势
  13. 基于python和tesseract库的中英文识别(OCR)
  14. 随机生成游戏用户昵称(nodejs版本)(含机器人头像,金币等)
  15. 智能分析网关微信端告警消息推送的开发流程
  16. 最完整苹果IOS个人开发账号升级方法-个人开发账号升级为公司开发者账号常见误区...
  17. 苹果系统设置http代理ip教程
  18. UE4:快速入门蓝图(Blueprint)的方法之一
  19. centos 8 编译安装hyperscan
  20. PythonNOJ习题前二十道(西北工业大学cpSkill实验平台)

热门文章

  1. Python中的简单图案打印程序
  2. 带有Python示例的math.cos()方法
  3. 自由职业的前半年,我是如何度过的?
  4. git 创建webpack项目_从0到1开发一个小程序cli脚手架(一)创建页面/组件模版篇...
  5. Autofac在Asp.net MVC中在 Areas拆分到不同DLL下的注入失败问题
  6. php加载autoload,php自动加载类__autoload()的方法_PHP教程
  7. c++ hough变换代码_hough变换原理以及实现(转载)
  8. 水星怎么设置网速最快_水星无线路由器如何设置网速限制 水星路由器怎么让别人网速限制方法...
  9. python同时输出两个数组_python中实现将多个print输出合成一个数组
  10. mysql 命令desc tables_oracle中与mysql中的命令 show databases, show tables, desc table类似的命令集...