MYSQL Function函数创建和调用
函数
和存储过程类似,是一组预先变异好的SQL语句的集合
区别:
- 存储过程:可有0个或多个返回。适合做批量插入、批量更新
- 函数:有且仅有一个返回。适合做处理数据后返回一个结果
语法
一、创建语法
create function 函数名(参数列表) returns 返回类型
begin 函数体
End
注意:
- 参数列表包含两部份:参数名+参数类型
- 函数体:肯定会有return语句,如果没有会报错。如果return语句没有放在函数体的最后,也不报错,但是不建议。
- 函数体中仅有一句话,则可以省略 Begin end
- 使用delimiter语句设置结束标记
直接在 Navicat 里面创建函数:https://jingyan.baidu.com/article/09ea3ede5a0a37c0afde396e.html
二、调用语法
select 函数名(参数列表)
三、查看和删除
查看:show create function 函数名
删除: drop function 函数名
案例
案例 一:无参数有返回
问题:返回公司员工个数
create function myf1() returns int
begindeclare c int default 0; #定义变量select count(*) into c #为变量赋值from employee;return c;
End $
注意 这里创建函数时可能会遇到错误:ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary
logging is enabled ( you * might* want to use the less safe
log_bin_trust_function_creators variable)解决方式:
set global log_bin_trust_function_creators=TRUE;
创建完后
点开myf1函数,显示具体的内容
案例二:有参数有返回
create function myf2(employName VARCHAR(20)) returns DOUBLE
beginset @sal=0; #定义用户变量select salary into @salfrom employeeswhere last_name=employName;return @sal;
End $select myfy2('员工名字')$
MYSQL Function函数创建和调用相关推荐
- MySQL自定义函数创建与使用总结
MySQL自定义函数创建与使用总结 MySQL自定义函数和存储过程类似,也需要在数据库中创建并保存.它与存储过程一样,都是由SQL语句和控制语句组成的代码片段,可以被应用程序和其他SQL语句调用. M ...
- mysql function怎么创建_mysql,function_mysql创建函数出现问题?,mysql,function - phpStudy
mysql创建函数出现问题? 大家好,帮我看看下面的mysql的函数有什么问题?一直创建不了. DELIMITER $$ DROP FUNCTION IF EXISTS check_if_exists ...
- java mysql自定义函数UDF之调用c函数
正如sqlite可以定义自定义函数,它是通过API定义c函数的,不像其他,如这里的mysql.sqlite提供原生接口就可以方便的调用其他语言的方法,同样的mysql也支持调用其它语言的方法. goo ...
- MySQL存储过程的创建及调用
阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL中的"脚本" 1.创建存储过程 2.调用存储过程 3.存储过程体 4.语句块标签 存储过程的参数 1.in:向过程里 ...
- mysql之函数创建
目录 1.创建 2.调用 3.示例 4.删除 5.查看 6.总结 1.创建 create function 函数名(参数列表) returns 返回类型 begin 方法体 end 注意: 1.参数 ...
- MYSQL 存储过程(创建和调用,in、out和inout模式)
存储过程 含义: 一组预先编译好的SQL语句的集合,可理解成批处理语句,类似于JAVA中的方法. 使用时直接调用名字就可以 好处: 1. 提高代码的重用性:2.简化操作:3.减少了编译次数,并且减少了 ...
- Mysql function(函数)
1.mysql 拼接函数 1. 1CONCAT(string1,string2,-) 说明 : string1,string2代表字符串,concat函数在连接字符串的时候,只要其中一个是NULL,那 ...
- mysql function函数_详解MySQL如何按表创建千万级的压测数据
概述 有时我们要对系统做压测,或者数据库压力测试,这时候需要对某些表插入几百万或者上千万数据,下面介绍下怎么利用MySQL循环和存储过程对特定表的创建千万行数据. 1.准备测试表 CREATE TAB ...
- mysql函数创建与使用_mysql function函数创建与应用方法
这些语句创建存储子程序.要在MySQL 5.1中创建子程序,必须具有CREATE ROUTINE权限,并且ALTER ROUTINE和EXECUTE权限被自动授予它的创建者.如果二进制日志功能被允许, ...
最新文章
- 自定义ViewGroup实现ViewPager的滑动效果
- lucene之创建索引代码
- 返回一个二维整数数组最大子数组的和
- java 加载资源_在Java中加载资源的首选方式
- 浪潮5280m4管理口ip_TPLink云路由器如何更改LAN口IP地址 TPLink云路由器更改LAN口IP地址方法【介绍】...
- ulimit限制 新系统_graylog日志分析系统上手教程
- Sprig 面试中 问及 DI,IOC, AOP
- 初识THINKPHP--关于路径的问题(xampp下的htdocs为根目录)
- html+css基础-2-盒子模型、选择器优先级、新增伪元素、display:none
- 利用JSP编程技术实现一个简单的购物车程序
- java 快逸报表_快逸报表V4.0功能说明
- 可以直接复制的emoji符号(表情)
- Eclipse注释模板与规范
- [LOL自走棋] 种族职业数据
- 手机配置host的替代方案
- 【甄选靶场】Vulnhub百个项目渗透——项目十:stapler-1(文件上传,多方式提权)
- 将Excel表格中的数字文本格式转化为数字格式
- php表格合并_合并表格怎么合并
- 单词接龙c++题解,请勿抄袭
- go语言学习第一弹:go和php的区别