mysql学习笔记之函数

文章有点长请耐心看完哈,有错误请指出

·函数

在这里插入图片描述

·内置函数(以下列出部分函数)

一、字符串函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、时间函数在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、数学函数

在这里插入图片描述

五、其他函数

在这里插入图片描述

·自定义函数

在这里插入图片描述

一、创建函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、查看函数

1、可以通过查看function状态,查看所有的函数

show function status [like 'pattern']

在这里插入图片描述

2、查看函数的创建语句:

show create function my_fun1;

在这里插入图片描述

三、调用函数

自定义函数调用与内置函数的调用是一样的:select 函数名(实参列表)

四、删除函数

基本语法 drop function 函数名

·注意事项

在这里插入图片描述

·函数流程结构案例

目的:从1开始知道用户传入的对应的值为止,自动求和凡是5的倍数都不要
设计:
1、创建函数
2、需要一个形参,确定累加到什么位置
3、需要定义一个变量来保存对应的结果
4、内部需要一个循环来实现叠加
5、循环内部需要条件控制来排除5的倍数

delimiter $$
create function my_sum(end_value int) returns int
begin
     declare res int default 0;//声明局部变量
     declare i int default 1;
    mywhile:while i<=end_value do
            if i%5 = 0 then 
                   set i = i+1;44
                   iterate mywhile;
            end if;
             set res = res +i;//mysql中没有++符号
             set i  = i + 1
     end while mywhile;
     return res;                         
end
$$
delimiter ;

调用函数: select 函数名(参数)

·变量作用域

变量能够使用的区域范围

一、局部作用域

使用declare关键字声明(在结构体内:函数、存储过程、触发器),只能在结构体内部使用

1、declare 关键字声明的变量没有任何符号,就是普通字符串,如果在外部访问该变量,系统会自动认为是字段

二、会话作用域

用户定义的,使用@符号,使用set关键字

会话作用域:在当前用户当次连接有效,只要在本连接之中任何地方都可以使用,可以跨库使用

三、全局作用域

所有的客户端所有的连接都有效;
使用全局符号来定义

set global 变量名 = 值
set @@globle.变量名 = 值

通常在sql编程时候,一般不会使用自定义变量来控制全局

猜你喜欢

转载自blog.csdn.net/qq_44105778/article/details/86634708
今日推荐