深入浅出MySQL(5)-----MySQL常用函数
1. 数学函数
CEIL():进一取整FLOOR(): 舍掉小数部分ROUND(): 四舍五入TRUNCATE(): 截取小数点后几位MOD(): 取余数ABS(): 取绝对值POWER(): 幂运算PI(): 圆周率RAND()或者RAND(X): 0-1之间的随机数SIGN(X): 得到数字符号EXP(X): 计算 e 的 x 次方
2. 字符串函数
CHAR_LENGTH('ABCD'): 计算字符的长短
-- 测试字符串函数
-
CHAR_LENGTH():得到字符串的字符数SELECT CHAR_LENGTH('abc'); -- 返回3 -
LENGTH():返回字符串的长度SELECT LENGTH('abc'); -- 返回3- 如果是中文,则返回原来ASCII码的长度
-
CONCAT(s1,s2,....):将字符串合并成一个字符串SELECT CONCAT('a','b','c'); -- 如果字符串中包含NULL,返回拼接结果就是NULL -- 返回'abc' SELECT CONCAT('a','b','c',null); -- 返回 NULL -
CONCAT_WS(x,s1,s2,s2....):以指定分隔符拼接字符串SELECT CONCAT_WS('-','a','b','c'); -- 如果null在拼接的内容中,则转化成空字符串 SELECT CONCAT_WS('-','a','b','c',null); -- 如果分隔符为null,拼接的结果为null SELECT CONCAT_WS(null,'a','b','c'); -
将字符串转换成大写或者小写
UPPER() | UCASE() | LOWER() | LCASE()SELECT UPPER('hello king'),UCASE('hello imooc'),LOWER('HELLO ADMIN'),LCASE('HELLO EVERYBODY'); -
字符串的反转
REVERSE()SELECT REVERSE('abc'); -
LEFT()|RIGHT():返回字符串的前几个字符或者后几个字符SELECT LEFT('hello',2),RIGHT('hello',2); -
LPAD()|RPAD():用字符串填充到指定长度SELECT LPAD('abc',10,'?'); -- 返回'abc???????' SELECT RPAD('abc',10,'!'); -- 返回'acb!!!!!!!' -
去掉字符串两端的空格
TRIM() | LTRIM() | RTRIM():SELECT CONCAT('*',TRIM(' abc '),'*'), CONCAT('*',LTRIM(' abc '),'*'), CONCAT('*',RTRIM(' abc '),'*'); -
REPEAT():重复指定的次数SELECT REPEAT('hello',3); -
REPLACE():字符串SELECT REPLACE('hello king','king','queen'); -
截取字符串
SUBSTRING()SELECT SUBSTRING('abcdef',1,3); -
比较字符串
STRCMP()SELECT STRCMP('a','b');
3. 日期时间函数
-
测试日期时间函数 & 返回当前日期
SELECT CURDATE(),CURRENT_DATE(); -
返回当前时间
SELECT CURTIME(),CURRENT_TIME(); -
返回当前的日期时间
SELECT NOW(),CURRENT_TIMESTAMP(),SYSDATE(); -
返回日期中的月份和月份的名称
SELECT MONTH('2017-02-19'); SELECT MONTH(CURDATE()),MONTHNAME(CURDATE()); -
返回星期几
SELECT DAYNAME(NOW()); -
返回一周内的第几天,0代表星期一
SELECT DAYOFWEEK(NOW()); SELECT WEEK(NOW()); SELECT YEAR(NOW()),MONTH(NOW()),DAY(NOW()),HOUR(NOW()),MINUTE(NOW()),SECOND(NOW()); -
DATEDIFF()计算两个日期相差的天数SELECT DATEDIFF('2017-03-06','2017-03-02');
4. 其他常用函数
-
测试其它常用函数
SELECT VERSION(),CONNECTION_ID(); SELECT USER(),CURRENT_USER(),SYSTEM_USER(),SESSION_USER(); -
得到上一步插入操作产生AUTO_INCREMENT的值*
SELECT LAST_INSERT_ID(); -
PASSWORD():密码加密算法SELECT MD5('king'); SELECT PASSWORD('root');