当前位置:网站首页>MySQL存储函数详解
MySQL存储函数详解
2022-08-02 03:53:00 【ahyo】
存储函数和存储过程一样,都是在数据库中定义一些 SQL 语句的集合。存储函数可以通过 return 语句返回函数值,主要用于计算并返回一个值。而存储过程没有直接返回值,主要用于执行操作。
在 MySQL 中,使用 CREATE FUNCTION 语句来创建存储函数,其语法形式如下:
CREATE FUNCTION sp_name ([func_parameter[...]])
RETURNS type
[characteristic ...] routine_body
其中:
sp_name 参数:表示存储函数的名称;
func_parameter:表示存储函数的参数列表;
RETURNS type:指定返回值的类型;
characteristic 参数:指定存储函数的特性,该参数的取值与存储过程是一样的;
routine_body 参数:表示 SQL 代码的内容,可以用 BEGIN...END 来标示 SQL 代码的开始和结束。
注意:在具体创建函数时,函数名不能与已经存在的函数名重名。除了上述要求外,推荐函数名命名(标识符)为 function_xxx 或者 func_xxx。
func_parameter 可以由多个参数组成,其中每个参数由参数名称和参数类型组成,其形式如下:
[IN | OUT | INOUT] param_name type;
其中:
IN 表示输入参数,OUT 表示输出参数,INOUT 表示既可以输入也可以输出;
param_name 参数是存储函数的参数名称;
type 参数指定存储函数的参数类型,该类型可以是 MySQL 数据库的任意数据类型。
由于存储函数和存储过程的查看、修改、删除等操作几乎相同,所以我们不再详细讲解如何操作存储函数了。
查看存储函数的语法如下:
SHOW FUNCTION STATUS LIKE 存储函数名;
SHOW CREATE FUNCTION 存储函数名;
SELECT * FROM information_schema.Routines WHERE ROUTINE_NAME=存储函数名;
可以发现,操作存储函数和操作存储过程不同的是将 PROCEDURE 替换成了 FUNCTION。同样,修改存储函数的语法如下:
ALTER FUNCTION 存储函数名 [ 特征 … ]
存储函数的特征与存储过程的基本一样。
删除存储过程的语法如下:
DROP FUNCTION [ IF EXISTS ] <函数名>
边栏推荐
猜你喜欢

多主复制下处理写冲突(4)-多主复制拓扑

v-bind动态绑定

jetracer_pro_2GB AI Kit system installation instructions

Research Notes (8) Deep Learning and Its Application in WiFi Human Perception (Part 2)

Jetson Nano 2GB Developer Kit 安装说明

MapFi paper structure organization

不会多线程还想进 BAT?精选 19 道多线程面试题,有答案边看边学

深度学习基础之批量归一化(BN)

单目三维目标检测之CaDDN论文阅读
深度剖析-class的几个对象(utlis,component)-瀑布流-懒加载(概念,作用,原理,实现步骤)
随机推荐
this指向问题
详解CAN总线:什么是CAN总线?
Arduino框架下ESP32重启原因串口信息输出示例
被大厂强制毕业,两个月空窗期死背八股文,幸好上岸,不然房贷都还不上了
Kubernetes中Pod对象学习笔记
三维目标检测之OpenPCDet环境配置及demo测试
深蓝学院-视觉SLAM十四讲-第六章作业
Pycharm platform import scikit-learn
如何评价最近爆红的FastAPI?
6个月测试经验,面试跳槽狮子大开口要18K,只会点点点,给我整无语了。。
剩余参数、数组对象的方法和字符串扩展的方法
Scalar value for argument ‘color‘ is not numeric错误处理
【学习笔记】如何打造运维组织架构
如何将PDF中的一部分页面另存为新的PDF文件
深度学习基础之batch_size
深蓝学院-视觉SLAM十四讲-第五章作业
Deep Blue Academy-Visual SLAM Lecture 14-Chapter 6 Homework
offset、client 和 scroll
无主复制系统(1)-节点故障时写DB
复制延迟案例(3)-单调读