mysql之自定义函数
本文内容:
- 什么是函数
- 函数的创建
- 函数的调用
- 函数的查看
- 函数的修改
- 函数的删除
首发日期:2018-04-18
什么是函数:
- 函数存储着一系列sql语句,调用函数就是一次性执行这些语句。所以函数可以降低语句重复。【但注意的是函数注重返回值,不注重执行过程,所以一些语句无法执行。所以函数并不是单纯的sql语句集合。】
- mysql函数有自己的自定义函数(已经定义好了的函数),想了解更多的可以参考我的另一篇博文:mysql之常用函数
- 这里主要介绍如何自定义函数。
补充:
- 函数与存储过程的区别:函数只会返回一个值,不允许返回一个结果集。函数强调返回值,所以函数不允许返回多个值的情况,即使是查询语句。
-- 不行的代码:Not allowed to return a result set from a function create function myf()returns int begin select * from student; return 100; end;
函数的创建:
- 语法:
create function 函数名([参数列表]) returns 数据类型 beginsql语句;return 值; end;
- 参数列表的格式是: 变量名 数据类型
- 示例:
-- 最简单的仅有一条sql的函数 create function myselect2() returns int return 666; select myselect2(); -- 调用函数-- create function myselect3() returns int begin declare c int;select id from class where cname="python" into c;return c; end; select myselect3(); -- 带传参的函数 create function myselect5(name varchar(15)) returns int begin declare c int;select id from class where cname=name into c;return c; end; select myselect5("python");
补充:
- 还可以有一些特别的选项,特别的选项写在return 之后,begin之前,如:
- comment:一个关于函数的描述
- 还有一些比如sql security等选项,有兴趣可以自行百度。这里不讲解,仅一提有此知识点。
函数的调用:
- 直接使用函数名()就可以调用【虽然这么说,但返回的是一个结果,sql中不使用select的话任何结果都无法显示出来(所以单纯调用会报错),】
- 如果想要传入参数可以使用函数名(参数)
- 调用方式【下面调用的函数都是上面中创建的。】:
-- 无参调用 select myselect3(); -- 传参调用 select myselect5("python"); select * from class where id=myselect5("python");
函数的查看:
- 查看函数创建语句:show create function 函数名;
- 查看所有函数:show function status [like 'pattern'];
函数的修改:
- 函数的修改只能修改一些如comment的选项,不能修改内部的sql语句和参数列表。
- alter function 函数名 选项;
函数的删除:
- drop function 函数名;
mysql之自定义函数相关推荐
- mysql增加自定义函数功能
mysql默认是不能自定义函数的 当create function时 This function has none of DETERMINISTIC, NO SQL, or READS SQL DAT ...
- mysql求分位数_给Mysql加自定义函数计算百分位数(percentile)。
百分位数(percentile)的详细定义见百度百科. 在这里我用一个通俗的例子来补充解释, 例如今年有900万人参加了高考,自然有900万个成绩,某个学校计划择优招生分数最高的前900个,那么分数线 ...
- MySQL如何自定义函数
在使用 MySQL 的过程中,MySQL 自带的函数可能完成不了我们的业务需求,这时候就需要自定义函数. 自定义函数是一种与存储过程十分相似的过程式数据库对象.它与存储过程一样,都是由 SQL 语句和 ...
- mysql支持自定义函数_MySQL 自定义函数
自定义函数概念 用户自定义函数(user-defined function, UDF)是一种对MySQL扩展的途径, 其用法与内置函数相同. 自定义函数的两个必要条件: 参数 返回值 (只能有一个) ...
- MySql创建自定义函数(Function)
1.创建自定义函数 DELIMITER $$ DROP FUNCTION IF EXISTS genPerson$$ CREATE FUNCTION genPerson(name varchar(20 ...
- MySQL创建自定义函数教程
目录 1.语法 2.示例 2.1 举例 2.2 报错 3.练习 3.1 练习数据库及表创建 MySQL版本:8.0.20 3.2 创建自定义函数1 创建一个通过学号sid获取学生信息的函数 3.3 自 ...
- Mysql中自定义函数的创建和执行
假设students表中包含id和name两个字段,创建一个函数,函数的作用是根据id查找name 1.创建表,插入数据 create table students(id int,name varch ...
- mysql自定义函数的优缺点_浅谈MySQL创建自定义函数漏洞的利用和防止
前一阵子网上风靡的MySQL的udf.dll提权我有所了解-近日由于不再在IDC行业工作了-所以也有所淡忘- 只是最近实在手痒,就决定对我的站点所在的服务器下手--.正好用上这招了- 站点的服务器是W ...
- mysql java自定义函数_Mysql自定义函数总结
存储函数 创建存储函数,需要使用CREATE FUNCTION语句,基本语法如下: CREATE FUNCTION func_name([func_parameter])RETURNSTYPE[cha ...
最新文章
- 递归/归并:count of smaller numbers求逆序数
- 【原创翻译】文件与文件夹
- 用Docker打造多版本PHP运行环境
- Java中list如何利用遍历进行删除操作
- java判断字符串是什么编码_java可供判断某字符串是什么编码的一行代码
- 如何在html里加入验证码_如何把crc校验加入到对应的程序里?看高手怎么做
- python库_python使用ctypes库调用DLL动态链接库_python
- Recoll:Unix和Linux桌面的文本搜索工具
- 后缀表达式----栈
- 求栈中元素个数算法_嵌入式必知基础算法(一)
- 常用Linux命令--CPU和GPU查看
- 在Linux下配置打印机
- MT8377 MT8389 MT6589 MT6577解析
- Open Wifi SSID Broadcast vulnerability
- 简述FPGA的一些优势
- [HDU 5956] The Elder (斜率DP + 可持久化单调队列)
- vue v-for遍历动态展示元素数量
- 图片缩放库 Photoview 和 Gif 控件 GifView 的使用
- 我应该拿什么来拯救你,我的游戏?
- win7 使用自带无线网卡分享无线网络
热门文章
- 《电路学习第三天》 之 线性稳压电源的设计
- systemd介绍六:Journalctl查看并操作sytemd日志
- Http 调用netty 服务,服务调用客户端,伪同步响应.ProtoBuf 解决粘包,半包问题.
- 3.8 JS 制作无间断图片循环滚动效果
- C语言字符串 string强转为int
- Dubbo原理简单分析
- 人脸检测和识别的开源库总结
- Mastering the game of Go with deep neural networks and tree search翻译
- HDU 4069 Squiggly Sudoku Dancing-Links(DLX)+Floodfill
- idea modules中Sources介绍