<提升效率>Mysql函数(function)|存储过程(procedure)函数存储过程小结

function_procedure

函数

mysql内置的函数很好用,同样mysql也支持用户自定义函数

1.为避免和函数中的语句结束符;冲突,将语句结束符号临时重定义为$$

delimiter $$

2.书写函数体

  • 语法
create function 函数名(参数列表) returns 返回值类型
begin
    
declare 变量名 变量类型;
    
逻辑语句;
    
return 返回值;
    
end
    
$$
  • 示例
create function num_add() returns varchar(100)
begin
    
declare i int default 1;
declare x varchar(100) default '';
while i < 20 do
    
if i%2 = 0 then
    
set x = concat(x, " ", i);
    
end if;
    
set i = i + 1;
    
end while;
    
return x;
end
$$

3.将语句结束符还原为;

delimiter ;

4.调用函数

select num_add();

运行结果:

mysql_function

函数体中也可以编写sql语句,但不能使用select...from...,所以通过sql对数据表进行操作的任务,最好交给"存储过程"


存储过程

与函数相比,"存储过程"可以对"所有sql语句"进行完美封装.

1.为避免和"存储过程"中的语句结束符;冲突,将语句结束符号临时重定义为$$

delimiter $$

2.创建"存储过程"

  • 语法
create procedure 存储过程名称(参数列表)
begin

sql语句;    


end

$$
  • 示例
create procedure show_func_and_proc()
begin
    
select name, type, db from mysql.proc;
end
$$

3.将语句结束符还原为;

delimiter ;

4.调用新建的存储过程

call show_func_and_proc();

运行结果:

mysql_procedure

小结

函数和存储过程中的主体都被begin...end嵌套,这是一种名为"事务"的结构,目的是保证begin...end以内的语句不可分割,要么完整执行,要么不执行.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

Go 语言结构

o Hello World 实例 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 & 表达式 注释 接下来让我们来看下简单的代码,该代码...

3547
来自专栏蓝天

sed 命令+正则表达式

sed是一个非交互性性文本编辑器, 它编辑文件或标准输入导出的文件拷贝。标准输入可能是来自键盘、文件重定向、字符串或变量,或者是一个管道文件。sed可以随意编辑...

1022
来自专栏LIN_ZONE

Shell编程基础

请参考:菜鸟教程参数传递 在执行脚本的时候可以向脚本传递参数,脚本获取参数的格式为:$n

682
来自专栏

go 语言的序列化与反序列化

与c 语言一样, 在网络编程中, go语言同样需要进行序列化与反序列化 在c语言中, 通常需要一块内存缓冲区用来收 发数据。缓冲区一般定义成char *buff...

3297
来自专栏梧雨北辰的开发录

Swift学习:协议

本篇将详细总结介绍Swift协议的用法; 协议是定义一些规范(属性、功能方法),然后由类、结构体或者枚举遵循并实现这些规范,这一过程被称为遵循了协议。

832
来自专栏Theo Tsao

Linux查找和筛选工具

本文包含: 文件名通配符、命令中的正则表达式、查找文件工具 find、查找文本工具 grep、转换和删除重复命令 tr、合并和分割工具。

1664
来自专栏北京马哥教育

Linux Shell 文本处理工具集锦

本文将介绍Linux下使用Shell处理文本时最常用的工具:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk;...

4167
来自专栏C语言C++游戏编程

七夕来了,请用C 语言和我交流

当我们提到输入时,这意味着要向程序填充一些数据。输入可以是以文件的形式或从命令行中进行。C 语言提供了一系列内置的函数来读取给定的输入,并根据需要填充到程序中。

1052
来自专栏编程微刊

回调函数路由,模板渲染

1555
来自专栏枕边书

PHP用mb_string函数库处理与windows相关中文字符

昨天想批处理以前下载的一堆文件,把文件里的关键内容用正则匹配出来,集中处理。在操作文件时遇到一个问题,就是windows操作系统中的编码问题。 我们都知道win...

21010

扫码关注云+社区