MySQL自定义函数和存储过程
创始人
2024-05-30 14:11:27
0

自定义函数

使用步骤

1.第一步修改结束符号

基本语法格式 :修改结束符号来写一个自定义函数

DELIMITER 新的结束符号比如$$自定义函数
新的结束符号 
DELIMITER;

修改结束符号用的就是 delimiter

2.第二步,写自定义函数

基本语法格式

REATE FUNCTION 函数名([参数名 参数类型...]) RETURNS 返回值的类型
BEGIN函数体RETURN 返回值
END

现在我们来一个完整的例子

DELIMITER $$
CREATE FUNCTION sayhello(name varchar(30)) RETURNS varchar(50)
BEGINRETURN CONCAT("HELLO",name,"!");
END
$$
***
DELIMITER;

我们在这里写了一个名为sayhello的函数,并修改了语句结束符号为$$

通过语句SELECT sayhello("JOJO") 就可以调用

删除函数

drop function [if exists] 函数名;

存储过程

这东西和自定义函数类似

相同点

1.可重复执行语句集合

2.只需一次编译即可直接执行

不同点

1.存储过程使用 PROCEDURE(procedure) 自定义函数使用 FUNCTION

2.存储过程没有返回值 函数必须有

3.函数可以设置返回值的类型

4.存储过程使用 CALL调用 函数可以使用SELECT调用

存储过程基本语法

delimiter 新的结束符号
CREATE PROCEDURE 过程名([[IN|OUT|INOUT] 参数名称 参数类型])
BEGIN过程体
END
新的结束符号
DELIMITER;

参数

其中的三个参数

in

输入参数

out

输出参数

inout

输入输出参数

注意

当形参被定义为OUT 或者 INOUT 时 参数必须是一个变量

用于接收返回给调用者的数据

例子

delimiter $$
CREATE PROCEDURE proc(in sid int)
BEGINselect id,name from student where id>sid;
END
$$
DELIMITER;

调用存储过程

CALL 数据库名.存储过程名([实参列表])
CALL proc(14); #查看id大于14的学生的id和姓名

查看存储过程

show create procedure 过程名;

存储过程的修改

ALTER procedure 存储过程名 [特征];
#特征在创建或修改时都可以使用

特征

选项

描述

comment"注释内容"

注释

LANGUAGE SQL

用sql语句来执行 以后可能扩展其他类型

contains sql

包含除读或写的sql语句

no sql

子程序中不含sql语句

reads sql data

子程序中包含读取数据的语句

modifies sql data

子程序中包含写数据的语句

ql security definer

只有定义者才有权限执行存储过程

sql security invoker

调用者有权执行存储过程

简单用一下alter procedure proc sql security invoker;

之后只有调用者有权执行存储过程

删除存储过程

DROP PROCEDURE [IF exists] 存储过程名;

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...