参考资料:

MySQL之自定义函数 - 知乎 (zhihu.com)

MySQL 数据类型 | 菜鸟教程 (runoob.com)

基本语法

-- 修改结尾分割符为“$$”。
-- MySQL默认是根据“;”作为分隔符的,当检查到有“;”就认为语句结束了。故需要改变
DELIMITER $$
-- 第一条SQL: 创建前先尝试删除历史的方法
DROP FUNCTION IF EXISTS 方法名$$
-- 第二条SQL: 创建方法
CREATE FUNCTION 方法名(参数 参数类型)
RETURNS 返回值类型
COMMENT '这是注释内容,主要用来说明该方法是用来干什么的'
BEGIN-- 使用“DECLARE”关键字定义变量,类型JavaScript中的varDECLARE 变量名 变量类型[(变量长度)] DEFAULT 默认值;-- 或DECLARE 变量名 变量类型[(变量长度)];-- 这里写方法体...-- 变量赋值:SET 变量名 := 变量值;-- 或-- 相当于: 变量A = A, 变量B = BSELECT A, B INIO 变量A, 变量B FROM 表;-- 判断IF 变量 = 变量值1 THEN...-- 注意MySQL是ELSEIF,而不是ELSIFELSEIF 变量 = 变量值1 THEN...ELSE ...END;-- 嵌套判断-- 第一层判断:IF 变量 = 变量值1 THEN-- 第二层判断:IF 变量 = 变量值1 THEN...END;ELSEIF 变量 = 变量值1 THEN...ELSE ...END;RETURN 变量;
END $$
-- 记得将分隔符改为默认的“;”
DELIMITER ;

注意

  • 如果参数或返回的值是不确定小数位数的数值,类型推荐使用:FLOATDOUBLE,尽量不使用DECIMAL

    原因:DECIMAL默认会被解析成DECIMAL(10, 0),如果传一个小数进入,会被处理成整数。

    比如:传入5.5,则处理成6。

  • MySQL函数默认不支持可变参数和重载。

示例

DELIMITER $$
DROP FUNCTION IF EXISTS GETWD$$
CREATE FUNCTION GETWD(ANGLE FLOAT)
RETURNS VARCHAR(20)
COMMENT '根据角度获取方位'
BEGINDECLARE V_RESULT VARCHAR(20);IF ANGLE IS NULL THENRETURN NULL;END IF;IF (315 >= ANGLE AND ANGLE < 45) THENSET V_RESULT := 'N';ELSEIF (45 <= ANGLE AND ANGLE < 135) THENSET V_RESULT := 'E';ELSEIF (135 <= ANGLE AND ANGLE < 225) THENSET V_RESULT := 'S';ELSEIF (225 <= ANGLE AND ANGLE < 315) THENSET V_RESULT := 'W';ELSESET V_RESULT := 'N';END IF;RETURN V_RESULT;
END $$
DELIMITER ;

MySQL 创建函数入门相关推荐

  1. MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音MySQL汉字生成拼音字符串

    MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音 一.MySQL创建函数 1.语法 CREATE FUNCTION fun_name([paramName type , ...

  2. MySQL创建函数报“ERROR 1418 ”错误,不能创建函数

    MySQL创建函数报ERROR 1418错误,不能创建函数,根据官方提示是说,不能创建函数可能是一个安全设置方面的配置或功能未开启原因,下面我们一起来看. 错误 ERROR 1418 (HY000): ...

  3. mysql创建函数失败_MYSQL创建函数出错如何解决

    在使用MySQL数据库时,有时会遇到MySQL函数不能创建的情况.下面就教您一个解决MySQL函数不能创建问题的方法,供您借鉴参考.希望能帮助到大家. 案例一: 目前在项目中,执行创建mysql的函数 ...

  4. MySQL创建函数和存储过程,批量插入大数据

    工作中使用Jmeter压测时,需要大数据量,可以使用MySQL创建函数和存储过程,批量插入大数据 右击新建函数,创建过程 完成后自动创建 在body部分写入过程: DECLARE id INT DEF ...

  5. 在navicat for mysql 创建函数,保存的时候出现1064错误

    在navicat for mysql 创建函数,保存的时候出现1064错误 解决方法:很有可能是mysql语句出现语法错误,仔细检查一下符号是否为英文,是否忘记写符号":"

  6. mysql创建函数1418_Mysql中创建函数报“ERROR 1418 ”的解决方法

    我们在使用mysql数据库开发项目的时候,有时Mysql系统自带的函数不能完全满足我们开发的需要,解决方法是自己创建函数,可以有可能在你创建函数的过程事会报出Error 1418错误,对于报这种错误的 ...

  7. mysql创建反弹函数,MySql创建函数

    首先需要查看一下创建函数的功能是否开启: X:\proper\mysql\bin>mysql -h localhost -u root -p Enter password: ********** ...

  8. mysql创建函数失败_mysql创建函数出现问题?

    大家好,帮我看看下面的mysql的函数有什么问题?一直创建不了. DELIMITER $$ DROP FUNCTION IF EXISTS check_if_exists$$ CREATE FUNCT ...

  9. mysql 创建函数_MySQL函数,存储过程,用户管理

    1. 视图 一张虚拟表,就是将一个经常被使用的查询作为一个虚拟表,开发者查询的时候不需要再次书写SQL,而是直接调用对应的视图就可,调用视图以后MySQL会执行这个查询SQL. # 创建视图 crea ...

最新文章

  1. C++结构体,联合体
  2. shiro 解决 跨域(仅端口不同) 登陆 问题
  3. 算法:两种步长的希尔排序算法
  4. final、finally、finalize的区别
  5. Tunnelling HTTP Traffic Through XSS Channels.pdf
  6. 【英语学习】【Daily English】U10 Education L01 Is this certificate a must?
  7. 如何对ASP.NET进行性能优化
  8. 计算机专业基础 -- C++相关与MFC基础知识
  9. 大道至简-第一张 伪代码
  10. cocos2d-x打印log
  11. java怎么下载我的世界手机版_我的世界JAVA版手机版
  12. js操作html节点中怎么删除子节点,在JavaScript中删除DOM节点的所有子元素
  13. 解决无线网络不稳定的两个方案几个方法
  14. 28款GitHub最流行的开源机器学习项目,推荐GitHub上10 个开源深度学习框架
  15. 夜深人静写算法(四十九)- 高斯消元
  16. FTP登陆之后显示列表错误的解决方法
  17. Vue+Electron
  18. 存储设备映射Linux服务器,在linux和Windows下配置HP FC存储设备多路径驱动
  19. 查杀计算机病毒的方法有利用,一种基于数据流的计算机病毒查杀方法专利_专利查询 - 天眼查...
  20. Nvidia GTX 10系列显卡

热门文章

  1. 【原型制作】无素材-纯原生制作-登录注册页面原型图
  2. zabbix启用企业微信告警的脚本
  3. 图形学基本知识整理(概述 + 硬件知识)
  4. 有多久没有这么疯狂了?
  5. 第七天 01.ssh服务 使用堡塔以及xshell等连接linux
  6. 简述华为的鸿蒙操作系统的结构,华为鸿蒙操作系统今日重磅发布
  7. Linux下命令行中的复制和粘贴
  8. 社团管理系统网站(php+mysql)
  9. 【读书笔记】【程序员的自我修养 -- 链接、装载与库(三)】函数调用与栈(this指针、返回值传递临时对象构建栈、运行库与多线程、_main函数、系统调用与中断向量表、Win32、可变参数、大小端
  10. 【Python】数据可视化-散点图绘制