深入浅出MySQL(七)

2020-04-09  本文已影响0人  憨憨二师兄

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();
返回当前的日期时间

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

  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');

测试结果如下:


上一篇 下一篇

猜你喜欢

热点阅读