MySQL函数操作
数学函数的使用
常用的数学函数见表所示:
因为数学函数操作比较简单,这里面就不给予演示了。
字符串函数
得到字符串的字符数
得到字符串的字符数:CHAR_LENGTH()
测试用例:
SELECT CHAR_LENGTH('i love you');
得到字符串的长度(字节)
得到字符串的长度:LENGTH()
;在MySQL中UTF8的编码下,一个中文为2个字节,测试用例如下:
-- 得到字符串的长度
-- LENGTH()
-- 中文在UTF8下占2个字节的长度
SELECT CHAR_LENGTH('你好啊'),LENGTH('你好啊');
将字符串合并成一个字符串
使用CONCAT(s1,s2,...)
可以将字符串合并成一个字符串,如果字符串中包含NULL,那么返回的拼接结果就是NULL
测试用例如下:
SELECT CONCAT('a','b','c');
SELECT CONCAT('a','b','c',NULL);
以指定分隔符拼接字符串
使用函数CONCAT_WS(x,s1,s2,s3,...)
;
测试用例如下:
SELECT CONCAT_WS('-','a','b','c');
SELECT CONCAT_WS('-','a','b','c',NULL);
SELECT CONCAT_WS(NULL,'a','b','c');
将字符串转换大小写
将字符串转换为大写 使用 UPPER() | UCASE()
将字符串转换为小写 使用 LOWER() | LCASE()
测试用例如下:
SELECT UPPER('hello'),LCASE('HELLO');
字符串的反转
字符串反转:REVERSE()
测试用例:
SELECT REVERSE('abc');
返回字符串的前几个字符或者后几个字符
使用语句:LEFT() | RIGHT()
返回字符串的前几个字符或者后几个字符
测试语句:
SELECT LEFT('hello',2),RIGHT('hello',2);
用字符串填充到指定的长度
使用语句:LPAD() | RPAD()
测试语句:
SELECT LPAD('abc',10,'?');
SELECT RPAD('abc',10,'!');
去掉字符串两端的空格
去掉字符串两端的空格:TRIM()
去掉字符串左端的空格:LTRIM()
去掉字符串右端的空格:RTRIM()
测试语句:
SELECT CONCAT('*',TRIM(' abc '),'*'),
CONCAT('*',LTRIM(' abc '),'*'),
CONCAT('*',RTRIM(' abc '),'*');
重复指定字符串的字数
使用语句:REPEAT(s,times)
测试语句:
SELECT REPEAT('hello',3);
字符串替换
使用语句:REPLACE(s,targetS,replaceS)
测试语句:
SELECT REPLACE('hello world','hello','fuck');
截取字符串
截取字符串使用语句:SUBSTRING(s,from,len)
注意MySQL的fromIndex是从1开始的
测试语句:
SELECT SUBSTRING('abcdef',1,3);
比较字符串
比较字符串使用语句STRCMP(s1,s2)
测试语句:
SELECT STRCMP('a','b');
SELECT STRCMP('a','a');
SELECT STRCMP('b','a');
日期时间常用函数
返回当前日期
返回当前日期使用函数:CURDATE() | CURRENT_DATE()
测试语句:
SELECT CURDATE(),CURRENT_DATE();
返回当前时间
返回当前时间使用函数:CURTIME() | CURRENT_TIME()
测试语句:
SELECT CURTIME(),CURRENT_TIME();
返回当前的日期时间
返回当前的日期时间函数有三个:
NOW()
CURRENT_TIMESTAMP()
SYSDATE()
测试语句:
SELECT NOW(),CURRENT_TIMESTAMP(),SYSDATE();
返回年月日小时分钟秒
测试语句:
SELECT YEAR(NOW()),MONTH(NOW()),DAY(NOW()),HOUR(NOW()),MINUTE(NOW()),SECOND(NOW());
测试结果:
返回月份的名称
返回月份的名称使用语句MONTHNAME()
测试语句:
SELECT MONTH(CURRENT_DATE()),MONTHNAME(CURRENT_DATE());
测试结果:
返回星期几
返回星期几使用语句:DAYNAME()
测试语句:
SELECT DAYNAME(NOW());
测试结果:
返回一周内的第几天
其中定义星期日为第一天;使用语句:DAYOFWEEK
测试语句:
SELECT DAYOFWEEK(NOW());
返回一年中的第几个星期
使用语句WEEK()
测试语句:
SELECT WEEK(NOW());
计算两个日期相差的天数
计算两个日期相差的天数使用DATEDIFF()
语句
测试语句:
SELECT DATEDIFF(CURDATE(),'2020-01-01');
测试结果:
其他常用函数
获取版本号和当前连接ID号
测试语句:
SELECT VERSION(),CONNECTION_ID();
测试结果:
获取当前登录的用户
获取当前登录的用户函数有:
USER()
CURRENT_USER()
SYSTEM_USER()
SESSION_USER()
测试语句:
SELECT USER(),CURRENT_USER(),SYSTEM_USER(),SESSION_USER();
测试结果:
得到上一步插入操作产生的AUTO_INCREMENT值
使用函数:LAST_INSERT_ID()
测试:对如下user表进行操作
新插入一条记录:
查询 LAST_INSERT_ID
加密算法
- MD5加密算法
使用函数:MD5()
; MD5会对内容加密成32位长度的新字符串 - PASSWORD
PASSWORD函数是MySQL内置默认的密码加密算法
测试用例如下:
-- MD5() 加密算法 加密成32位的字符串
SELECT MD5('kim');
-- MySQL默认的PASSWORD():密码加密算法
SELECT PASSWORD('root');
测试结果如下:
网友评论