mysql 总结二(自定义函数)

摘要:
MySQL内置函数的扩展。它本质上与MySQL内置函数相同。create function function_name返回{string | integer | real | decimal}routine_ Body关于函数体:函数体由合法的SQL语句组成;函数体可以是简单的select或insert语句;返回带参数的函数:

本质:mysql内置函数的一种扩展,本质上与mysql内置函数一样。

  1. 函数必要条件:

    @1:参数(非必备);

    @2:返回值;

模板

  create  function  function_name

  returns  

  {string|integer|real|decimal}

  routine_body(函数体)

关于函数体

  (1):函数体由合法的sql语句构成;

  (2):函数体可以是简单的select或insert语句

  (3):函数体如果为复合结构,则使用begin...end语句;

  (4):复合结构可以包含声明,循环,控制结构;

------------------------------------------------------我是分割线-------------------------------------------------

实例:

  返回不带参数的函数:

  CREATE FUNCTION f1() returns VARCHAR(20)

  return NOW();

  返回带参数的函数:

  create FUNCTION ftest1(num1 SMALLINT,num2 SMALLINT)

  RETURNS FLOAT(10,2)
  RETURN (num1+num2)/2;

  创建具有复合结构函数体的自定义函数:

  DELIMITER $$
  DROP FUNCTION IF EXISTS `itcast`.`cost` $$
  CREATE FUNCTION `itcast`.`cutString`(s VARCHAR(255),n INT) RETURNS varchar(255)
  BEGIN
  IF(ISNULL(s)) THEN RETURN '';
  ELSEIF CHAR_LENGTH(s)<n THEN RETURN s;
  ELSEIF CHAR_LENGTH(S)=n THEN RETURN '相等';
  ELSE RETURN CONCAT(LEFT(s,n),'...');
  END IF;
  END $$
  DELIMITER ;

---------------------------------------------------------我是分割线------------------------------------------------

存储过程和自定义函数的区别:

  存储过程实现的功能要复杂些,而函数的针对性更强;

  存储过程可以返回多个值;函数只能有一个返回值;

  存储过程一般独立的来执行;而函数可以作为其它sql语句的组成部分来出现作用等同内置函数)。

自定义函数实用较少,存储过程实用较多

免责声明:文章转载自《mysql 总结二(自定义函数)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇redis实现加锁的几种方法示例详解ORACLE EBS 价目表的导入功能存储过程BUG下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

实现自定义的小程序底部tabbar

背景 诶,当然是为了实现更有温度的代码啦(背后设计师拿着刀对着我) 自带tabbar app.json中配置: tabBar: { backgroundColor: '#fff', borderStyle: 'white', color: '#333', selectedColor: '#333', list: [ {...

红米手机使用应用沙盒一键修改经纬度数据

之前文章介绍了怎么在安卓手机上安装激活Xposed框架,Xposed框架的强悍功能各位都知道,能不修改apk的前提下,修改系统底层的参数,比如在某些应用范畴,各位需要修改手机的某个系统参数,此时就需要使用Xposed以及相关模块功能来实现。今天记录一下具体xposed框架的下载和框架模块应用沙盒的使用流程,成功激活并正确修改经纬度参数。首先,关于XPose...

Flink基础(四十):FLINK-SQL函数(4) 函数(五)自定义函数(三)

表值聚合函数 自定义表值聚合函数(UDTAGG)可以把一个表(一行或者多行,每行有一列或者多列)聚合成另一张表,结果中可以有多行多列。 上图展示了一个表值聚合函数的例子。假设你有一个饮料的表,这个表有 3 列,分别是 id、name 和 price,一共有 5 行。假设你需要找到价格最高的两个饮料,类似于 top2() 表值聚合函数。你需要遍历所有 5...

hsql整理

一、行转列的使用1、问题hive如何将a       b       1a       b       2a       b       3c       d       4c       d       5c       d       6变为:a       b       1,2,3c       d       4,5,6 2、数据test.txt...

hdu 4651 Partition (利用五边形定理求解切割数)

下面内容摘自维基百科:五边形数定理[编辑] 五边形数定理是一个由欧拉发现的数学定理,描写叙述欧拉函数展开式的特性[1] [2]。欧拉函数的展开式例如以下: 亦即 欧拉函数展开后,有些次方项被消去,仅仅留下次方项为1, 2, 5, 7, 12, ...的项次,留下来的次方恰为广义五边形数。 当中符号为- - + + - - + + ........

Python的map、filter、reduce函数

map函数func作用于给定序列的每个元素,并用一个列表来提供返回值。map函数python实现代码: def map(func,seq):     mapped_seq = []     for eachItem in seq:         mapped_seq.append(func(eachItem))     return mapped_seq...