MySQL学习笔记19:函数

简介

本系列(MySQL学习笔记)是我基于B站上SQL播放量第一的MySQL 基础+高级篇- 数据库 -sql -尚硅谷视频所做的笔记,方便大家学习和掌握MySQL。

说明

1.这个系列基本包含了视频中老师讲课的所有内容,包括知识点、案例、部分测试题。
2.所需的配套资料(来自B站评论区)

@黎曼的猜想:
配套资料下载–>公众号公众号 DragonWell 回复:mysql 注意:是公众号!!是公众号!!是公众号,点那个 搜一搜 搜索!!!
不是私人号,是公众号!!! (可以直接在 搜一搜 搜索 dragonwell) 名称是:DragonWell公众号

3.SQLyog的安装(来自B站评论区)

@江左萌粽猪 链接:https://pan.baidu.com/s/18PDjbqEeDSAjQM0VQye6og 提取码:qjuz

目录

MySQL学习笔记1:数据查询语言(DQL语言)select基本用法
MySQL学习笔记2:where 条件查询
MySQL学习笔记3:order by 排序查询
MySQL学习笔记4:常见函数(一) 单行函数
MySQL学习笔记5:常见函数(二) 分组函数
MySQL学习笔记6:group by 分组查询
MySQL学习笔记7:join 连接查询(SQL 92标准)
MySQL学习笔记8:join 连接查询(SQL 99标准)
MySQL学习笔记9:子查询(内查询)
MySQL学习笔记10:union 联合查询
MySQL学习笔记11:limit 分页查询
MySQL学习笔记12:数据操纵语言(DML语言)insert update delete
MySQL学习笔记13:数据定义语言(DDL语言)create alter drop
MySQL学习笔记14:常见数据类型
MySQL学习笔记15:常见约束
MySQL学习笔记16:事务控制语言(TCL语言)
MySQL学习笔记17:视图
MySQL学习笔记18:存储过程
MySQL学习笔记19:函数
MySQL学习笔记20:流程控制结构

函数

含义:预先编译好的SQL语句的集合,理解成批处理语句
提高代码的重用性
简化操作
减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率
函数和存储过程区别
存储过程可以有0个返回,也可以有多个返回 适合批量的插入、更新(增删改
函数有且仅有一个返回,适合处理数据后返回一个结果

一.创建语法

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

END 
注意:
1.参数列表 包含两部分
参数名 参数类型
2.函数体:肯定会有return语句,如果没有会报错
如果return语句没有放到函数体最后也不报错,但不建议
return;
3.函数体中仅有一句话,可以省略begin end
4.使用delimiter语句设置结束标记
DELIMITER $
SELECT * FROM employees;
SELECT * FROM departments;

二.调用语法

SELECT 函数名(参数列表) $

以下部分在DOS命令行执行

1.无参有返回

返回公司的员工个数
USE myemployees $
CREATE FUNCTION f1() RETURNS INT
BEGIN
	DECLARE c INT DEFAULT 0;
	SELECT COUNT(*) INTO c
	FROM employees ;
	RETURN c;
END $


# 调用
SELECT f1() INTO @result $
SELECT @result $

2.有参有返回

根据员工名返回他们的工资
CREATE FUNCTION f2(ename VARCHAR(30)) RETURNS DOUBLE
BEGIN
	DECLARE sal DOUBLE DEFAULT 0;
	SELECT salary INTO sal 
	FROM employees
	WHERE last_name = ename;
	RETURN sal;
	
END $
# 调用
SELECT f2('Kochhar') INTO @salary $
SELECT @salary $
根据部门名 返回该部门的平均工资
CREATE FUNCTION f3(dname VARCHAR(20)) RETURNS DOUBLE
BEGIN
	DECLARE avg_sal DOUBLE DEFAULT 0;
	SELECT AVG(salary) INTO avg_sal
	FROM employees AS e
	INNER JOIN  departments AS d
	ON d.department_id = e.`department_id`
	WHERE  d.department_name = dname;
	RETURN avg_sal;
END $
SET @department_name = 'IT' $
SELECT f3(@department_name) INTO @avg_salary $
SELECT @avg_salary $ #5760

三.查看函数

SHOW CREATE FUNCTION f3;
 在mysql——表——proc——打开表可以看到创建的存储过程和函数

四.删除函数

DROP FUNCTION f2; 

案例

创建函数,实现传入两个float,返回二者之和
CREATE FUNCTION addtwo(x1 FLOAT,x2 FLOAT) RETURNS FLOAT
BEGIN
	DECLARE result FLOAT;
	SELECT x1+x2 INTO result;
	RETURN result;
END $
SET @x1 = 14.57,@x2 = -3.888 $
SELECT addtwo(@x1,@x2) INTO @hoi $
SELECT @hoi $
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值