Mysql内置了很多函数可供我们调用,灵活掌握这些内置函数可以让我们日常的sql编写工作变得更加容易。
字符函数
函数名称 描述 CONCAT('str1', 'str2') 字符连接 CONCAT_WS('分隔符', str1, str2) 使用指定的分隔符进行字符连接 FORMAT(num, 需要保留的小数点后位数) 数字格式化 LOWER(str) 转换成小写字母 UPPER(str) 转换成大写字母 LEFT(str, 需要获取字母的位数) 获取左侧字符串 RIGHT(str, 需要获取字母的位数) 获取右侧字符串 LENGTH(str) 获取字符串长度 LTRIM(str) 删除前导空格 RTRIM(str) 删除后续空格 TRIM(str) 删除前导和后续空格 SUBSTRING(str, start[, length]) 字符串截取(start初始为1,为负值时将从后面开始截取。length不存在默认截取到最后) [NOT] LIKE 模式匹配 REPLACE(allstr, nowstr, newstr) 字符串替换(nowstr为将被替换的子串)
关于TRIM的拓展用法:
SELECT TRIM(LEADING '?' FROM '??Mysql???'); 输出结果 >>> 'Mysql???' SELECT TRIM(TRAILING '?' FROM '??Mysql???'); 输出结果 >>> '??Mysql' SELECT TRIM(BOTH '?' FROM '??Mysql???'); 输出结果 >>> 'Mysql'
关于LIKE的用法:
SELECT * FROM users WHERE name LIKE '%t%';
查找用户表中名字包含t字母的项。
如果需要查找名字中含有"%"(百分号)的用户,则需要对%进行单独说明。
SELECT * FROM users WHERE name LIKE '%1%%' ESCAPE '1';
"%"(百分号)代表任意字符,"_"(下划线)代表任意一个字符。
数值运算符和函数
函数名称 描述 CEIL(num) 进一取整(CEIL(3.14) == 4) DIV 整数除法(3 DIV 4 == 0) FLOOR(num) 舍一取整(FLOOR(3.14) == 3) MOD 取余数(取模,等价于 % ) POWER(num1, num2) 幂运算(POWER(3, 3) == 3*3*3) ROUND(num1, num2) 四舍五入(num2为保留的小数位数) TRUNCATE(num1, num2) 数字截取(TRUNCATE(125.82, -1) == 120) [NOT] BETWEEN … AND … [不]在范围之内 [NOT] IN() [不]在列出值范围内 IS [NOT] NULL [不]为空
示例:
SELECT 15 BETWEEN 1 AND 22; SELECT 6 IN(3, 6, 9, 12);
日期时间函数:
函数名称 描述 NOW() 当前日期和时间 CURDATE() 当前日期 CURTIME() 当前时间 DATE_ADD(…) 日期变化 DATEDIFF() 日期差值(DATEDIFF('2019-8-7','2018-8-7') == 365) DATE_FORMAT() 日期格式化
示例(日期变化):
SELECT DATE_ADD('2018-8-7', INTERVAL 365 DAY); 输出结果 >>> "2019-08-07"
类似的还有
SELECT DATE_ADD('2018-8-7', INTERVAL 1 YEAR); SELECT DATE_ADD('2018-8-7', INTERVAL 18 WEEK);
日期格式化:
SELECT DATE_FORMAT('2018-8-7','%m/%d/%Y');
信息函数:
函数名称 描述 CONNECTION_ID() 连接ID DATEBASE() 当前数据库 LAST_INSERT_ID() 最后插入记录的ID USER() 当前用户 VERSION() 版本信息
聚合函数:
聚合函数的特点是只存在一个返回值。
函数名称 描述 AVG() 平均值 COUNT() 计数 MAX() 最大值 MIN() 最小值 SUM() 求和
示例:
SELECT AVG(age) FROM users; SELECT COUNT(id) FROM users; SELECT MAX(age) FROM users; SELECT MIN(age) FROM users; SELECT SUM(age) FROM users;
加密函数:
函数名称 描述 MD5() 信息摘要算法(主要运用于web项目) PASSWORD() 密码算法(主要运用mysql的密码修改)
示例:
SET PASSWORD = PASSWORD('123456');
修改当前用户的密码为"123456"。