赞
踩
可以对 MySQL 常用函数进行简单的分类,大概包括数值型函数、字符串型函数、日期时间函数、聚合函数等。
函数名称 | 作 用 |
---|---|
ABS | 求绝对值 |
SQRT | 求二次方根 |
MOD | 求余数 |
CEIL 和 CEILING | 两个函数功能相同,都是返回不小于参数的最小整数,即向上取整 |
FLOOR | 向下取整,返回值转化为一个BIGINT |
RAND | 生成一个0~1之间的随机数,传入整数参数是,用来产生重复序列 |
ROUND | 对所传参数进行四舍五入 |
SIGN | 返回参数的符号 |
POW 和 POWER | 两个函数的功能相同,都是所传参数的次方的结果值 |
SIN | 求正弦值 |
ASIN | 求反正弦值,与函数 SIN 互为反函数 |
COS | 求余弦值 |
ACOS | 求反余弦值,与函数 COS 互为反函数 |
TAN | 求正切值 |
ATAN | 求反正切值,与函数 TAN 互为反函数 |
COT | 求余切值 |
GREATEST(expr1, expr2, expr3, …) | 返回列表中的最大值 | 返回以下数字列表中的最大值: SELECT GREATEST(3, 12, 34, 8, 25); -- 34 返回以下字符串列表中的最大值:SELECT GREATEST("Google", "Runoob", "Apple"); -- Runoob |
---|---|---|
LEAST(expr1, expr2, expr3, …) | 返回列表中的最小值 | 返回以下数字列表中的最小值: SELECT LEAST(3, 12, 34, 8, 25); -- 3 返回以下字符串列表中的最小值:SELECT LEAST("Google", "Runoob", "Apple"); -- Apple |
LN | 返回数字的自然对数,以 e 为底。 | 返回 2 的自然对数: SELECT LN(2); -- 0.6931471805599453 |
LOG(x) 或 LOG(base, x) | 返回自然对数(以 e 为底的对数),如果带有 base 参数,则 base 为指定带底数。 | SELECT LOG(20.085536923188) -- 3 SELECT LOG(2, 4); -- 2 |
LOG10(x) | 返回以 10 为底的对数 | SELECT LOG10(100) -- 2 |
LOG2(x) | 返回以 2 为底的对数 | 返回以 2 为底 6 的对数: SELECT LOG2(6); -- 2.584962500721156 |
mysql> SELECT ABS(5),ABS(-2.4),ABS(-24),ABS(0); +--------+-----------+----------+--------+ | ABS(5) | ABS(-2.4) | ABS(-24) | ABS(0) | +--------+-----------+----------+--------+ | 5 | 2.4 | 24 | 0 | +--------+-----------+----------+--------+ mysql> select sqrt(4) as A, sqrt(50) as B; +------+--------------------+ | A | B | +------+--------------------+ | 2 | 7.0710678118654755 | +------+--------------------+ mysql> select mod(83,8) as A, mod(64,8) as B, mod(13,-7) as C; +------+------+------+ | A | B | C | +------+------+------+ | 3 | 0 | 6 | +------+------+------+ mysql> SELECT CEIL(-2.5),CEILING(2.5); +------------+--------------+ | CEIL(-2.5) | CEILING(2.5) | +------------+--------------+ | -2 | 3 | +------------+--------------+ mysql> select floor(4.1),floor(4.66),floor(-4.66); +------------+-------------+--------------+ | floor(4.1) | floor(4.66) | floor(-4.66) | +------------+-------------+--------------+ | 4 | 4 | -5 | +------------+-------------+--------------+ mysql> SELECT RAND(), RAND(), RAND(); +--------------------+--------------------+--------------------+ | RAND() | RAND() | RAND() | +--------------------+--------------------+--------------------+ | 0.8817574539051927 | 0.9110966277412107 | 0.9102108077241209 | +--------------------+--------------------+--------------------+ mysql> select round(8.49),round(8,499),round(8.01); +-------------+--------------+-------------+ | round(8.49) | round(8,499) | round(8.01) | +-------------+--------------+-------------+ | 8 | 8 | 8 | +-------------+--------------+-------------+ mysql> SELECT SIGN(-6),SIGN(0),SIGN(34); +----------+---------+----------+ | SIGN(-6) | SIGN(0) | SIGN(34) | +----------+---------+----------+ | -1 | 0 | 1 | +----------+---------+----------+ mysql> select power(2,3),pow(3,8); +------------+----------+ | power(2,3) | pow(3,8) | +------------+----------+ | 8 | 6561 | +------------+----------+ ·································
函数名称 | 作 用 |
---|---|
LENGTH | 计算字符串长度函数,返回字符串的字节长度 |
CONCAT | 合并字符串函数,返回结果为连接参数产生的字符串,参数可以使一个或多个 |
INSERT | 替换字符串函数 |
LOWER | 将字符串中的字母转换为小写 |
UPPER | 将字符串中的字母转换为大写 |
LEFT | 从左侧字截取符串,返回字符串左边的若干个字符 |
RIGHT | 从右侧字截取符串,返回字符串右边的若干个字符 |
TRIM | 删除字符串左右两侧的空格 |
REPLACE | 字符串替换函数,返回替换后的新字符串 |
SUBSTRING | 截取字符串,返回从指定位置开始的指定长度的字符换 |
REVERSE | 字符串反转(逆序)函数,返回与原始字符串顺序相反的字符串 |
GROUP_CONCAT | 是将分组中括号里对应的字符串进行连接.如果分组中括号里的参数xxx有多行,那么就会将这多行的字符串连接,每个字符串之间会有特定的符号进行分隔。 |
group_concat用法:group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] ) mysql> select depart_id, name from info; +-----------+-----------+ | depart_id | name | +-----------+-----------+ | 1 | ivanlee | | 1 | 于超 | | 2 | 仇梓涵 | | 1 | tony | | 3 | kelly | | 1 | james | | 1 | 李杰 | +-----------+-----------+ 以depart_id分组,把name字段的值在同一行打印出来,逗号分隔(默认) mysql> select depart_id,group_concat( name) from info group by depart_id; +-----------+----------------------------------+ | depart_id | group_concat( name) | +-----------+----------------------------------+ | 1 | ivanlee,于超,tony,james,李杰 | | 2 | 仇梓涵 | | 3 | kelly | +-----------+----------------------------------+ mysql> select depart_id,group_concat( name order by age desc separator '*') from info group by depart_id; +-----------+-----------------------------------------------------+ | depart_id | group_concat( name order by age desc separator '*') | +-----------+-----------------------------------------------------+ | 1 | 李杰*james*于超*tony*ivanlee | | 2 | 仇梓涵 | | 3 | kelly | +-----------+-----------------------------------------------------+
CHAR_LENGTH(s) | 返回字符串 s 的字符数 | 返回字符串 RUNOOB 的字符数 SELECT CHAR_LENGTH("RUNOOB") AS LengthOfString; |
CHARACTER_LENGTH(s) | 返回字符串 s 的字符数,等同于 CHAR_LENGTH(s) | 返回字符串 RUNOOB 的字符数 SELECT CHARACTER_LENGTH("RUNOOB") AS LengthOfString; |
CONCAT(s1,s2…sn) | 字符串 s1,s2 等多个字符串合并为一个字符串 | 合并多个字符串 SELECT CONCAT("SQL ", "Runoob ", "Gooogle ", "Facebook") AS ConcatenatedString; |
CONCAT_WS(x, s1,s2…sn) | 同 CONCAT(s1,s2,…) 函数,但是每个字符串之间要加上 x,x 可以是分隔符 | 合并多个字符串,并添加分隔符: SELECT CONCAT_WS("-", "SQL", "Tutorial", "is", "fun!")AS ConcatenatedString; |
FIELD(s,s1,s2…) | 返回第一个字符串 s 在字符串列表(s1,s2…)中的位置 | 返回字符串 c 在列表值中的位置: SELECT FIELD("c", "a", "b", "c", "d", "e"); |
FIND_IN_SET(s1,s2) | 返回在字符串s2中与s1匹配的字符串的位置 | 返回字符串 c 在指定字符串中的位置: SELECT FIND_IN_SET("c", "a,b,c,d,e"); |
FORMAT(x,n) | 函数可以将数字 x 进行格式化 “#,###.##”, 将 x 保留到小数点后 n 位,最后一位四舍五入。 | 格式化数字 “#,###.##” 形式: SELECT FORMAT(250500.5634, 2); -- 输出 250,500.56 |
LOCATE(s1,s) | 从字符串 s 中获取 s1 的开始位置 | 获取 b 在字符串 abc 中的位置: SELECT LOCATE('st','myteststring'); -- 5 返回字符串 abc 中 b 的位置: SELECT LOCATE('b', 'abc') -- 2 |
LCASE(s) | 将字符串 s 的所有字母变成小写字母 | 字符串 RUNOOB 转换为小写: SELECT LCASE('RUNOOB') -- runoob |
LEFT(s,n) | 返回字符串 s 的前 n 个字符 | 返回字符串 runoob 中的前两个字符: SELECT LEFT('runoob',2) -- ru |
函数名称 | 作 用 |
---|---|
CURDATE 和 CURRENT_DATE | 两个函数作用相同,返回当前系统的日期值 |
CURTIME 和 CURRENT_TIME | 两个函数作用相同,返回当前系统的时间值 |
NOW 和 SYSDATE | 两个函数作用相同,返回当前系统的日期和时间值 |
UNIX_TIMESTAMP | 获取UNIX时间戳函数,返回一个以 UNIX 时间戳为基础的无符号整数 |
FROM_UNIXTIME | 将 UNIX 时间戳转换为时间格式,与UNIX_TIMESTAMP互为反函数 |
MONTH | 获取指定日期中的月份 |
MONTHNAME | 获取指定日期中的月份英文名称 |
DAYNAME | 获取指定曰期对应的星期几的英文名称 |
DAYOFWEEK | 获取指定日期对应的一周的索引位置值 |
WEEK | 获取指定日期是一年中的第几周,返回值的范围是否为 0〜52 或 1〜53 |
DAYOFYEAR | 获取指定曰期是一年中的第几天,返回值范围是1~366 |
DAYOFMONTH | 获取指定日期是一个月中是第几天,返回值范围是1~31 |
YEAR | 获取年份,返回值范围是 1970〜2069 |
TIME_TO_SEC | 将时间参数转换为秒数 |
SEC_TO_TIME | 将秒数转换为时间,与TIME_TO_SEC 互为反函数 |
DATE_ADD 和 ADDDATE | 两个函数功能相同,都是向日期添加指定的时间间隔 |
DATE_SUB 和 SUBDATE | 两个函数功能相同,都是向日期减去指定的时间间隔 |
ADDTIME | 时间加法运算,在原始时间上添加指定的时间 |
SUBTIME | 时间减法运算,在原始时间上减去指定的时间 |
DATEDIFF | 获取两个日期之间间隔,返回参数 1 减去参数 2 的值 |
DATE_FORMAT | 格式化指定的日期,根据参数返回指定格式的值 |
WEEKDAY | 获取指定日期在一周内的对应的工作日索引 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。