mysql-18-function
#函数
/*
存储过程:可以有0个或多个返回,适合批量插入、批量更新
函数:有且仅有一个返回,适合处理数据后返回一个结果
*/ #一、创建语法
/*
create function 函数名(参数列表) returns 返回类型
begin
函数体
end 参数列表:
参数名 参数类型 */ use myemployees;
set global log_bin_trust_function_creators=TRUE; #案例1:返回公司的员工个数
delimiter &
create function myf1() returns int
begin
declare c int default 0; #定义变量
select count(*) into c #赋值
from employees;
return c;
end &
#调用函数用select
select myf1()& #案例2:根据员工名,返回工资
create function myf2(empName varchar(20)) returns double
begin
set @sal=0;
select salary into @sal
from employees
where last_name=empName;
return @sal;
end & select myf2('Kochhar')& #查看函数
show create function myf2& #删除函数
# drop function myf3; #流程控制结构
/*
顺序结构
分支结构
循环结构
*/ #一、分支
/*
1.if函数
select if(表达式1, 表达式2, 表达式3)
如果表达式1成立,返回表达式2,否则返回表达式3 2.case结构
实现等值或区间判断
case 变量|表达式|字段
when 要判断的值 then 返回的值或语句1;
when 要判断的值 then 返回的值或语句2;
...
else 返回的值n;
end case; */ #案例:创建存储过程,跟据传入的成绩来显示等级
create procedure test_case(
in score int
)
begin
case
when score >=90 and score <= 100 then select 'A';
when score >=80 then select 'B';
when score >=60 then select 'C';
else select 'D';
end case;
end& call test_case(95)& #if结构,实现多重分支
/*
只能应用在begin end中 if 条件1 then 语句1;
elseif 条件2 then 语句2;
...
else 语句n;
end if;
*/ #案例:创建存储过程,跟据传入的成绩返回级别
create function test_if(score int) returns char
begin
if score >= 90 and score <= 100 then return 'A';
elseif score >= 80 then return 'B';
elseif score >=60 then return 'C';
else return 'D';
end if;
end& select test_if(75)& #循环结构
/*
while, loop, repeat
循环控制:
iterate 类似于continue
leave 类似于break 1、while
【标签:】while 循环条件 do
循环体;
end while 【标签】; 2、loop
【标签:】loop
循环体;
end loop 【标签】; 可以用来模拟简单的死循环 3、repeat
【标签:】repeat
循环体;
until 结束条件
end repeat 【标签】;
*/ #案例:批量插入,根据次数插入到admin表中多条记录
use girls&
drop procedure pro_while1&
create procedure pro_while1(
in insertcount int
)
begin
declare i int default 1;
while i <= insertcount do
insert into admin(username, password) values(concat('rois',i), '666');
set i = i+1;
end while;
end& call pro_while1(5)&
select * from admin& #案例:批量插入,根据次数插入到admin表中多条记录,如果次数>20则停止
create procedure pro_while2(
in insertcount int
)
begin
declare i int default 1;
a:while i <= insertcount do
insert into admin(username, password) values(concat('xiaohua',i), '777');
if i >= 20 then leave a;
end if;
set i = i+1;
end while a;
end& call pro_while2(22)&
select * from admin&
mysql-18-function的更多相关文章
- Mysql drop function xxxx ERROR 1305 (42000): FUNCTION (UDF) xxxx does not exist
mysql> drop function GetEmployeeInformationByID;ERROR 1305 (42000): FUNCTION (UDF) GetEmployeeInf ...
- mysql yyyy-MM-dd function UNIX_TIMESTAMP('yyyy-MM-dd HH:mm:ss')
mysql yyyy-MM-dd function UNIX_TIMESTAMP('yyyy-MM-dd HH:mm:ss') select UNIX_TIMESTAMP('1997-10-04 22 ...
- Adding New Functions to MySQL(User-Defined Function Interface UDF、Native Function)
catalog . How to Add New Functions to MySQL . Features of the User-Defined Function Interface . User ...
- mysql 定义function rand
MySQL获取随机数 如何通过MySQL在某个数据区间获取随机数? MySQL本身提供一个叫rand的函数,返回的v范围为0 <= v < 1.0. 介绍此函数的MySQL文档也介绍道 ...
- MYSQL this function has none of deterministic no sql ......错误
This function has none of DETERMINISTIC, NO SQL解决办法 创建存储过程时 出错信息: ERROR 1418 (HY000): This function ...
- mysql常用function
前言: 本文主要是参考mysql官方文档,并加上自己的测试用例,来加深自己对mysql函数的理解,也借此平台与大家分享,如有不妥和错误之处欢迎读者评论,我会及时改正,愿与大家一起学习进步. 概述: 所 ...
- MySQL This function has none of DETERMINISTIC, NO SQL...错误1418 的原因分析及解决方法
MySQL开启bin-log后,调用存储过程或者函数以及触发器时,会出现错误号为1418的错误: ERROR 1418 (HY000): This function has none of DETER ...
- MySQL This function has none of DETERMINISTIC, NO SQL...错误1418 的原因分析及解决方法 (转)
解决方法: 解决办法也有两种, 第一种是在创建子程序(存储过程.函数.触发器)时,声明为DETERMINISTIC或NO SQL与READS SQL DATA中的一个, 例如: CREATE DEFI ...
- mysql 自定义方法 function
在创建函数的时候,如果报如下错误 这个时候一定要先执行:set global log_bin_trust_function_creators=TRUE; 第二步骤: delimiter ;;CREAT ...
- sql:MySql create FUNCTION,VIEW,PROCEDURE
use geovindu; #函数 DELIMITER $$ drop function if exists f_GetDepartmentName $$ CREATE function f_GetD ...
随机推荐
- 安装yarn 心得分享
初次使用yarn ,坑的我,全局安装完@vue/cli,安装之后就是说vue不是内部命令,研究好久,总结一下分享大家一起学习 1,首先安装yarn: 安装yarn 去官网下载yarn 安装包 默认安装 ...
- python爬虫-爬取豆瓣电影数据
#!/usr/bin/python# coding=utf-8# 作者 :Y0010026# 创建时间 :2018/12/16 16:27# 文件 :spider_05.py# IDE :PyChar ...
- jq cdn地址
百度CDN支持版本2.0.3, 2.0.2, 2.0.1, 2.0.0,1.11.1, 1.10.2, 1.10.1, 1.10.0, 1.9.1, 1.9.0, 1.8.3, 1.8.2, 1.8. ...
- 【原】通过Jenkin传值进Android代码
1) Jenkin中用-Pxxxx = yyyy来传值进gradle 2) 在AndroidManifest.xml中定义占位符: <meta-data android:name="X ...
- CocosCreator游戏开发(五)实现技能按钮
在上一篇中,已经顺利的实现了通过摇杆控件来控制角色移动的例子 这一篇内容中,主要来实现通过摇杆来操作技能施法位置的功能 代码效果如下: 在最初的想法中,我是想将摇杆与技能施法范围以及施法位置做成一个组 ...
- Spring Cloud:Consul基础知识
一.基本概念 Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp公司用Go开发. 它提供微服务系统中的服务治理.配置中心.控制总线等功能. 服务发现:提供HTTP和DNS两种发 ...
- Laptop(线段树+离散化)
链接:https://ac.nowcoder.com/acm/contest/16/A来源:牛客网 题目描述 FST是一名可怜的小朋友,他很强,但是经常fst,所以rating一直低迷. 但是重点在于 ...
- 搭建lnmp环境,nginx的配置文件/etc/nginx/nginx.conf
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #erro ...
- [BUUOJ记录] [ACTF2020 新生赛]BackupFile、Exec
两道题都比较简单,所以放到一块记下来吧,不是水博客,师傅们轻点打 BackupFile 题目提示“Try to find out source file!”,访问备份文件/index.php.bak获 ...
- vue 0点定时网络请求
export default { data() { return { timer: null, currentTime: '', zeroTime: '00:00:05', // zeroTime: ...