mysql数据库内置函数总结

0x00 前言

熟练的掌握mysql语法和函数是开发人员和安全工作中必备的技能,所以决定将mysql的内置函数全部整理一遍,用作笔记。

0x01 数学函数

  • greatest()——返回一组数中的最大值
  • least()——返回一组数中的最小值
  • floor()——返回一个数的向下取整
  • ceiling()——返回一个数的向上取整
  • round()——返回一个数四舍五入后的整数值
  • truncate()——把一个数字截取为指定小数位数的数字
  • abs()——返回一个数的绝对值
  • sign()——返回一个数的符号,正数返回1,负数返回-1,零返回0
  • sqrt()——返回一个数的平方根
  • pow()——以一个数作为另一个数的指数,并返回结果
  • sin()——返回一个角度(弧度)的正弦
  • cos()——返回一个角度(弧度)的余弦
  • tan()——返回一个角度(弧度)的正切
  • asin()——返回一个角度(弧度)的反正弦
  • acon()——返回一个角度(弧度)的反余弦
  • atan()——返回一个角度(弧度)的反正切
  • bin()——返回一个数的二进制,作为字符串
  • otc()——返回一个数的八进制,作为字符串
  • hex()——返回一个数的十六进制,作为字符串

0x02 聚合函数

  • count()——求组中项数,返回int型整数
  • max()——求最大值
  • min()——求最小值
  • sum()——返回表达式所有值的和
  • avg()——求组中值的平均值
  • std()——返回给定表达式中所有值的标准差
  • variance()——返回给定表达式中所有值
  • group_concat()——返回由属于一组的列值连接组合而成的结果
  • bit_and()——逻辑与
  • bit_or()——逻辑或
  • bit_xor()——逻辑异或

0x03 字符串函数

  • ascii(char)——返回表达式最左端字符的ascii码值
  • char(x1,x2,x3)——将括号中的多个数字转换成字符,结果组合成一个字符串
  • left(str,x)——返回从字符串左边开始指定的x个字符
  • right(str,x)——返回从字符串右边开始指定的x个字符
  • trim(str)——删除字符串首部和尾部所有空格
  • ltrim(str)——删除字符串首部所有空格
  • rtrim(str)——删除字符串尾部所有空格
  • rpad(str,n,pad)——用字符串pad对str的右边进行填补直到字符串str中字符大于等于n个,然后返回前n个字符
  • lpad(str,n,pad)——用字符串pad对str的左边进行填补直到字符串str中字符大于等于n个,然后返回前n个字符
  • replace(str1,str2,str3)——用字符串str3替换str1中出现的所有str2
  • concat(str1,str2…strn)——连接字符串
  • substring(expr,start,length)——返回expr中从start开始,长度为length的子串
  • strcmp(str1,str2)——比较两个字符串,相等返回0,str1大返回1,str2大返回-1

0x04 日期和时间函数

  • now()——获取当前的日期和时间
  • curtime()——获取当前的时间
  • curdate()——获取当前的日期
  • year()——分析一个日期值返回其中年的部分
  • motnth()——以数值类型返回月的部分
  • monthname()——以字符串的类型返回月的部分
  • dayofyear()——返回这一天在这一年中的序数
  • dayofmonth()——返回这一天在这一月中的序数
  • dayofweek()——返回这一天在这一周中的序数
  • hour()——返回时间值的小时部分
  • minute()——返回时间值的分钟部分
  • second()——返回时间值的秒部分
  • data_add()——对日期进行增加操作
  • data_sub()——对日期进行减少操作

0x05 加密函数

  • aes_encrypt(str,key)和aes_decrypt(str,key)——对str用密钥key进行aes加密,解密
  • encode()和decode()——对一个字符串进行加密,解密
  • encrypt(str,key)——使用unix crypt()系统加密字符串(在windows上不可用)
  • password(str)——返回str加密后的字符串

0x06 控制流函数

  • ifnull(expr1,expr2)——判断参数expr1是否为null,为null时返回expr2,否则返回expr1
  • nullif(expr1,expr2)——判断两个参数是否相等,如相等,返回null,如不相等,返回第一个参数
  • if(expr1,expr2,expr3)——如果expr1表达式为真,则返回expr2,否则返回expr3

0x07 格式化函数

  • format()——把数值格式化为以逗号为间隔的数字序列
  • data_format()——把数值格式化成日期格式
  • time_format()——把数值格式化为时间格式

0x08 类型转换函数

  • cast(expr,AS type)——将一个值转换为指定的数据类型

0x09 系统信息函数

  • database()——返回当前数据库名
  • benchmark(n,expr)——将表达式expr重复运行n次
  • charset()——返回字符串的字符集
  • connection_id()——返回当前客户的连接id
  • found_rows()——将最后一次select查询的行数返回
  • user()——返回当前登陆的用户名
  • version()——返回当前mysql服务器版本