深入浅出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');