MySQL进阶19--函数的创建(举例)/设置mysql的创建函数的权限/查看(show)/删除(drop) / 举4个栗子
/*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个栗子的更多相关文章
- 【详记MySql问题大全集】四、设置MySql大小写敏感(踩坑血泪史)
系列目录 一.安装MySql 二.安装并破解Navicat 三.没有my.in配置文件怎么办 四.设置MySql的大小写敏感 五.重置MySql登陆密码 这一篇可以说是我的踩坑的血泪史了... MyS ...
- Mysql 整数类型的字段的属性设置及常用的函数
数据类型 二.MySQL支持的数据类型 数值类型.日期类型.字符串类型 1.数值类型 1)整数类型 tinyint.smallint.mediumint.int和bigint 2)zerofill属性 ...
- MySQL(19):SQL语句(MySQL)大全
SQL语句大全一.创建和删除数据库 1.创建用户 //创建用户且置密码,在MySQL中行,但在Oracle中行 ----必须在超级管理员身份下操作 create user hncu identifi ...
- 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 ...
- 【转】MySQL— 进阶
[转]MySQL— 进阶 目录 一.视图 二.触发器 三.函数 四.存储过程 五.事务 一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需 ...
- Linux 下操作Mysql指令的总结 远程连接的设置
参考博客:https://www.cnblogs.com/liaocheng/p/4243579.html (常用命令) https://www.cnblogs.com/zhangzhu/archiv ...
- MySQL连接处理方式及最佳并发连接数设置
MySQL连接处理方式及最佳并发连接数设置 mysql是单进程,多线程的架构,通过创建多个线程来服务不同的用户连接,通常情况下,随着用户连接数的增加,mysql内部用于处理用户连接的线程也会同步的增长 ...
- pycharm中创建并设置docker解释器
在Windows上使用Docker的其中一个目的是使其与PyCharm结合,形成Python代码的解释器,避免重复的Python解释环境搭建的问题,同时保持Windows开发环境和部署环境所用的Pyt ...
- Mac平台重新设置MySQL的root密码
Mac OS X - 重置 MySQL Root 密码 您是否忘记了Mac OS 的MySQL的root密码? 通过以下4步就可重新设置新密码: 1. 停止 mysql server. 通常是在 ...
随机推荐
- android基础---->ContentProvider的使用
内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性.目前,使用内容提 ...
- Python机器学习基础教程-第2章-监督学习之K近邻
前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...
- 洛谷 题解 P1772 【[ZJOI2006]物流运输】
题目描述 物流公司要把一批货物从码头\(A\)运到码头\(B\).由于货物量比较大,需要\(n\)天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过 ...
- mysql 添加大量测试数据
mysql 添加大量测试数据 场景 针对于大量测试数据插入,检测sql执行速度 第一步:建表 // 测试表 CREATE TABLE user ( id int(11) NOT NULL AUTO_I ...
- PAT(B) 1083 是否存在相等的差(Java)统计
题目链接:1083 是否存在相等的差 (20 point(s)) 题目描述 给定 N 张卡片,正面分别写上 1.2.--.N,然后全部翻面,洗牌,在背面分别写上 1.2.--.N.将每张牌的正反两面数 ...
- SQLSERVER 根据值查询表名
CREATE PROCEDURE [dbo].[SP_FindValueInDB](@value VARCHAR(1024)) ASBEGIN-- SET NOCOUNT ON added to pr ...
- SSM整合所需的maven配置文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...
- 题解-AtCoder ARC-083F Collecting Balls
Problem ARC083F 题意概要:给定 \(2n\) 个二维平面上的球,坐标分别为 \((x_i,y_i)\),并给出 \(n\) 个 \(A\)类 机器人 和 \(n\) 个 \(B\)类 ...
- typeAliasesPackage 属性的作用
applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xm ...
- 以EntifyFramework DBFirst方式访问SQLite数据库
前面一直在找EF Code First方式来访问SQLite数据库,后面得出的结论是SQLite不支持 Code First, 虽然有非官方的库SQLite.CodeFirst可以使用,但一直没搞成功 ...