MySQL函数

/*
含义:一组预先编译好的SQL语句的集合,理解成批处理语句
1、提高代码的重用性
2、简化操作
3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率

区别:

存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新
函数:有且仅有1 个返回,适合做处理数据后返回一个结果

*/

一、创建语法

CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型
BEGIN函数体
END

/*
注意:
1.参数列表 包含两部分:
参数名 参数类型

2.函数体:肯定会有return语句,如果没有会报错
如果return语句没有放在函数体的最后也不报错,但不建议

return 值;
3.函数体中仅有一句话,则可以省略begin end
4.使用 delimiter语句设置结束标记

*/

二、调用语法

SELECT 函数名(参数列表)

#------------------------------案例演示----------------------------

1.无参有返回

#案例:返回公司的员工个数

CREATE FUNCTION myf1() RETURNS INT
BEGIN#必须定义一个变量DECLARE c INT DEFAULT 0; #定义局部变量SELECT COUNT(*) INTO c #赋值FROM employees;RETURN c;END $

调用:

SELECT myf1()$

2.有参有返回

#案例1:根据员工名,返回它的工资

CREATE FUNCTION myf2(empName VARCHAR(20)) RETURNS DOUBLE
BEGINSET @sal=0; #定义用户变量,局部变量也行 SELECT salary INTO @sal   #赋值FROM employeesWHERE last_name = empName;RETURN @sal;
END $
SELECT myf2('k_ing') $

#案例2:根据部门名,返回该部门的平均工资

CREATE FUNCTION myf3(deptName VARCHAR(20)) RETURNS DOUBLE
BEGINDECLARE sal DOUBLE; #加不加默认值都无所谓 SELECT AVG(salary) INTO salFROM employees eJOIN departments d ON e.department_id = d.department_idWHERE d.department_name=deptName;RETURN sal;
END $
SELECT myf3('IT')$

三、查看函数

SHOW CREATE FUNCTION myf3;

四、删除函数

DROP FUNCTION myf3;

#案例
#一、创建函数,实现传入两个float,返回二者之和

CREATE FUNCTION test_fun1(num1 FLOAT,num2 FLOAT) RETURNS FLOAT
BEGINDECLARE SUM FLOAT DEFAULT 0;SET SUM=num1+num2;RETURN SUM;
END $
SELECT test_fun1(1,2)$

MySQL函数(CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型)相关推荐

  1. MySQL存储过程(CREATE PROCEDURE 存储过程名(参数列表))

    MySQL存储过程 #存储过程 /* 含义:一组预先编译好的SQL语句的集合,理解成批处理语句 1.提高代码的重用性 2.简化操作 3.减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率 * ...

  2. c语言 函数的参数传递示例_C-用户定义的函数示例,没有参数,没有返回类型...

    c语言 函数的参数传递示例 Define a function with no argument and no return type in C language. 用C语言定义一个没有参数且没有返回 ...

  3. Mysql创建Create Function

    首先我们创建一个名为employee的表,添加相应的数据: INSERT INTO `employee` (`Id`, `Salary`) VALUES(3, 300),(2, 200),(1, 10 ...

  4. JavaScript 箭头函数与function函数区别

    结合以下注释理解代码,有空再分步骤讲解 // 执行正常 function 方法名() 会直接将函数提升到顶部所以此步成功 normalFun(2); // 执行失败 因var会将arrowFun变量提 ...

  5. html 定义函数调用函数,HTML function函数怎么定义和调用?

    HTML function函数怎么定义和调用实例: function myFunction() { alert("Hello World!"); } Try it 扩展资料 1.函 ...

  6. MySQL 基础 ———— 存储过程与函数

    一.存储过程介绍 存储过程是一组预先编译好的SQL语句的集合,可理解成批处理语句.它的优点主要有以下几点: 1.提高代码的重用性: 2.简化操作: 3.减少了编译次数并且减少了和数据库服务器的连接次数 ...

  7. MySQL之存储过程和函数

    1. 变量 系统变量: 定义:变量由系统提供,不是用户定义,属于服务器层面 查看所有变量:SELECT global | session variables; 查看满足条件的部分系统变量:SELECT ...

  8. mysql面试题 常用函数_MySQL常见面试题

    01. 列举常见的关系型数据库和非关系型都有那些? 关系型:Oracle.DB2.Microsoft SQL Server.MySQL.SQLite 非关系型:Redis.Hbase.MongodDB ...

  9. MySQL---- 自定义函数(FUNCTION)

    MySQL 自带的函数可能完成不了我们的业务需求,这时候就需要自定义函数. 自定义函数是一种与存储过程十分相似的过程式数据库对象.它与存储过程一样,都是由 SQL 语句和过程式语句组成的代码片段,并且 ...

最新文章

  1. 距离语音交互技术的更大范围应用,还差点什么?
  2. Python面向对象-概念、类、实例
  3. BZOJ 1032 JSOI 2007 祖码Zuma 区间DP
  4. cmake 学习笔记(四)
  5. C++实现RPG小游戏(彩色版)
  6. 自动控制理论——拉普拉斯变换定义及性质
  7. PTA数据结构7.1给定一个初始为空的栈和一系列压栈、弹栈操作,请编写程序输出每次弹栈的元素。栈的元素值均为整数。
  8. 百思不得其姐学习笔记
  9. transform 实现 附加鼠标悬浮效果,照片旋转,六面体,3D效果
  10. mac 升级自带Python方法
  11. No module named gi解决方案
  12. win7 安装MySQL 5.7.
  13. Hadoop HA集群配置问题记录
  14. 如何设计一个风控实验?以度小满风控实验平台架构设计为例
  15. linux查看是centos几版本
  16. stm32H70之使用片内的2Mflash
  17. 开源巨献:Google最热门的40款开源项目
  18. MySQL 分库拆表方案
  19. Activity not started, its current task has been brought to the front
  20. C语言编程精粹读书笔记

热门文章

  1. 几幅图教你区分数字地、模拟地、电源地、单点接地
  2. 【程序设计】定时任务调度平台需求说明书
  3. UVa 11062 Andy's Second Dictionary(刘汝佳紫书升级题)
  4. 学军OJ题解——1179 约会
  5. office2016下载安装
  6. ...mapMutations的使用
  7. fm算法 c语言,推荐算法之—FM
  8. vba遍历字符串_Notes-VBA-遍历
  9. 如何设置路由器并利用路由器+宽带猫实现单机或是多机共享自动拨号上网
  10. 有效的数独-位运算(详细解释)-只需遍历一遍数组