/*MySQL进阶19 函数

存储过程和函数:都类似于java中的方法;
存储过程和函数通用好处:
1.提高代码的重用性
2.简化操作
好处: 减少操作次数,减少了编译次数,减少了和服务器的连接次数,提高了效率
---------------
#区别
存储过程 (可以有0个或者多个返回值),适合做批量插入或者批量更新
函数: 有且仅有一个返回值 ; 适合做处理数据后的返回一个结果 */
/*
#一: 创建语法
create function 函数名(参数列表) returns 返回类型
begin
函数体
end 注意:
参数列表 包含两个部分;
参数名 参数类型;
函数体 : 肯定有return 语句,如果没有会报错;
3. 函数体中仅有一句话,则可以省略begin end
4. 使用delimiter 语句设置结束标记
delimiter $; #二: 调用自定义函数
select 函数名(参数列表) */
#-------------------案例演示函数------------------------------
#1 无参有返回 #根据提示,设置mysql函数权限
SHOW VARIABLES LIKE 'log_bin_trust_function_creators';
SET @@global.log_bin_trust_function_creators='ON';
#案例 : 返回公司的员工个数 [如下代码可在本地运行,不用在cmd终端打开运行]
DELIMITER $
CREATE FUNCTION myf1() RETURNS INT
BEGIN
DECLARE rt1 INT DEFAULT 0; #定义局部变量/赋值并returns SELECT COUNT(*) INTO rt1
FROM employees;
RETURN rt1;
END $
SELECT myf1() $; ##结果是 : 107 #2.有参数有返回
#案例1:根据员工名,返回它的工资
DELIMITER $
CREATE FUNCTION myf2(empName VARCHAR(20)) RETURNS DOUBLE
BEGIN
DECLARE rt DOUBLE DEFAULT 0;
SELECT `salary` INTO rt
FROM employees e
WHERE e.last_name = empName AND e.first_name='empName';
RETURN rt;
END $
SET @empName='K_ing' $
SELECT myf2(@empName) $; ##返回值为 : 24000 #案例2: 根据部门名,返回该部门的平均工资
DELIMITER $
CREATE FUNCTION myf5(depName VARCHAR(20)) RETURNS DOUBLE
BEGIN
DECLARE rt DOUBLE ;
SELECT AVG(salary) INTO rt
FROM employees e
JOIN departments d ON e.department_id = d.department_id
WHERE d.department_name=depName;
RETURN rt;
END $
SELECT myf5('IT') $; ##结果是 : 5760 #三: 查看函数的过程/charset/Datebase collation等信息 SHOW CREATE FUNCTION myf5; #四: 删除函数(命令行可操纵!)
DROP FUNCTION myf3; #案例"
#1.创建函数,实现传入两个float ,返回两者之和
DELIMITER $
CREATE FUNCTION test_fun1(a FLOAT,b FLOAT) RETURNS FLOAT
BEGIN
DECLARE SUM FLOAT DEFAULT 0;
SET SUM=a+b;
RETURN SUM;
END $ SELECT test_fun1(1,12) $ ##结果为:13

MySQL进阶19--函数的创建(举例)/设置mysql的创建函数的权限/查看(show)/删除(drop) / 举4个栗子的更多相关文章

  1. 【详记MySql问题大全集】四、设置MySql大小写敏感(踩坑血泪史)

    系列目录 一.安装MySql 二.安装并破解Navicat 三.没有my.in配置文件怎么办 四.设置MySql的大小写敏感 五.重置MySql登陆密码 这一篇可以说是我的踩坑的血泪史了... MyS ...

  2. Mysql 整数类型的字段的属性设置及常用的函数

    数据类型 二.MySQL支持的数据类型 数值类型.日期类型.字符串类型 1.数值类型 1)整数类型 tinyint.smallint.mediumint.int和bigint 2)zerofill属性 ...

  3. MySQL(19):SQL语句(MySQL)大全

    SQL语句大全一.创建和删除数据库 1.创建用户 //创建用户且置密码,在MySQL中行,但在Oracle中行  ----必须在超级管理员身份下操作 create user hncu identifi ...

  4. ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061) : 第一次设置MySQL也适用

    [MySQL的安装环境]:windows7 64位 [MySQL的版本]:mysql-8.0.16-winx64 [错误描述]: ERROR 2003 (HY000): Can't connect t ...

  5. 【转】MySQL— 进阶

    [转]MySQL— 进阶 目录 一.视图 二.触发器 三.函数 四.存储过程 五.事务 一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需 ...

  6. Linux 下操作Mysql指令的总结 远程连接的设置

    参考博客:https://www.cnblogs.com/liaocheng/p/4243579.html (常用命令) https://www.cnblogs.com/zhangzhu/archiv ...

  7. MySQL连接处理方式及最佳并发连接数设置

    MySQL连接处理方式及最佳并发连接数设置 mysql是单进程,多线程的架构,通过创建多个线程来服务不同的用户连接,通常情况下,随着用户连接数的增加,mysql内部用于处理用户连接的线程也会同步的增长 ...

  8. pycharm中创建并设置docker解释器

    在Windows上使用Docker的其中一个目的是使其与PyCharm结合,形成Python代码的解释器,避免重复的Python解释环境搭建的问题,同时保持Windows开发环境和部署环境所用的Pyt ...

  9. Mac平台重新设置MySQL的root密码

    Mac OS X - 重置 MySQL Root 密码 您是否忘记了Mac OS 的MySQL的root密码? 通过以下4步就可重新设置新密码: 1.  停止 mysql server.  通常是在 ...

随机推荐

  1. Nginx虚拟目录(alias)和根目录(root)

    功能要求: 假设nginx配置的域名是www.kazihuo.com,现有静态资源/home/www/oye目录需要通过nginx访问. 功能实现: 前提要求: 1.在nginx.conf中到处第二行 ...

  2. ipad 如何 Airplay 到 Windows 上?

    最近刚好有用到这个,觉得还不错,就推荐给大家.虽然个人并不喜欢苹果这一套,但是工作里难免掺杂一些会用到的ipad , mac . 纯粹技术分享. 1. 5KPlayer : https://www.5 ...

  3. eNSP下配置Trunk接口实现跨交换机传递数据

    当Trunk端口发送数据帧的时候,当所发送帧的VLAN ID与端口的PVID不同是,检查是否允许该VLAN通过,若允许的话,直接透传,不允许就直接丢弃:当该帧的VLAN ID与端口的PVID相同时,则 ...

  4. 关于工作中.net转java遇到的一个远程调用传递重复参的问题。

    工作中遇到一个很奇怪的传参问题.之前.net使用的是一个List列表,列表中有几个重复的参数.列表中使用的model类是KeyValue. 我使用java模仿其写法,传递List和KeyValue.对 ...

  5. deepin linux 打开ssh服务

    首先,更新一下软件源,打开"终端窗口",输入"sudo apt-get update"-->回车-->" 输入当前登录用户的管理员密码&q ...

  6. str.format() 格式化数字的多种方法

    Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能. 基本语法是通过 {} 和 : 来代替以前的 % . format 函数可以接受不限个参数 ...

  7. web框架解析

    一.白手起家 要想模拟出web请求响应的流程,先想想平时我们是怎么上网浏览网页的?首先打开浏览器,然后在地址栏中输入我们想要访问的页面,紧接着按下回车键Enter,最后跳转至目标页面(当然我们也会出现 ...

  8. IDEA/WebStorm使用笔记

    1.使用powershell作为默认终端 #改变powershell策略 Set-ExecutionPolicy Unrestricted -Scope CurrentUser 找到系统的powers ...

  9. intellij idea 中右键项目没有git

    1.没有GIT选项说明还没有关联你的仓库 2.ctrl + alt +s 打开VersionControl添加git仓库 3.添加后再次查看,GIT就出现了 4.可以查看历史版本了. 原文地址:htt ...

  10. centos 7 配置pytorch运行环境

    华为云服务器,4核心8G内存,没有显卡,性能算凑合,赶上双11才不到1000,性价比还可以,打算配置一套训练densenet的环境. 首先自带的python版本是2.7,由于明年开始就不再维护了,所以 ...