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 ;

最新文章

  1. 环境jdk、编码不一致造成的项目报错
  2. ACm-ICPC Live Archive 7464---Robots
  3. .net 模拟登录Post提交
  4. Java Web之Servlet技术
  5. tomcat学习笔记一:安装和配置
  6. CSS 指定选择器(十一)
  7. mysql如何用order by 自定义排序
  8. Java中的线程池
  9. 基于CSS3图片可倾斜摆放的动画相册
  10. delphi 取得汉字的第一个字母
  11. 使用GitHub For Windows托管Visual Studio项目
  12. 不使用ASP.NET服务器端控件(包括form表单不加runat=&quot;server&quot;)来触发.cs里的事件(方法),(适用于有代码洁癖者)。
  13. yum 安装 kvm
  14. 计算机图形学学习方法和相关书籍,做游戏,GIS,虚拟现实,三维引擎的都能够看看.
  15. uip UDPclient模式通信移植,当地port随机
  16. Python+ Selenium自动化登录腾讯QQ邮箱实例
  17. MySql获取两个日期间的时间差
  18. centos7默认安装没有连接到网络
  19. MSSQL如何访问ORACLE里的表
  20. 跟着百度学PHP[14]-PDO-优化驱动

热门文章

  1. 『ACM C++』 Codeforces | 1066B - Heaters
  2. 【LightOJ 1081】Square Queries(二维RMQ降维)
  3. ABAP术语-Transaction
  4. HTML中汉字空格占位符
  5. php的基础知识(四)
  6. ubuntu下的python网页解析库的安装——lxml, Beautiful Soup, pyquery, tesserocr
  7. “子查询返回的值不止一个。当子查询跟随在 =、!=、&lt;、&lt;=、&gt;、&gt;= 之后,或子查询用作表达式时,这种情况是不允许的。”SQL查询错误解析
  8. 爬虫-爬虫介绍及Scrapy简介
  9. Ruby中的类
  10. linux 查看内置命令