美文网首页
深入浅出MySQL(七)

深入浅出MySQL(七)

作者: 憨憨二师兄 | 来源:发表于2020-04-09 22:45 被阅读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');
    

    测试结果如下:


    相关文章

      网友评论

          本文标题:深入浅出MySQL(七)

          本文链接:https://www.haomeiwen.com/subject/uvyhmhtx.html