本质: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 总结二(自定义函数)的更多相关文章

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

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

  2. MySQL存储过程和自定义函数、Navicat for mysql、创建存储过程和函数、调用存储过程和函数的区别

    1 MySQL存储过程和函数 过程和函数,它们被编译后保存在数据库中,称为持久性存储模块(Persistent Stored Module,PSM),可以反复调用,运行速度快. 1.1 存储过程 存储 ...

  3. mysql中的自定义函数

    创建不带参数的自定义函数: 使用: 创建带参数的自定义函数: 使用: 创建具有复合结构的函数体的自定义函数:

  4. linux shell学习笔记二---自定义函数(定义、返回值、变量作用域)介绍

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 一.定义shell函数(define function) 语法: [ f ...

  5. MySQL巧用自定义函数进行查询优化

    用户自定义变量是一个很容易被遗忘的MySQL特性,但是用的好,发挥其潜力,在很多场景都可以写出非常高效的查询语句. 一. 实现一个按照actorid排序的列 mysql; Query OK, rows ...

  6. Python基础(二)自定义函数

    1.判断字符串,内容是否为数字 我们用python:xlrd读Excel内容时,本来只是输入的整数字,经常读出来的是float类型 我们需要自动转成整型,意思就是说,读出来的和我们输入的一样,但是,我 ...

  7. MySQL自定义函数(四十六)

    MySQL自定义函数 一.什么是MYSQL自定义函数? mysql当中的自定义函数,我们简称为UDF,它实际上是一种对MySQL扩展的途径,其用法与内置函数相同. 二.自定义函数应该具备哪些条件? 我 ...

  8. mysql 自定义函数

    原文:http://www.cnblogs.com/zhangminghui/p/4113160.html 引言 MySQL本身提供了内置函数,这些函数的存在给我们日常的开发和数据操作带来了很大的便利 ...

  9. MySQL之自定义函数

    引言 MySQL本身提供了内置函数,这些函数的存在给我们日常的开发和数据操作带来了很大的便利,比如我前面提到过的聚合函数SUM().AVG()以及日期时间函数等等,可是我们总会出现其他的需求:我们需要 ...

  10. MySQL 创建自定义函数

    语法:Create function function_name(参数列表)returns返回值类型 函数体 函数名,应合法的标识符,不应与系统关键字冲突. 一个函数应该属于某个数据库,可以使用db_ ...

随机推荐

  1. 树链剖分I 原理

    树链剖分(Heavy Light Decomposition, HLD)是一种将对[树上两点间的路径]上[边或点]的[修改与查询]转化到[序列]上来处理的方法. 目的:将树的边或点转化到一个线性结构( ...

  2. jQuery中的text()、html()和val()以及innerText、innerHTML和value

    *jQuery中设置或者获取所选内容的值:text();设置或者获取所选元素的文本内容: html();设置或者获取所选元素的内容(包括html标记): val();设置或者获取表单字段的值(前提是表 ...

  3. Django admin coercing to Unicode: need string or buffer, tuple found

    见 http://stackoverflow.com/questions/29762306/django-admin-coercing-to-unicode-need-string-or-buffer ...

  4. 一起买beta版模块单元测试

    一起买beta版模块接口单元测试 测试目的 保证代码质量,对各个模块进行单元测试,不仅可以有效地保证代码的可靠性,让模块在与别的模块整合时出现更少的错误. 而且不用每次启动程序而等待浪费时间. 单元描 ...

  5. 【Beta版本】冲刺-Day2

    队伍:606notconnected 会议时间:12月10日 目录 一.行与思 二.站立式会议图片 三.燃尽图 四.代码Check-in 一.行与思 张斯巍(433) 今日进展:对登录界面做了相应的修 ...

  6. JQuery 学习笔记(01)

    JQuery是继prototype之后又一个优秀的Javascript库.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Oper ...

  7. IOS 学习笔记之UI

    自定义控件,实现部分 - (id)initWithFrame:(CGRect)frame descriptionText:(NSArray *)inText/*需要输入两个字符串*/ { self = ...

  8. wifi-mac

    //18:a6:f7:12:0b:8b //18:a6:f7:1e:a9:57 //18:a6:f7:1f:8e:69 //18:a6:f7:12:0b:9c //18:a6:f7:1f:cd:d4 ...

  9. AspectJ基础学习之一简介(转载)

    AspectJ基础学习之一简介(转载) 一.为什么写这个系列的博客   Aspectj一个易用的.功能强大的aop编程语言.其官网地址是:http://www.eclipse.org/aspectj/ ...

  10. svn 强制用户添加注释 和 允许用户修改注释

    当我们用TortoiseSVN提交代码时,有很多人不喜欢写注释,导致以后代码版本多,也不清楚哪个版本到底改了什么东西.所以在提交的时候,我会强制要求添加注释.这是如何实现的?这个话题就涉及到了svn的 ...