MySQL存储函数(自定义函数),函数一般用于计算和返回一个值,可以将经常需要使用的计算或功能写成一个函数。

存储函数和存储过程一样,都是在数据库中定义一些 SQL 语句的集合。

存储函数与存储过程的区别

1.存储函数有且只有一个返回值,而存储过程可以有多个返回值,也可以没有返回值。

2.存储函数只能有输入参数,而且不能带in, 而存储过程可以有多个in,out,inout参数。

3.存储过程中的语句功能更强大,存储过程可以实现很复杂的业务逻辑,而函数有很多限制,如不能在函数中使用insert,update,delete,create等语句;

4.存储函数只完成查询的工作,可接受输入参数并返回一个结果,也就是函数实现的功能针对性比较强。

5.存储过程可以调用存储函数、但函数不能调用存储过程。

6.存储过程一般是作为一个独立的部分来执行(call调用)。而函数可以作为查询语句的一个部分来调用.

create function func_name ([param_name type[,...]])
returns type
[characteristic ...]
beginroutine_body
end;

参数说明:
(1)func_name :存储函数的名称。
(2)param_name type:可选项,指定存储函数的参数。type参数用于指定存储函数的参数类型,该类型可以是MySQL数据库中所有支持的类型。
(3)RETURNS type:指定返回值的类型。
(4)characteristic:可选项,指定存储函数的特性。
(5)routine_body:SQL代码内容。

create database mydb9_function;
-- 导入测试数据
use mydb9_function;
set global log_bin_trust_function_creators=TRUE; -- 信任子程序的创建者-- 创建存储函数-没有输输入参数
drop function if exists myfunc1_emp;delimiter $$
create function myfunc1_emp() returns int
begindeclare cnt int default 0;select count(*) into  cnt from emp;return cnt;
end $$
delimiter ;
-- 调用存储函数
select myfunc1_emp();
-- 创建存储过程-有输入参数drop function if exists myfunc2_emp;
delimiter $$
create function myfunc2_emp(in_empno int) returns varchar(50)
begindeclare out_name varchar(50);select ename into out_name from emp where  empno = in_empno;return out_name;
end $$
delimiter ;select myfunc2_emp(1008);

每文一语

适合自己的才是最好的

MySQL的存储函数与存储过程的区别相关推荐

  1. 存储函数和存储过程的区别

    ---存储过程和存储函数的区别 ---语法区别:关键字不一样, ------------存储函数比存储过程多了两个return. ---本质区别:存储函数有返回值,而存储过程没有返回值. ------ ...

  2. 关于MySQL的存储函数(自定义函数)的定义和使用方法详解

    存储函数 什么是存储函数: 封装一段sql代码,完成一种特定的功能,返回结果. 存储函数的语法: create function 函数([函数参数[,-.]]) Returns 返回类型 Begin ...

  3. 数据库系列之mysql 自定义函数function,函数和存储过程的区别

    mysql 自定义函数function,函数和存储过程的区别 https://blog.csdn.net/u010365819/article/details/80470448 https://blo ...

  4. mysql 自定义函数function,函数和存储过程的区别

    From: https://blog.csdn.net/u010365819/article/details/80470448 1.MySQL自定义函数简介 在MySQL中使用自定义函数也需要相应的要 ...

  5. MySQL学习记录 (五) ----- 存储函数、存储过程和触发器

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  6. JDBC使用总结:增删改查、调用存储过程、执行存储函数、存储过程与存储函数区别分析

    JDBC(Java Database Connectivity):Java访问数据库的解决方案. JDBC只定义接口,具体实现由各个数据库厂商负责. 原生jdbc技术的使用基本都是模板式的开发,基本格 ...

  7. 存储函数与存储过程(有这一篇就够了)

    存储函数与存储过程 一.存储过程 1.理解 2.参数的分类 3.存储过程的使用 创建 使用 二.存储函数的使用 创建 使用 三.对比存储函数和存储过程 四.存储过程与函数的查看,修改,删除 查看 修改 ...

  8. mysql中常用函数与存储过程的创建

    mysql中常用函数与存储过程的创建 常用函数汇总 数学函数 字符串函数 日期和时间函数 条件判断函数 系统函数 加密函数 其他函数 自定义函数 自定义变量的声明和赋值 基本语法 实例 存储过程 事务 ...

  9. 视图、存储函数、存储过程、触发器:MySQL系列之五

    一.视图 视图:VIEW,虚表,保存有实表的查询结果,实际数据不保存在磁盘 物化视图:实际数据在磁盘中有保存,加快访问,MySQL不支持物化视图 基表:视图依赖的表 视图中的数据事实上存储于" ...

  10. MySql—视图、函数、存储过程、触发器

    MySql高级-视图.函数.存储过程.触发器 目录 一.视图    1 1.视图的定义    1 2.视图的作用    1 (1)可以简化查询.    1 (2)可以进行权限控制,    3 3.查询 ...

最新文章

  1. Spring Cloud Alibba教程:Sentinel的使用
  2. LRU算法确定最后使用时间的顺序
  3. java实验2词法分析程序设计
  4. Eclipse设置背景色、字体大小
  5. 到底使用接口还是抽象类
  6. re.compile与sub
  7. Spring mvc注解方式使用事务回滚
  8. P1357 花园 (矩阵快速幂+ DP)
  9. Sql server2005中如何格式化时间日期
  10. 使用requests通过代码实现接口测试自动化
  11. oracle必须配置哪个参数,oracle – 此操作必须将ORA-02069 global_names参数设置为TRUE...
  12. Python:暴力破解密码
  13. 定值保险计算举例_保险学计算题
  14. tiup telemetry
  15. GAMIT重新编译及升级
  16. python规范化货币_Python货币资金科目分析
  17. Solidworks如何为装配体绘制剖面视图
  18. 【单片机基础】C51语言基础
  19. 解读!10篇人机交互领域高引论文合集
  20. IT创业网赚项目 - 做视频网赚项目,选择好平台很重要!

热门文章

  1. GPS之Ublox方案设计
  2. 《自己动手写操作系统 》第九章 一 简易硬盘驱动的实现
  3. 网络通信基础(局域网、广域网、IP地址、端口号、协议、封装、分用)
  4. 基于QT的音乐播放器
  5. 博士德霸道软件_霸道+网络版7.0
  6. foobar2000_为MP3/flac嵌入歌词文件/封面编辑(提供eslyric插件下载)/信息标签编辑
  7. 小说有广告?我用50行Python爬虫做了一个无广在线小说阅读器
  8. ubuntu 16.04 蓝牙鼠标 (可连接但是无法使用)
  9. 【基于物理的渲染(PBR)白皮书】(一) 开篇:PBR核心知识体系总结与概览
  10. JAVA回合制pk游戏