【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 中还有下 ...
随机推荐
- JavaSE 数据类型以及基本转化与包装
目录 数据类型. 1.基本类型(八个) 数值型 整型类型 byte型:1字节 8bit位 第一位是符号位 null short型:2字节 int 型:4字节 long型:8字节 浮点类型 float ...
- Vuex 4与状态管理实战指南
title: Vuex 4与状态管理实战指南 date: 2024/6/6 updated: 2024/6/6 excerpt: 这篇文章介绍了使用Vuex进行Vue应用状态管理的最佳实践,包括为何需 ...
- Mysql常见安装失败的解决方法
问题一:安装时出现Initializing database失败 解决方法: 1.关闭安装页面并卸载MySQL Installer与MySQL Server (如果卸载不掉需要重启电脑) 2.查看并勾 ...
- JVM性能分析与故障排查
引言 JVM调优 程序在上线前的测试或运行中有时会出现一些大大小小的JVM问题,比如cpu load过高.请求延迟.tps降低等,甚至出现内存泄漏(每次垃圾收集使用的时间越来越长,垃圾收集频率越来越高 ...
- Github上优秀的.NET Core开源项目的集合【转】
一般 ASP.NET Core Documentation - 官方ASP.NET核心文档站点. .NET Core Documentation - .NET Core,C#,F#和Visual Ba ...
- 开箱即用的Live2d
安装 npm i @tomiaa/live2d 代码 <template> <div ref="live2dContentRef" id="live2d ...
- windows离线部署VSCode在Centos7上的远程开发环境
前言 公司一直使用的是ssh+vim的远程开发方式,习惯了vim之后已经非常方便了.但是还是想尝试一下VSCode的开发方式.就我而言,原因如下 漂亮的语法高亮,并且有补全 基于语法解析的引用查找(尽 ...
- 用cvCvtColor转化RGB彩色图像为灰度图像时发生的小失误
版本信息 MAC版本:10.10.5 Xcode版本:7.2 openCV版本:2.4.13 在运行程序的时候发现cvCvtColor的地方程序报错 error: (-215) src.depth() ...
- python重拾第八天-Socket网络编程
本节内容 Socket介绍 Socket参数介绍 基本Socket实例 Socket实现多连接处理 通过Socket实现简单SSH 通过Socket实现文件传送 作业:开发一个支持多用户在线的FTP程 ...
- 一次STM32进入HardFault_Handler 的解决情况
STM32进入HardFault_Handler调试 --- title: STM32进入HardFault_Handler调试 date: 2020-06-18 10:26:48 categorie ...