本文首发于个人微信公众号《andyqian》,期待你的关注!

前言

继上一次《十个实用MySQL命令》后,今天奉上十个实用MySQL函数。下面都是一些比较常用且简单的函数,在工作中也是非常常用的。

函数

0. 显示当前时间

命令:select now()。

作用: 显示当前时间。

应用场景: 创建时间,修改时间等默认值。

例子:

mysql> select now();

+---------------------+

| now()               |

+---------------------+

| 2017-12-27 20:14:56 |

+---------------------+

1 row in set (0.00 sec)

1. 字符长度

命令:select char_length('andyqan')。

作用: 显示指定字符长度。

应用场景: 查看字符长度时。

例子:

mysql> select char_length('andyqian');

+-------------------------+

| char_length('andyqian') |

+-------------------------+

|                       8 |

+-------------------------+

1 row in set (0.00 sec)

2. 日期格式化

命令:select date_format(now(),'%y-%m-%d)。

作用:格式化日期。

应用场景:格式化日期时。

例子:

mysql> select date_format(now(),'%y-%m-%d');

+-------------------------------+

| date_format(now(),'%y-%m-%d') |

+-------------------------------+

| 17-12-28                      |

+-------------------------------+

1 row in set (0.00 sec)

这里支持的格式有:

%y:表示年(两位数),例如: 17 年。

%Y:表示4位数中的年,例如: 2017年

%m:表示月(1-12)

%d: 表示月中的天

%H: 小时(0-23)

%i: 分钟 (0-59)

%s: 秒 (0-59)

年月日时分秒: %y-%m-%d %H:%i:%s,

如下所示:

mysql> select DATE_FORMAT(now(),'%y-%m-%d %H:%i:%s');

+----------------------------------------+

| DATE_FORMAT(now(),'%y-%m-%d %H:%i:%s') |

+----------------------------------------+

| 17-12-27 20:28:54                      |

+----------------------------------------+

1 row in set (0.00 sec)

3. 添加/减少日期时间

命令:

DATE_ADD(date,interval expr unit)

DATE_SUB(date,interval expr unit)

作用: 增加/减少日期时间

应用场景:当前时间的前一天,前几分钟。 常用于数据统计。

例子:

mysql> select date_add(now(),interval 1 day);

+--------------------------------+

| date_add(now(),interval 1 day) |

+--------------------------------+

| 2017-12-28 20:10:17            |

+--------------------------------+

1 row in set (0.00 sec)

其中Date表示日期格式,其中就包括: 如

2017-12-27,now() 等格式。

expr:表示数量。

unit:表示单位,支持毫秒(microsecond),秒(second),小时(hour),天(day),周(week),年(year)等。

4. 类型转换

命令: CAST(expr AS type)

作用: 主要用于显示类型转换

应用场景:显示类型转换

例子:

mysql> select cast(18700000000 as char);

+---------------------------+

| cast(18700000000 as char) |

+---------------------------+

| 18700000000               |

+---------------------------+

1 row in set (0.00 sec)

需要注意的是,其中type支持的不是全部基本数据类型,支持的详细类型,请参考之前的文章《谈谈MySQL显示类型转换》。

5. 加密函数

命令: md5(data)

作用: 用于加密数据

应用场景:加密,一些隐私数据,例如银行卡号,身份证等需要存储密文,(当然,不建议使用数据库层加密,应该在应用层加密)

例子:

mysql> select md5("andyqian");

+----------------------------------+

| md5("andyqian")                  |

+----------------------------------+

| 8a6f60827608e7f1ae29d1abcecffc3a |

+----------------------------------+

1 row in set (0.00 sec)

注意事项: 如果目前你们数据库中的数据还是明文,此时可以使用数据库加密算法进行加密。

例如: (仅做演示):

update t_base_user set name=md5(name),updated_time=now() where id=1;

支持的加密函数有:

md5()

des_encrypt(加密) / des_decrypt(解密);

sha1()

password() 等等

这里不再一一介绍,有兴趣的同学,可以移步至官网进行详细了解。

6. 字符串连接

命令: concat(str,str2,str3)

作用:拼接字符串

应用场景:拼接字符串,例如在某些字段上同一加上指定字符串。

例子:

mysql> select concat("andy","qian");

+-----------------------+

| concat("andy","qian") |

+-----------------------+

| andyqian              |

+-----------------------+

1 row in set (0.00 sec)

该函数平时也还是用的比较多的,基本上场景是,在某些数据上,加上特定的字符串。方法如下:

7. JSON函数(5.7版本才支持)

命令:json_object(函数)

作用:转换json字符串

应用场景:指定数据转换json字符串

例子:

mysql> select json_object("name","andyqian","database","MySQL");

+---------------------------------------------------+

| json_object("name","andyqian","database","MySQL") |

+---------------------------------------------------+

| {"name": "andyqian", "database": "MySQL"}         |

+---------------------------------------------------+

1 row in set (0.00 sec)

其中包括json_array:

mysql> select json_array("name","andyqian","database","MySQL");

+--------------------------------------------------+

| json_array("name","andyqian","database","MySQL") |

+--------------------------------------------------+

| ["name", "andyqian", "database", "MySQL"]        |

+--------------------------------------------------+

1 row in set (0.00 sec)

判断是否为json字符串的json_valid():

select json_valid('{"name": "andyqian", "database": "MySQL"}');

其中为有效json字符串时为1。

无效json字符串时为0.

还有很多方法,不再一一演示。

8. 聚合函数

命令: sum(),count(),avg(),max(),min()

作用:统计,求平均值,最大,最小值

应用场景:这类函数非常常见,主要用于数据统计,在SQL优化方面,也适用。

例子:

mysql> select max(id) from t_base_user;

+---------+

| max(id) |

+---------+

|       2 |

+---------+

1 row in set (0.00 sec)

这里有个小技巧,如果主键是有序递增的,当需要有多少用户时,可以使用max(id)来代替count(*)函数。

9. distinct()

命令: distinct

作用:去重

应用场景:需要统计类型,状态,计算区分度时。

例子:

mysql> select count(distinct(name))/count(*) from t_base_user;

+--------------------------------+

| count(distinct(name))/count(*) |

+--------------------------------+

|                         0.6667 |

+--------------------------------+

1 row in set (0.00 sec)

上述为计算区分度的例子,如有不明白的,可以参考之前的文章《写会MySQL索引》

最后: 祝大家晚安!

相关阅读:

扫码关注,一起进步

mysql算法函数_十个实用MySQL函数相关推荐

  1. mysql function函数_详解MySQL如何按表创建千万级的压测数据

    概述 有时我们要对系统做压测,或者数据库压力测试,这时候需要对某些表插入几百万或者上千万数据,下面介绍下怎么利用MySQL循环和存储过程对特定表的创建千万行数据. 1.准备测试表 CREATE TAB ...

  2. mysql独有的函数_数据库之MySQL函数(一)

    一.数学函数 1.绝对值函数 ABS(x) :返回 x 的绝对值 mysql> select ABS(2),ABS(-2.3),ABS(-22); 返回的结果如下: 数学学得好的大佬应该知道(本 ...

  3. mysql数据库支持的函数_数据库MySQL--常见函数

    函数:将一组逻辑语句封装在函数体中,对外暴露函数名 调用:select 函数名() from 表:(若用到表中的字段则家上'from 表') 函数分类:   1.单行函数(例:concate.leng ...

  4. mysql 开发规范_专业级的MySQL开发设计规范及SQL编写规范

    在团队开发过程中为了项目的稳定,代码的高效,管理的便捷制定内部种开发设计规范是必不可少的, 这里分享一份我们定义MySQL开发设计规范包括表设计规范,字段设计规范,SQL编写规范 数据库对象命名规范 ...

  5. mysql 自然排序_如何在mysql中实现自然排序

    背景 熟悉mysql的同学应该清楚,mysql在对字符串做order by排序时是按照字典序进行排序的,但是如果字符串中包含数字的话(我们称这种类型的字符串为alphanumeric),仅按照字典序的 ...

  6. mysql映射表_[玩转MySQL之四]MySQL缓存机制

    一.前言 在当今的各种系统中,缓存是对系统性能优化的重要手段.MySQL Query Cache(MySQL查询缓存)在MySQL Server中是默认打开的,但是网上各种资料以及有经验的DBA都建议 ...

  7. mysql停止主从_不停止mysql服务配置主从

    不影响主库线上的服务前提下,增加从库,前提是线上的主库配置中已经开启binlog并且指定了server-id. linux主192.168.0.70 版本Centos6.7 nginx1.10 php ...

  8. 编写分段函数子函数_编写自己的函数

    编写分段函数子函数 PYTHON编程 (PYTHON PROGRAMMING) In Python, you can define your own functions. 在Python中,您可以定义 ...

  9. 计算机二级mysql是什么_计算机二级mysql考什么内容?

    计算机二级mysql考什么内容? 一.基本概念与方法 1.数据库基础知识 (1)数据库相关的基本概念 (2)数据库系统的特点与结构 (3)数据模型 2.关系数据库.关系模型 3.数据库设计基础 (1) ...

最新文章

  1. 数字图像处理4:图像的像素级运算
  2. CNN结构:MXNet设计和实现简介
  3. IE9真的支持CSS3和HTML5?
  4. 证书的应用之一 —— TCPSSL通信实例及协议分析(上)
  5. Python_主成分分析
  6. python爬取小说基本信息_Python爬虫零基础实例---爬取小说吧小说内容到本地
  7. 练习1:创建一个简单的银行程序包
  8. SpringAs3的一些配置参数
  9. leetcode python3 简单题231. Power of Two
  10. python的pass语句_Python pass语句–通过Python
  11. [书目20110326]高素质员工的28堂必修课
  12. oracle grant的用法,oracle grant总结
  13. 线程安全的单例模式C++实现
  14. jspstudy启动mysql失败_Mysql 启动失败常见错误
  15. 罗振宇《时间的朋友2018》跨年演讲全文
  16. NetBeans修改字体中文乱码问题
  17. php自学提升进阶路线
  18. 最新MTK芯片型号汇总,MTK开发资料大全下载
  19. 【软件推荐系列第 3 篇】如何下载、设置时钟屏保
  20. ::= 语法是什么意思BNF

热门文章

  1. 基于FPGA的ADC和DAC设计
  2. php网站xml链接,xml图像超链接的制作代码
  3. 数据结构 c++用栈实现四则运算_数据结构之线性结构——栈的四则运算实现
  4. 浅析NTFS 文件系统数据流安全问题
  5. 机器视觉和Tesseract
  6. concurrent(七)ConcurrentHashMap源码分析
  7. [Codeforces]Codeforces Round #460 (Div. 2)
  8. C++中explicit关键字用法
  9. swift变量和函数
  10. 关于空间坐标转化的若干论文