DELIMITER //     (设置结束符  其实我也不太明白为啥要这样  记住就行把)
CREATE FUNCTION ym_date(mydate DATE) (创建函数 函数名字(参数))
RETURNS VARCHAR(20) (指定函数的返回类型)
BEGIN (函数开始,如果函数只有一句可以省略bigin和end)
RETURN DATE_FORMAT(mydate,%Y-%m); (函数体)
END// (函数结束)
DELIMITER ; (把结束符再变成;) CREATE FUNCTION show_name_store(bid INT)
RETURNS VARCHAR(20)
RETURN (SELECT CONCAT_WS('-----',book_name,store) FROM bookinfo WHERE book_id=bid); (into的介绍)
DELIMITER //
CREATE FUNCTION show_name_store(bid INT)
RETURNS VARCHAR(20)
BEGIN
DECLARE result VARCHAR(20) (声明变量)
SELECT CONCAT_WS('-----',book_name,store) INTO result FROM bookinfo WHERE book_id=bid;(对变量result进行赋值。emmm没啥说的)
RETURN result;
END//
DELIMITER ; (删除函数)
DROP FUNCTION xxxxx; (又是if else)
DELIMITER //
CREATE FUNCTION show_level(cid VARCHAR(20))
RETURNS VARCHAR(10)
BEGIN
DECLARE lev VARCHAR(20);
DECLARE money DECIMAL(7,3);
SELECT balance INTO money FROM readerinfo WHERE card_id=cid;
IF money>=500 THEN
SET lev='高级';
ELSEIF money>=300 THEN
SET lev='普通';
ELSE
SET lev='非会员';
END IF;
RETURN lev;
END//
DELIMITER ; (case的样例)
DELIMITER //
CREATE FUNCTION show_lev2(cid CHAR(18))
RETURNS barchar(10)
BEGIN
DECLARE lev VARCHAR(10);
DECLARE money DECIMAL(7,3);
DECLARE num INT;
SELECT balance INTO money FROM readerinfo WHERE card_id=cid;
SET num=TRUNCATE(money/100,0);
CASE num
WHEN 0 THEN SET lev='非会员';
WHEN 1 THEN SET lev='普通';
WHEN 2 THEN SET lev='高级';
ELSE SET lev='金牌';
END CASE;
RETURN lev;
END//
DELIMITER ;
(CASE 也可以这样用)
CASE
WHEN money>500 THEN SET lev='高级';
WHEN money>=300 THEN SET lev='普通';
ELSE SET lev='不是';
END CASE; (以下是循环的样例)
DELIMITER //
CREATE FUNCTION test(n INT)
RETURNS INT
BEGIN
DECLARE num INT DEFAULT 0;
DECLARE SUM INT DEFAULT 0;
WHILE num<n DO
SET num= num + 1;
SET SUM=SUM + num;
END WHILE;
RETURN SUM;
END//
DELIMITER ; DELIMITER //
CREATE FUNCTION test(n INT)
RETURNS INT
BEGIN
DECLARE num INT DEFAULT 0;
DECLARE SUM INT DEFAULT 0;
labl:LOOP
SET num=num+1;
SET SUM=SUM+num;
IF num>=n THEN
LEAVE labl;
END IF;
END LOOP labl;
RETURN SUM;
END//
DELIMITER ; DELIMITER //
CREATE FUNCTION test(n INT)
RETURNS INT
BEGIN
DECLARE num INT DEFAULT 0;
DECLARE SUM INT DEFAULT 0;
REPEAT
SET num=num+1;
SET SUM=SUM+num;
UNTIL num>=n
END REPEAT;
RETURN SUM;
END//
DELIMITER ;

DELIMITER // (设置结束符 其实我也不太明白为啥要这样 记住就行把)
CREATE FUNCTION ym_date(mydate DATE) (创建函数 函数名字(参数))
RETURNS VARCHAR(20) (指定函数的返回类型)
BEGIN (函数开始,如果函数只有一句可以省略bigin和end)
RETURN DATE_FORMAT(mydate,%Y-%m); (函数体)
END// (函数结束)
DELIMITER ; (把结束符再变成;)

CREATE FUNCTION show_name_store(bid INT)
RETURNS VARCHAR(20)
RETURN (SELECT CONCAT_WS('-----',book_name,store) FROM bookinfo WHERE book_id=bid);

(into的介绍)
DELIMITER //
CREATE FUNCTION show_name_store(bid INT)
RETURNS VARCHAR(20)
BEGIN
DECLARE result VARCHAR(20) (声明变量)
SELECT CONCAT_WS('-----',book_name,store) INTO result FROM bookinfo WHERE book_id=bid;(对变量result进行赋值。emmm没啥说的)
RETURN result;
END//
DELIMITER ;

(删除函数)
DROP FUNCTION xxxxx;

(又是if else)
DELIMITER //
CREATE FUNCTION show_level(cid VARCHAR(20))
RETURNS VARCHAR(10)
BEGIN
DECLARE lev VARCHAR(20);
DECLARE money DECIMAL(7,3);
SELECT balance INTO money FROM readerinfo WHERE card_id=cid;
IF money>=500 THEN
SET lev='高级';
ELSEIF money>=300 THEN
SET lev='普通';
ELSE
SET lev='非会员';
END IF;
RETURN lev;
END//
DELIMITER ;

(case的样例)
DELIMITER //
CREATE FUNCTION show_lev2(cid CHAR(18))
RETURNS barchar(10)
BEGIN
DECLARE lev VARCHAR(10);
DECLARE money DECIMAL(7,3);
DECLARE num INT;
SELECT balance INTO money FROM readerinfo WHERE card_id=cid;
SET num=TRUNCATE(money/100,0);
CASE num
WHEN 0 THEN SET lev='非会员';
WHEN 1 THEN SET lev='普通';
WHEN 2 THEN SET lev='高级';
ELSE SET lev='金牌';
END CASE;
RETURN lev;
END//
DELIMITER ;
(CASE 也可以这样用)
CASE
WHEN money>500 THEN SET lev='高级';
WHEN money>=300 THEN SET lev='普通';
ELSE SET lev='不是';
END CASE;

(以下是循环的样例)
DELIMITER //
CREATE FUNCTION test(n INT)
RETURNS INT
BEGIN
DECLARE num INT DEFAULT 0;
DECLARE SUM INT DEFAULT 0;
WHILE num<n DO
SET num= num + 1;
SET SUM=SUM + num;
END WHILE;
RETURN SUM;
END//
DELIMITER ;

DELIMITER //
CREATE FUNCTION test(n INT)
RETURNS INT
BEGIN
DECLARE num INT DEFAULT 0;
DECLARE SUM INT DEFAULT 0;
labl:LOOP
SET num=num+1;
SET SUM=SUM+num;
IF num>=n THEN
LEAVE labl;
END IF;
END LOOP labl;
RETURN SUM;
END//
DELIMITER ;

DELIMITER //
CREATE FUNCTION test(n INT)
RETURNS INT
BEGIN
DECLARE num INT DEFAULT 0;
DECLARE SUM INT DEFAULT 0;
REPEAT
SET num=num+1;
SET SUM=SUM+num;
UNTIL num>=n
END REPEAT;
RETURN SUM;
END//
DELIMITER ;

数据库Mysql的学习(七)-自定义函数和流程控制的更多相关文章

  1. Mysql变量、存储过程、函数、流程控制

    一.系统变量 系统变量: 全局变量 会话变量 自定义变量: 用户变量 局部变量 说明:变量由系统定义,不是用户定义,属于服务器层面 注意:全局变量需要添加global关键字,会话变量需要添加sessi ...

  2. R语言学习4:函数,流程控制,数据框重塑

    本系列是一个新的系列,在此系列中,我将和大家共同学习R语言.由于我对R语言的了解也甚少,所以本系列更多以一个学习者的视角来完成. 参考教材:<R语言实战>第二版(Robert I.Kaba ...

  3. MySQL学习——操作自定义函数

    MySQL学习——操作自定义函数 摘要:本文主要学习了使用DDL语句操作自定义函数的方法. 了解自定义函数 是什么 自定义函数是一种与存储过程十分相似的过程式数据库对象.它与存储过程一样,都是由SQL ...

  4. 【存储过程】MySQL存储过程/存储过程与自定义函数的区别

    ---------------------------存储过程-------------------- 语法: 创建存储过程: CREATE [definer = {user|current_user ...

  5. MySQL(10)---自定义函数

    MySQL(10)---自定义函数 之前讲过存储过程,存储过程和自定义函数还是非常相似的,其它的可以认为和存储过程是一样的,比如含义,优点都可以按存储过程的优点来理解. 存储过程相关博客: 1.MyS ...

  6. [MySQL数据库之Navicat.pymysql模块、视图、触发器、存储过程、函数、流程控制]

    [MySQL数据库之Navicat.pymysql模块.视图.触发器.存储过程.函数.流程控制] Navicat Navicat是一套快速.可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降 ...

  7. mysql:视图、触发器、事务、存储、函数、流程控制

    阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 回到顶部 一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只 ...

  8. MySQL知识补充(表字段操作、视图、触发器、事物、存储过程、内置函数、流程控制、索引、慢查询)

    今日内容概要 表字段操作补充(掌握) 视图(了解) 触发器(了解) 事务(掌握) 存储过程(了解) 内置函数(了解) 流程控制(了解) 索引(熟悉) 内容详细 1.表字段操作补充 # 1.添加表字段 ...

  9. 14 MySQL--事务&函数与流程控制

    一.事务 事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性. 一堆sql语句:要么同时执行成功,要么同时失败 # 事务的原子性 场景: ...

随机推荐

  1. React-Navigation web前端架构

    React-Navigation 前端架构 准备 /*安装组件*/ npm install --save react-navigation npm install --save react-nativ ...

  2. 微信小程序跳H5页面

    主页面:index.wxml 主页面:index.js ↑跳转到另一个wxml页面→recharge.wxml recharge.wxml web-view中设置跳转h5的链接,可以加上需要的参数: ...

  3. python类的使用(类定义,构造器,类属性,方法)

    注:这里只描述使用方法,具体类的概念长篇大论就不要为难我这个懒人了. 总之一句话编程语言只是一个工具,会用就行,好用就行.打破砂锅问到底,我觉得有必要研究一下C,汇编,电子链路等. class clt ...

  4. phalcon框架与Volt 模块引擎 使用简介

      ———— 近期工作中web页面使用由C语言编写的Volt模板引擎,相比之前由js动态加载页面速度更快,更利于百度数据的抓取,现根据文档整理一下使用思路 (Volt是一个超快速和设计者友好的模板语言 ...

  5. 19-3-5Python中列表、元组、以及range

    一.列表: 为什么要学列表? 因为字符串存在缺点: 1)      只能存储少量的数据. 2)      数据类型无论索引.切片 获取的都是字符串类型,类型过于单一,转化成它原来的类型还需要进一步转换 ...

  6. ubuntu系统的软件包管理工具

    ubuntu系统的软件包管理工具有两种,一种是离线管理,另一种是在线管理 1.离线管理 dpkg工具可以对本地存放的deb安装包进行安装,卸载,查看状态等. dpkg -i app_name_vers ...

  7. IDEA中使用单元测试@Test等,提示没有 Junit.jar包

    1.File-->Project Structure-->Modules-->右侧Dependencies-->+号-->JARs or directories... 2 ...

  8. thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法

    这篇文章主要介绍了thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法,结合简单示例形式分析了thinkPHP5框架验证码相关配置.后台验证.前台刷新等操作技巧,学习thinkphp源码的朋 ...

  9. css 浮动说明

    clear:both; 1.要了解的:什么是浮动.浮在某面板之上. 例如:float:left; 向左停靠, 就是让需要设置浮动的元素,跟在指定元素后面. 先上实例: 比较常用导航: .nav_ul ...

  10. hadoop生态搭建(3节点)-16.elk配置

    # ==================================================================ELK环境准备 # 修改文件限制 # * 代表Linux所有用户 ...