(2.16)Mysql之SQL基础——函数

关键词:mysql函数,mysql自定义函数,mysql聚合函数,mysql字符串函数,mysql数值函数

1、自定义函数

  1. -- 1)一般形式
  2. create function 函数名(参数类型 数据类型)
  3. returns 返回类型
  4. begin
  5. sql 语句
  6. return 返回的数据值
  7. end
  8.  
  9. -- 2)举例--不带参数的函数
    delimiter //
    create function fn_test()
    retrurns varchar(20)
    begin
      return 'hello,world';
    end //
    delimiter ;
  10.  
  11. 举例--带参数的函数
  1. --求num的阶乘
    create function fn_jieceng(num int)
  2. returns int
  3. BEGIN
  4. declare n int;
  5.   set n=1;
  6.   while num>0 DO
  7.   set n=num*n;
  8.   set num=num-1;
  9.   end while;
  10.   return n;
  11. end ;
  1.  
  2. -- (3)调用
    1】直接select fn_test();
    2】在存储过程,或者任何表达式中都可以运用它
  3.  
  4. -- (4)函数的查看
    1mysql.procselect * from mysql.proc where db='db_name' and type='function';
    2show function status like 'fn_name';
    3show create function fn_test();
    4information_schema.`routines`
    select * from information.`routines`
    where routine_schema='db_name' and routine_type='function';
  5.  
  6. -- (5)函数的删除
    1drop function fn_test();

2、聚合函数

  1. 1max:最大值,适用于任何类型
  2. 2min:最小值,适用于任何类型
  3. 3avg:平均值,适用于数字类型
  4. 4sum:求和,适用于数字类型
  5. 5count:统计行数
  6.  
  7. 6group_concat:将字符串从分组中连接成具有各种选项(如distinct,order byseparator)的字符串(sql server中的for xml path(),oracle中的wmsys.wm_concat
  8.  
  9. 1)概念 ,即实现分组后,其他值默认以逗号为分隔符连接到一行 
    2)最大长度参数:默认为1024group_concat_max_len
  10.  
  11. 使用实例;
    1distinct:去重  【2order by :排序  【3】设定分割字符

 

3、常用字符串函数

【1】concat(st1,str2,'test_str'):将括号内的多个字符串组连成一个字符串(就是类似于oracle中的||,sql server中的+,拼接)

【2】length(str)、char_length(str):以字节或者字符获取字符串的长度(英文下是一样的,但是UTF8中文一个字符是3个字节,比如  '你好呀',用char_length就是3,用length就是9)

【3】left(str,N)/right(str,N)函数:获取str左边/右边N个字符

【4】replace(str,old_str,new_str)函数:把str中的old_str字符串,替换成new_str字符串

【5】trim(str):删除str字符串中左右两边的空格,中间不会删除。trim(leading/trailing from 'str')即只删除str前/后的空格。

【6】find_in_set(str1,str2):在逗号分隔符的字符串列表中找到一个字符串。。例如:find_in_set('b','a,b,c'),结果为2,如果str1不存在于str2中,即返回0;

【7】format(N,D,locale):格式化数字,例如format(30011.567,2)则结果为30,011.57。

    中国默认以3位为一个逗号,来显示数字,但是如果是其他国家则不同。例如德国就可以这么查看:  format(30011.567,2),则显示为,300.11,57

【8】instr(str,find_str):返回字符串在字符串中第一次出现的位置。例如:instr('hello_world','wo'),结果为7

【9】concat_ws('connect_str','str1','str2','str3'):意思是,str1和st2之间用connect_str字符串连接起来,str2与str3之间也是。忽略字符串中的所有Null(但不忽略空格)

【10】reverse(str):反转字符串,比如abc变成cba

【11】substring(str,start_pos,get_length):截取str字符串,从start_post下表开始,获取get_lenth个字符。 也可以写成substring(str, from 4 for 3),意思是从第4个开始取,取3个字符。也可以写成负数,意味着从倒数第几个字符开始取。

【12】lower(str)/upper(str):把str字符串所有字符转换成小写/大写

【13】strcmp(str1,str2):字符串比较~~相等为0,不等为1

【14】repeat(str,N):返回str重复N次的结构

【15】lpad/rpad(str,n,pad):用字符串pad对str最左/右边进行填充,直到长度为n为止。

4、数值函数

【1】ABS(X):绝对值

【2】ceil(x.y):向上取整,得x+1

【3】floor(x.y):向下取整,得x

【4】mod(x,y):求模,等价于x%y

【5】round(x,y):返回参数X的四舍五入有y位小数的值,例如round(5.555,2) -> 5.56

【6】truncate(x,y):返回参数x,截断为y位小数的结果,例如round(5.555,2) -> 5.55

5、日期函数

(2.17)Mysql之SQL基础——日期函数

6、流程函数

【1】IF(EXPR,T,F):如果表达式expr为真,则返回T值,否则返回F值

【2】IFNULL(value,value1):如果value为null,则返回value1值

7、常用函数

6.1、LAST_INSERT_ID():获取自增长的最后插入值ID

(2.16)Mysql之SQL基础——函数的更多相关文章

  1. (2.15)Mysql之SQL基础——开发设计最佳规范

    (2.15)Mysql之SQL基础——开发设计最佳规范 关键字:mysql三大范式,mysql sql开发规范 分析: show profile.mysqllsla.mysqldrmpslow.exp ...

  2. (2.10)Mysql之SQL基础——约束及主键重复处理

    (2.10)Mysql之SQL基础——约束及主键重复处理 关键词:mysql约束,批量插入数据主键冲突 [1]查看索引: show index from table_name; [2]查看有约束的列: ...

  3. mysql的sql分页函数limit使用 (转)

    http://www.cnblogs.com/beijingstruggle/p/5631603.html mysql的sql分页函数limit使用 My sql数据库最简单,是利用mysql的LIM ...

  4. (2.14)Mysql之SQL基础——游标

    (2.14)Mysql之SQL基础——游标 关键词:Mysql游标 -- (1)定义游标 declare cur_name cursor for select * from table_name wh ...

  5. (2.13)Mysql之SQL基础——触发器

    (2.13)Mysql之SQL基础——触发器 关键词:Mysql触发器 1.一般形式 -- 0.查看触发器[1]SHOW TRIGGERS;[2]SELECT * FROM `information_ ...

  6. (2.11)Mysql之SQL基础——存储过程与变量

    (2.11)Mysql之SQL基础——存储过程 关键字:mysql存储过程 查看存储过程: []SELECT * FROM information_schema.ROUTINES WHERE ROUT ...

  7. (2.9)Mysql之SQL基础——索引的查看与删除

    (2.9)Mysql之SQL基础——索引的查看与删除 关键词:mysql索引查看,mysql索引删除 1.索引查询(以下包括主键,唯一,普通,复合,全文,但不包括外键) (1)按库查询 select ...

  8. (2.8)Mysql之SQL基础——索引的分类与使用

    (2.8)Mysql之SQL基础——索引的分类与使用 关键字:mysql索引,mysql增加索引,mysql修改索引,mysql删除索引 按逻辑分类: 1.主键索引(聚集索引)(也是唯一索引,不允许有 ...

  9. (2.7)Mysql之SQL基础——表的操作与查看

    (2.7)Mysql之SQL基础——表的操作与查看 搜索关键字:mysql表操作,comment注释操作,mysql临时表 0.临时表 create temporary table 1.创建表(在in ...

随机推荐

  1. 资深投资人全力反击: VC增值平台从来就不是一坨狗屎

    编者注: 本文来自海外著名科技博客VentureBeat, 英文原文出自Kyle Lacy之手 ,中文版由天地会珠海分舵进行编译. 文章主要是针对前几天德国VC Christian Claussen的 ...

  2. Visual Studio使用技巧,创建自己的代码片段

    1.代码片段的使用示例 在编写代码中常会使用代码片段来提高我们的编写代码的效率,如:在Visual Studio中编写一个 for(int i = 0; i < length;i++) { } ...

  3. Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion(二)

    接前一篇 Spring Framework 官方文档学习(四)之Validation.Data Binding.Type Conversion(一) 本篇主要内容:Spring Type Conver ...

  4. easyui------添加中文文件

    添加中文文件: 官网地址:http://www.jeasyui.net/download/去jquery-easyui官网下载的文件里面找到easyui-lang-zh_CN.js文件,添加入代码里面 ...

  5. POJ 2923 Relocation(01背包变形, 状态压缩DP)

    Q: 如何判断几件物品能否被 2 辆车一次拉走? A: DP 问题. 先 dp 求解第一辆车能够装下的最大的重量, 然后计算剩下的重量之和是否小于第二辆车的 capacity, 若小于, 这 OK. ...

  6. html5 file 自定义文件过滤

    使用 acctpe属性即可 示例: gif,jpg <input type="file" name="pic" accept="image/gi ...

  7. Redhat系列使用ISO或者光盘制作yum本地安装源

    适用系统:redhat系列 示例系统:CentOS 6x86_64 环境:虚拟机   有时候做实验又不能联网的情况下想装一款软件时,经常会搞的头大:难道要去系统镜像中一个个拷出来再用rpm安装?各种依 ...

  8. php学习八:封装

    一:在php中,用class关键字来创建一个类,即进行封装:在类里面有成员属性和方法行为组成: 1.成员属性:用关键字var来声明,可以给初始值也可以不给;现在var废弃,用public来声明,pub ...

  9. 如何理解精通PHP ?

    「精通 PHP」可以理解为以下三个: 精通「PHP 解析器 精通「PHP 语法.函数(这门语言) 精通「PHP 项目开发 1 精通「PHP 解析器」 可以从这里开始学习: PHP核心:骇客指南 :ht ...

  10. 设计模式之抽象工厂模式(Java实现)

    “上次是我的不对,贿赂作者让我先讲来着,不过老婆大人大人有大量,不与我计较,这次还让我先把上次未讲完的应用场景部分给补充上去,有妻如此,夫复何求.”(说完,摸了摸跪的发疼的膝盖,咳咳,我发四我没笑!真 ...