• MySQL函数(经典收藏)


    MySQL函数(经典收藏)

    MySQL函数

    MySQL数据库提供了很多函数包括:

    • 数学函数;
    • 字符串函数;
    • 日期和时间函数;
    • 条件判断函数;
    • 系统信息函数;
    • 加密函数;
    • 格式化函数;

    一、数学函数

    数学函数主要用于处理数字,包括整型、浮点数等。

    二、字符串函数

    字符串函数是MySQL中最常用的一类函数,字符串函数主要用于处理表中的字符串。

    三、日期时间函数

    MySQL的日期和时间函数主要用于处理日期时间。

    四、条件判断函数

    1、IF(expr,v1,v2)函数

    如果表达式expr成立,返回结果v1;否则,返回结果v2。

    SELECT IF(1 > 0,'正确','错误')    
    ->正确
    
    • 1
    • 2

    2、IFNULL(v1,v2)函数

    如果v1的值不为NULL,则返回v1,否则返回v2。

    SELECT IFNULL(null,'Hello Word')
    ->Hello Word
    
    • 1
    • 2

    3、CASE

    语法1:

    CASE 
      WHEN e1
      THEN v1
      WHEN e2
      THEN e2
      ...
      ELSE vn
    END
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    CASE表示函数开始,END表示函数结束。如果e1成立,则返回v1,如果e2成立,则返回v2,当全部不成立则返回vn,而当有一个成立之后,后面的就不执行了。

    SELECT CASE 
      WHEN 1 > 0
      THEN '1 > 0'
      WHEN 2 > 0
      THEN '2 > 0'
      ELSE '3 > 0'
      END
    ->1 > 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    语法2:

    CASE expr 
      WHEN e1 THEN v1
      WHEN e1 THEN v1
      ...
      ELSE vn
    END
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    如果表达式expr的值等于e1,返回v1;如果等于e2,则返回e2。否则返回vn。

    SELECT CASE 1 
      WHEN 1 THEN '我是1'
      WHEN 2 THEN '我是2'
    ELSE '你是谁'
    
    • 1
    • 2
    • 3
    • 4

    五、系统信息函数

    系统信息函数用来查询MySQL数据库的系统信息。

    六、加密函数

    加密函数是MySQL用来对数据进行加密的函数。

    1、PASSWORD(str)

    该函数可以对字符串str进行加密,一般情况下,PASSWORD(str)用于给用户的密码加密。

    SELECT PASSWORD('123')
        ->*23AE809DDACAF96AF0FD78ED04B6A265E05AA257
    
    • 1
    • 2

    2、MD5

    MD5(str)函数可以对字符串str进行散列,可以用于一些普通的不需要解密的数据加密。

    SELECT md5('123')
        ->202cb962ac59075b964b07152d234b70
    
    • 1
    • 2

    3、ENCODE(str,pswd_str)与DECODE(crypt_str,pswd_str)

    ENCODE函数可以使用加密密码pswd_str来加密字符串str,加密结果是二进制数,需要使用BLOB类型的字段保存。该函数与DECODE是一对,需要同样的密码才能够解密。

    SELECT ENCODE('123','xxoo')
        ->;vx
    SELECT DECODE(';vx','xxoo')
        ->123
    
    • 1
    • 2
    • 3
    • 4

    七、其他函数

    1、格式化函数FORMAT(x,n)

    FORMAT(x,n)函数可以将数字x进行格式化,将x保留到小数点后n位。

    SELECT FORMAT(3.1415926,3)
        ->3.142
    
    • 1
    • 2

    2、不同进制的数字进行转换

    • ASCII(s) 返回字符串s的第一个字符的ASCII码;
    • BIN(x) 返回x的二进制编码;
    • HEX(x) 返回x的十六进制编码;
    • OCT(x) 返回x的八进制编码;
    • CONV(x,f1,f2) 返回f1进制数变成f2进制数;

    3、IP地址与数字相互转换的函数

    • INET_ATON(IP)函数可以将IP地址转换为数字表示;IP值需要加上引号;

    • INET_NTOA(n)函数可以将数字n转换成IP形式。

      SELECT INET_ATON(‘192.168.0.1’)
      ->3232235521
      SELECT INET_NTOA(3232235521)
      ->192.168.0.1

    4、加锁函数和解锁函数

    • GET_LOCK(name,time)函数定义一个名称为nam、持续时间长度为time秒的锁。如果锁定成功,则返回1;如果尝试超时,则返回0;如果遇到错误,返回NULL。

    • RELEASE_LOCK(name)函数解除名称为name的锁。如果解锁成功,则返回1;如果尝试超时,返回0了如果解锁失败,返回NULL;

    • IS_FREE_LOCK(name)函数判断是否已使用名为name的锁定。如果使用,返回0,否则,返回1;

      SELECT GET_LOCK(‘MySQL’,10)
      ->1 (持续10秒)
      SELECT IS_FREE_LOCK(‘MySQL’)
      ->1
      SELECT RELEASE_LOCK(‘MySQL’)
      ->1

    5、重复执行指定操作的函数

    BENCHMARK(count.expr)函数将表达式expr重复执行count此,然后返回执行时间。该函数可以用来判断MySQL处理表达式的速度。

    SELECT BENCHMARK(10000,NOW())
        ->0    返回系统时间1万
    
    • 1
    • 2

    6、改变字符集的函数

    CONVERT(s USING cs)函数将字符串s的字符集变成cs。

    SELECT CHARSET('ABC')
        ->utf-8    
    
    SELECT CHARSET(CONVERT('ABC' USING gbk))
        ->gbk
    
    • 1
    • 2
    • 3
    • 4
    • 5

    7、转换数据类型

    • CAST(x AS type)
    • CONVERT(x,type)

    这两个函数只对BINARY、CHAR、DATE、DATETIME、TIME、SIGNED INTEGER、UNSIGNED INTEGER。

    SELECT CAST('123' AS UNSIGNED INTEGER) + 1
        ->124
    
    SELECT '123' + 1
        ->124 其实MySQL能默认转换
    
    SELECT CAST(NOW() AS DATE)
      ->2014-12-18
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    最后给大家分享Spring系列的学习笔记和面试题,包含spring面试题、spring cloud面试题、spring boot面试题、spring教程笔记、spring boot教程笔记、最新阿里巴巴开发手册(63页PDF总结)、2022年Java面试手册。一共整理了1184页PDF文档。私信博主(777)领取,祝大家更上一层楼!!!

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    影响多用户商城系统价格的因素有哪些?
    特征工程之特征降维-特征选择-PCA/LDA
    STM32 4位数码管和74HC595
    .NET静态代码织入——肉夹馍(Rougamo)发布2.0
    单商户商城系统功能拆解38—分销应用—分销订单
    支持寄存器模型读写功能的AHB driver实现——导读
    执行mysql-community-libs-8.1.0-1.el8.x86_64.rpm报错依赖检测失败
    【C++】string类模拟实现下篇(附完整源码)
    [echarts] 折线图+柱状图,多 Y 轴
    SQL标识列实现自动编号的步骤和技巧以及优势
  • 原文地址:https://blog.csdn.net/geejkse_seff/article/details/126113481