【DataBase】MySQL 27 函数
一、概述
函数 Function,存储过程的用途一致,减少程序逻辑,和数据库服务的连接次数,提高效率
简化操作,提高SQL重用性
函数 和 存储过程的区别?
存储过程允许多个返回的数据,函数只允许一个返回数据
适用场景:
存储过程适合、批量插入、更新
函数适合处理数据后返回一个结果
二、语法 Syntax
创建函数
CREATE FUNCTION 函数名称(参数列表)RETURNS 返回类型
BEGIN
函数体
END
参数写法:
参数名 参数类型
语法注意
1、函数体必须要写上return语句
2、如果只有一条函数语句可以省略BEGIN & END
3、使用 DELIMITER 语句作为设置结束标记语句
调用语法
SELECT 函数名称(参数列表)
三、样例演示
1、无参数有返回
查询全部员工人数
DELIMITER $ CREATE FUNCTION employeeCount() RETURNS INT
BEGIN
DECLARE c INT DEFAULT 0;
SELECT
COUNT(*)
INTO
c
FROM
employees;
RETURN c;
END$
调用:
# SELECT employeeCount();
SELECT employeeCount() AS '员工人数';
2、有参数有返回
根据员工名返回工资:
DELIMITER $
CREATE FUNCTION querySalaryByEmployeeName
(
employeeName VARCHAR(20)
)
RETURNS DOUBLE BEGIN
# DECLARE salary DOUBLE DEFAULT 0;
SET @salary = 0; SELECT
salary
INTO
@salary
FROM
employees
WHERE
employees.`last_name` = employeeName; RETURN @salary;
END $
调用
SELECT querySalaryByEmployeeName('Kochhar') AS '工资';
根据部门名返回该部门平均工资:
DELIMITER $ CREATE FUNCTION queryAvgSalaryByDepartmentName
(
departmentName VARCHAR(20)
)
RETURNS DOUBLE BEGIN
DECLARE avgSalary DOUBLE DEFAULT 0; SELECT
AVG(e.salary)
INTO
avgSalary
FROM
employees e JOIN departments d ON e.department_id
WHERE
d.department_name = departmentName; RETURN avgSalary;
END $
调用函数:
SELECT queryAvgSalaryByDepartmentName('IT') AS '平均工资';
四、函数的查看与删除
查看函数的语法:
SHOW CREATE FUNCTION 函数名称;
或者是直接找到系统进行查看:
mysql库 -> proc表

删除函数的语法:
DROP FUNCTION 函数名
修改和存储过程一样没有实际意义,不赘述了
【DataBase】MySQL 27 函数的更多相关文章
- 学生选课数据库SQL语句45道练习题整理及mysql常用函数(20161019)
学生选课数据库SQL语句45道练习题: 一. 设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四 ...
- mysql 自定义函数
原文:http://www.cnblogs.com/zhangminghui/p/4113160.html 引言 MySQL本身提供了内置函数,这些函数的存在给我们日常的开发和数据操作带来了很大的便利 ...
- mysql常用函数参考
mysql常用函数参考 对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL, ...
- 【数据库】MySql常用函数梳理
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5866388.html MySql常用函数梳理: 1:数学函数 使用格式:一般用于插入.修改语句中,直接 函数( ...
- Oracle/Mysql/SqlServer函数区别
mysql日期和时间格式转换 Linux scp 使用详解 Oracle/Mysql/SqlServer函数区别 2011-07-01 12:34:36| 分类: Mysql技术 | 标签:mys ...
- [转载]MySQL UUID() 函数
目录 目录 一 引子 二 MySQL UUID() 函数 三 复制中的 UUID()四 UUID_SHORT() 函数 3.1 实验环境介绍 3.2 搭建复制环境 3.3 基于 STATEMENT 模 ...
- MySQL常用函数介绍
MySQL常用函数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.操作符介绍 1>.操作符优先级 mysql; +----------+ | +----------+ ...
- MySQL Date函数的正确用法
以下的文章主要介绍的是MySQL Date函数的实际应用其中包括如何获取当前时间的具体操作,Unix时间的具体应用,时间前后.时间间隔与时间转换的实际内容描述,以下就是文章的主要内容. MySQL D ...
- MySQL 时间函数加减计算
一.MySQL 获得当前日期时间 函数 1.1 获得当前日期 + 时间(date + time) 函数:now() mysql> select now();+———————+| now() |+ ...
- MySQL日期函数、时间函数总结(MySQL 5.X)
一.获得当前日期时间函数 1.1 获得当前日期+时间(date + time)函数:now() select now(); # :: 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下 ...
随机推荐
- NumPy 通用函数(ufunc):高性能数组运算的利器
NumPy 通用函数(ufunc) 简介 NumPy 通用函数(ufunc),代表"通用函数",是一类用于对 ndarray 对象进行逐元素运算的高性能函数.ufunc 使 Num ...
- css制作骰子
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- 怎么实现鼠标移入第i个li则对应显示第i个div,默认显示第一个LI
html 部分 <ul> <li>菜单1</li> <li>菜单2</li> <li>菜单3</li> <li ...
- work07
day08作业: 必做题:============================================================ 第一题: 定义一个字符串s = "Hell ...
- 利用Wireshark抓包分析DNS域名解析过程
一.DNS协议概述 DNS协议也可以称为DNS服务,全称是Domain Name System,即域名系统,和HTTP协议一样,也是一个位于应用层的协议(服务),它是基于运输层的UDP协议的.从D ...
- 用typescript实现一个event bus
一个简单event bus的实现 发布订阅者模式 type emitKey = number | string | symbol; type func = (...args: any) => v ...
- 有点儿神奇,原来vue3的setup语法糖中组件无需注册因为这个
前言 众所周知,在vue2的时候使用一个vue组件要么全局注册,要么局部注册.但是在setup语法糖中直接将组件import导入无需注册就可以使用,你知道这是为什么呢?注:本文中使用的vue版本为3. ...
- Redis的几种应用实战
1.分布式锁: 实现:用set key value ex time nx指令实现,这个指令以及其参数是原子性的操作.释放锁用del key,释放之前先比较一下value是否与当前的value一样,原因 ...
- 从安装到配置,教你用Argo CD对接CCE集群完成测试、生产部署
本文分享自华为云社区<Argo CD对接CCE完成不同测试.生产环境业务部署>,作者: 可以交个朋友. 一 背景说明 Argo CD是用于Kubernetes的声明性GitOps持续交付工 ...
- Babel 7 初探
Babel有两大功能,转译和polyfill.转译就是把新的JS的语法,转化成旧的JS的语法.polyfill则是针对JS中新增的一些对象(Map, Set)和实例方法,这些对象和方法,在旧的浏览器中 ...