MySQL的存储函数与存储过程的区别
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的存储函数与存储过程的区别相关推荐
- 存储函数和存储过程的区别
---存储过程和存储函数的区别 ---语法区别:关键字不一样, ------------存储函数比存储过程多了两个return. ---本质区别:存储函数有返回值,而存储过程没有返回值. ------ ...
- 关于MySQL的存储函数(自定义函数)的定义和使用方法详解
存储函数 什么是存储函数: 封装一段sql代码,完成一种特定的功能,返回结果. 存储函数的语法: create function 函数([函数参数[,-.]]) Returns 返回类型 Begin ...
- 数据库系列之mysql 自定义函数function,函数和存储过程的区别
mysql 自定义函数function,函数和存储过程的区别 https://blog.csdn.net/u010365819/article/details/80470448 https://blo ...
- mysql 自定义函数function,函数和存储过程的区别
From: https://blog.csdn.net/u010365819/article/details/80470448 1.MySQL自定义函数简介 在MySQL中使用自定义函数也需要相应的要 ...
- MySQL学习记录 (五) ----- 存储函数、存储过程和触发器
相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...
- JDBC使用总结:增删改查、调用存储过程、执行存储函数、存储过程与存储函数区别分析
JDBC(Java Database Connectivity):Java访问数据库的解决方案. JDBC只定义接口,具体实现由各个数据库厂商负责. 原生jdbc技术的使用基本都是模板式的开发,基本格 ...
- 存储函数与存储过程(有这一篇就够了)
存储函数与存储过程 一.存储过程 1.理解 2.参数的分类 3.存储过程的使用 创建 使用 二.存储函数的使用 创建 使用 三.对比存储函数和存储过程 四.存储过程与函数的查看,修改,删除 查看 修改 ...
- mysql中常用函数与存储过程的创建
mysql中常用函数与存储过程的创建 常用函数汇总 数学函数 字符串函数 日期和时间函数 条件判断函数 系统函数 加密函数 其他函数 自定义函数 自定义变量的声明和赋值 基本语法 实例 存储过程 事务 ...
- 视图、存储函数、存储过程、触发器:MySQL系列之五
一.视图 视图:VIEW,虚表,保存有实表的查询结果,实际数据不保存在磁盘 物化视图:实际数据在磁盘中有保存,加快访问,MySQL不支持物化视图 基表:视图依赖的表 视图中的数据事实上存储于" ...
- MySql—视图、函数、存储过程、触发器
MySql高级-视图.函数.存储过程.触发器 目录 一.视图 1 1.视图的定义 1 2.视图的作用 1 (1)可以简化查询. 1 (2)可以进行权限控制, 3 3.查询 ...
最新文章
- Spring Cloud Alibba教程:Sentinel的使用
- LRU算法确定最后使用时间的顺序
- java实验2词法分析程序设计
- Eclipse设置背景色、字体大小
- 到底使用接口还是抽象类
- re.compile与sub
- Spring mvc注解方式使用事务回滚
- P1357 花园 (矩阵快速幂+ DP)
- Sql server2005中如何格式化时间日期
- 使用requests通过代码实现接口测试自动化
- oracle必须配置哪个参数,oracle – 此操作必须将ORA-02069 global_names参数设置为TRUE...
- Python:暴力破解密码
- 定值保险计算举例_保险学计算题
- tiup telemetry
- GAMIT重新编译及升级
- python规范化货币_Python货币资金科目分析
- Solidworks如何为装配体绘制剖面视图
- 【单片机基础】C51语言基础
- 解读!10篇人机交互领域高引论文合集
- IT创业网赚项目 - 做视频网赚项目,选择好平台很重要!
热门文章
- GPS之Ublox方案设计
- 《自己动手写操作系统 》第九章 一 简易硬盘驱动的实现
- 网络通信基础(局域网、广域网、IP地址、端口号、协议、封装、分用)
- 基于QT的音乐播放器
- 博士德霸道软件_霸道+网络版7.0
- foobar2000_为MP3/flac嵌入歌词文件/封面编辑(提供eslyric插件下载)/信息标签编辑
- 小说有广告?我用50行Python爬虫做了一个无广在线小说阅读器
- ubuntu 16.04 蓝牙鼠标 (可连接但是无法使用)
- 【基于物理的渲染(PBR)白皮书】(一) 开篇:PBR核心知识体系总结与概览
- JAVA回合制pk游戏