当前位置:网站首页>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 ] <函数名>
边栏推荐
- Arduino框架下 ESP32看门狗使用示例
- 吴恩达机器学习系列课程笔记——第九章:神经网络的学习(Neural Networks: Learning)
- 深蓝学院-手写VIO作业-第二章
- MySQL read-write separation mysql-proxy deployment
- jetracer_pro_2GB AI Kit系统安装使用说明
- EasyCVR视频广场切换通道,视频播放协议异常的问题修复
- 2022-08-01:以下go语言代码输出什么?A:panic;B:5;C:6;D:编译错误。 package main import ( “fmt“ ) func main() {
- 迭代器与生成器
- 【学习笔记】如何打造运维组织架构
- 深蓝学院-视觉SLAM十四讲-第六章作业
猜你喜欢

其他语法和模块的导出导入

jetracer_pro_2GB AI Kit system installation instructions

吴恩达机器学习系列课程笔记——第九章:神经网络的学习(Neural Networks: Learning)

吴恩达机器学习系列课程笔记——第七章:正则化(Regularization)

Jetson Nano 2GB Developer Kit 安装说明

从事功能测试1年,裸辞1个月,找不到工作的“我”怎么办?

迭代器与生成器
![[Study Notes] How to Create an Operation and Maintenance Organizational Structure](/img/9d/037c9d2d66644d6b949721d506be03.png)
[Study Notes] How to Create an Operation and Maintenance Organizational Structure

被大厂强制毕业,两个月空窗期死背八股文,幸好上岸,不然房贷都还不上了

如何将PDF中的一部分页面另存为新的PDF文件
随机推荐
MySQL read-write separation mysql-proxy deployment
深度学习基础之batch_size
高等数学(第七版)同济大学 总习题三(前10题) 个人解答
Nexus 5 phone uses Nexmon tool to get CSI information
MapFi paper structure organization
EasyCVR视频广场切换通道,视频播放协议异常的问题修复
自定义一个下划线分词器
8月1日“海豹数藏”将全网首发民族英雄林则徐《四行行书》数字藏品!
The CCF brush topic tour - the first topic
VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tupl
MySQL8.0与MySQL5.7区别
asyncawait和promise的区别
吴恩达机器学习系列课程笔记——第十四章:降维(Dimensionality Reduction)
Deep Blue Academy - 14 Lectures on Visual SLAM - Chapter 7 Homework
7亿听众背后的在线音频掘金故事
盒子移动和滚动加载效果练习
深度剖析-class的几个对象(utlis,component)-瀑布流-懒加载(概念,作用,原理,实现步骤)
Promise
Scientific research notes (5) SLAC WiFi Fingerprint+ Step counter fusion positioning
我们擅长的地方很多