深入浅出MySQL(七)

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','***');
截取字符串

截取字符串使用语句: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();
返回当前的日期时间

返回当前的日期时间函数有三个:

  1. NOW()
  2. CURRENT_TIMESTAMP()
  3. 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();

测试结果:


获取当前登录的用户

获取当前登录的用户函数有:

  1. USER()
  2. CURRENT_USER()
  3. SYSTEM_USER()
  4. SESSION_USER()

测试语句:

SELECT USER(),CURRENT_USER(),SYSTEM_USER(),SESSION_USER();

测试结果:


得到上一步插入操作产生的AUTO_INCREMENT值

使用函数:LAST_INSERT_ID()
测试:对如下user表进行操作

新插入一条记录:



查询 LAST_INSERT_ID


加密算法
  1. MD5加密算法
    使用函数:MD5() ; MD5会对内容加密成32位长度的新字符串
  2. PASSWORD
    PASSWORD函数是MySQL内置默认的密码加密算法

测试用例如下:

-- MD5() 加密算法 加密成32位的字符串
SELECT MD5('kim');

-- MySQL默认的PASSWORD():密码加密算法
SELECT PASSWORD('root');

测试结果如下:


全部评论

相关推荐

02-28 13:25
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
9135次浏览 83人参与
# 你的实习产出是真实的还是包装的? #
1684次浏览 40人参与
# 巨人网络春招 #
11297次浏览 223人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7382次浏览 40人参与
# 重来一次,我还会选择这个专业吗 #
433301次浏览 3926人参与
# 简历第一个项目做什么 #
31500次浏览 327人参与
# 米连集团26产品管培生项目 #
5613次浏览 214人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
186885次浏览 1118人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152269次浏览 887人参与
# 研究所笔面经互助 #
118851次浏览 577人参与
# 简历中的项目经历要怎么写? #
309944次浏览 4189人参与
# 面试紧张时你会有什么表现? #
30473次浏览 188人参与
# 你今年的平均薪资是多少? #
212980次浏览 1039人参与
# AI时代,哪些岗位最容易被淘汰 #
63310次浏览 798人参与
# 我的求职精神状态 #
447961次浏览 3128人参与
# 你最满意的offer薪资是哪家公司? #
76415次浏览 374人参与
# 高学历就一定能找到好工作吗? #
64294次浏览 620人参与
# 牛客AI文生图 #
21399次浏览 238人参与
# 你怎么看待AI面试 #
179799次浏览 1229人参与
# 正在春招的你,也参与了去年秋招吗? #
363190次浏览 2636人参与
# 腾讯音乐求职进展汇总 #
160562次浏览 1109人参与
# 职能管理面试记录 #
10795次浏览 59人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务