zoukankan      html  css  js  c++  java
  • mysql中常用函数简介(不定时更新)

    常用函数
    version() 显示当前数据库版本
    database() 返回当前数据库名称
    user() 返回当前登录用户名
    inet_aton(IP) 返回IP地址的数值形式,为IP地址的数学计算做准备
    inet_ntoa(str) 返回数值代表的IP

    select inet_aton('192.168.2.1') - inet_aton('192.168.1.1'); #计算两个IP地址之间有多少个IP地址
    +-----------------------------------------------------+
    | inet_aton('192.168.2.1') - inet_aton('192.168.1.1') |
    +-----------------------------------------------------+
    | 256 |
    +-----------------------------------------------------+


    select inet_ntoa('3232236033'); #将IP的数字字符换转换为IP地址
    +-------------------------+
    | inet_ntoa('3232236033') |
    +-------------------------+
    | 192.168.2.1 |
    +-------------------------+

    一、时间日期函数:
    curdate() 显示当前日期
    now() 显示当前日期和时间
    year(curdate()) 取出当前日期中的年份
    month(curdate()) 取出当前日期中的月份
    day(curdate()) 取出当前日期中的日

    UNIX_TIMESTAMP(now()) 返回当前的UNIX时间戳(即纪元时)
    FROM_UNIXTIME(unixtime) 返回UNIXTIME时间戳的日期和时间值,与UNIX_TIMESTAMP(date)互为逆操作

    DATE_FORMAT(date,fmt) 按字符串fmt格式化日期date值,此函数能够按指定的格式显示日期
    这里的fmt按照linux中date指令的格式来指定

    DATE_ADD(date, INTERVAL expr type) 返回与所给日期date相差INTERVAL时间段后的日期。
    date是指定的日期时间
    INTERVAL是间隔类型关键字(固定写法)
    expr是一个表达式,这个表达式对应后面的类型
    type是间隔类型:
    hour、minute、second、year、month、day、year_month、day_hour、day_minute、day_second、
    hour_minute、hour_second、minute_second、second_mirosecond
    示例:
    SELECT DATE_ADD('1900-01-01 00:00:00', INTERVAL '-1 10' DAY_HOUR); #负号表示时间向前推,这里表示向前推1天10小时
    -> '1899-12-30 14:00:00'
    SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY); #31天后的日期
    -> '1997-12-02'



    DATEDIFF(date1,date2) 用来计算两个日期之间相差的天数(大日期在前,小日期在后)


    二、字符串函数:
    注意:mysql中字符串的索引值从1开始

    CONCAT(S1,S2,…Sn) 把传入的参数连接成为一个字符串,任何字符串与NULL进行连接的结果都将是NULL
    INSERT(str,start,length,instr) 将字符串str从第start位置开始,将后续长度为length个字符长的子串替换为字符串instr
    LOWER(str) 把字符串转换成小写
    UPPER(str) 把字符串转换成大写
    LEFT(str,length) 返回字符串str左边长度为length个字符
    RIGHT(str,length) 返回字符串str右边长度为length个字符

    LPAD(str,length,pad) 用字符串pad对str最左边进行填充,n为填充后字符串的总长度
    RPAD(str,length,pad) 用字符串pad对str最右边进行填充,n为填充后字符串的总长度
    如果n的长度恰好等于str字符串的长度,则仅显示字符串str;
    如果n的值小于字符串str的长度,字符串str会从右向左截断;
    如果n的值大于str的长度值,pad开始在字符串str的左边或右边进行填充

    LTRIM(str) 去掉字符串str左侧空格
    RTRIM(str) 去掉字符串str右侧空格
    TRIM(str) 同时去掉目标字符串的开头和结尾的空格

    REPEAT(str,x) 将字符串str重复x次后返回
    REPLACE(str,a,b) 用字符串b替换字符串str中所有出现的字符串a(a和b均是字符串,不限制单个字符)

    STRCMP(s1,s2) 比较字符串s1和s2的ASCII码值的大小,字符串中每个字符逐一比较,若其中一字符串长度不足补0
    如果s1比s2小,那么返回-1
    如果s1与s2相等,那么返回0
    如果s1比s2大,那么返回1

    SUBSTRING(str,start,length) 从字符串str中的start位置开始,取出长度为length个字符长度的子串

    三、数值函数:

    ABS(x) 返回x的绝对值
    CEIL(x) 返回第一个大于x的整数,如果是整数,返回本身
    FLOOR(x) 返回第一个小于x的整数,和CEIL的用法相反,如果是整数,返回本身
    MOD(x,y) 返回x/y的模
    RAND() 返回0到1内的随机值
    ROUND(x,y) 首先对x进行四舍五入,然后保留y位小数。
    如果是整数,即使有y值,最后也不会保留小数;
    如果不写y,则默认y为0,即将x四舍五入后取整

    TRUNCATE(x,y) 返回数字x截断为y位小数的结果。

    注意TRUNCATE和ROUND的区别在于TRUNCATE仅仅是截断,而不进行四舍五入

    四、流程函数
    注意:Mysql中True显示为1,False显示为0

    IF(value,t,f) IF(条件表达式,t,f),如果表达式结果为真,返回t,否则f

    IFNULL(value1,value2) 如果value1为NULL(value1通常为表中的字段名称),则将value1值替换成value2
    这个函数一般用来替换NULL值的(即将表中某一列的所有NULL全部替换成value2值)


    CASE WHEN [条件表达式1] THEN result1 如果条件表达式为真,返回result1
    WHEN [条件表达式2] THEN result2 如果条件表达式为真,返回result2
    WHEN [条件表达式3] THEN result3 如果条件表达式为真,返回result3
    ...
    ELSE default #上述条件都不成立,返回default语句
    END

    示例:
    select
    case when salary <= 2000
    then 'low'
    else 'high'
    end [as] result
    from salary;

    CASE [expr] #expr(通常是列名称)与哪一个value值相等,自信哪一个语句,如果都不等,则执行else语句

    WHEN [value1] THEN [result1]
    WHEN [value2] THEN [result2]
    WHEN [value3] THEN [result3]

    ELSE [resultN]
    END

    示例:
    select
    case salary
    when 1000 then 'low'
    when 2000 then 'mid'
    when 3000 then 'high'
    else 'no result'
    end
    from salary;

    五、加密函数

    password(str) #返回字符换str被password函数加密后的值
    md(str) #返回字符串str被md5函数加密后的值


    六、位操作函数
    bit_count()
    bit_or()

  • 相关阅读:
    笔记本越用越慢的解决方法。
    ubuntu 16.04 的IP地址变更
    如何把路由器当作交换机来使用
    通过 rufus 创建启动U盘,安装 VMWare Esxi
    Enable SMB2 on the Client
    Shiro入门学习与实战(一)
    Linux下Nginx1.9.9的安装
    Activiti工作流学习之SpringBoot整合Activiti5.22.0实现在线设计器(二)
    Activiti工作流学习之概述(一)
    Sqoop的安装及常用命令
  • 原文地址:https://www.cnblogs.com/wyzhou/p/9292285.html
Copyright © 2011-2022 走看看