• 【Mysql】Mysql内置函数介绍


    00

    🌈欢迎来到Python专栏
    🙋🏾‍♀️作者介绍:前PLA队员 目前是一名普通本科大三的软件工程专业学生
    🌏IP坐标:湖北武汉
    🍉 目前技术栈:C/C++、Linux系统编程、计算机网络、数据结构、Mysql、Python(目前在学)
    🍇 博客介绍:通过分享学习过程,加深知识点的掌握,也希望通过平台能认识更多同僚,如果觉得文章有帮助,请您动动发财手点点赞,本人水平有限,有不足之处欢迎大家扶正~
    🍓 最后送大家一句话共勉:知不足而奋进,望远山而前行。愿大家都能早日进大厂实现财富自由~
    ————————————————

    1.日期函数

    1.1基本操作

    00

    • 获得年月日:
    select current_date();
    +----------------+
    | current_date() |
    +----------------+
    | 2017-11-19   |
    +----------------+
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 获得时分秒:
    select current_time();
    +----------------+
    | current_time() |
    +----------------+
    | 13:51:21    |
    +----------------+
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 获得时间戳:
    select current_timestamp();
    +---------------------+
    | current_timestamp() |
    +---------------------+
    | 2017-11-19 13:51:48 |
    +---------------------+
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 在日期的基础上加日期:
    select date_add('2017-10-28', interval 10 day);
    +-----------------------------------------+
    | date_add('2017-10-28', interval 10 day) |
    +-----------------------------------------+
    | 2017-11-07               |
    +-----------------------------------------+
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 在日期的基础上减去时间:
    select date_sub('2017-10-1', interval 2 day);
    +---------------------------------------+
    | date_sub('2017-10-1', interval 2 day) |
    +---------------------------------------+
    | 2017-09-29              |
    +---------------------------------------+
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 计算两个日期之间相差多少天:
    select datediff('2017-10-10', '2016-9-1');
    +------------------------------------+
    | datediff('2017-10-10', '2016-9-1') |
    +------------------------------------+
    |                 404 |
    +------------------------------------+
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    1.2实例操作

    • 案例-1:
      创建一张表,记录生日
    create table tmp(
    id int primary key auto_increment,
    birthday date
    );
    
    • 1
    • 2
    • 3
    • 4
    • 添加当前日期
    insert into tmp(birthday) values(current_date());
    
    • 1
    mysql> select * from tmp;
    +----+------------+
    | id | birthday  |
    +----+------------+
    |  1 | 2017-11-19 |
    +----+------------+
    mysql> create table msg (
    id int primary key auto_increment,
    content varchar(30) not null,
    sendtime datetime
    );
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 案例-2:
      创建一个留言表
    mysql> create table msg (
    id int primary key auto_increment,
    content varchar(30) not null,
    sendtime datetime
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 插入数据
    mysql> insert into msg(content,sendtime) values('hello1', now());
    mysql> insert into msg(content,sendtime) values('hello2', now());
    mysql> select * from msg;
    +----+---------+---------------------+
    | id | content | sendtime      |
    +----+---------+---------------------+
    |  1 | hello1 | 2017-11-19 14:12:20 |
    |  2 | hello2 | 2017-11-19 14:13:21 |
    +----+---------+---------------------+
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 显示所有留言信息,发布日期只显示日期,不用显示时间
    select content,date(sendtime) from msg;
    
    • 1
    • 请查询在2分钟内发布的帖子
    select * from msg where date_add(sendtime, interval 2 minute) > now();
    理解:
    ------------------------------|-----------|-------------|------------------
                 初始时间   now()    初始时间+2min 
    
    • 1
    • 2
    • 3
    • 4

    2.字符串函数

    02

    • 案例:
      获取emp表的ename列的字符集
    select charset(ename) from EMP;
    
    • 1
    • 要求显示exam_result表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分,英语XXX分”
    select concat(name, '的语文是',chinese,'分,数学是',math,'分') as '分数' from
    student;
    
    • 1
    • 2
    • 求学生表中学生姓名占用的字节数
    select length(name), name from student;
    
    • 1

    注意:length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;
    如果是单字节字符则算作一个字节。比如:字母,数字算作一个字节,中文表示多个字节数
    (与字符集编码有关

    • 将EMP表中所有名字中有S的替换成’上海’
    select replace(ename, 'S', '上海') ,ename from EMP;
    
    • 1
    • 截取EMP表中ename字段的第二个到第三个字符
    select substring(ename, 2, 2), ename from EMP;
    
    • 1
    • 以首字母小写的方式显示所有员工的姓名
    select concat(lcase(substring(ename, 1, 1)),substring(ename,2)) from EMP;
    
    • 1

    3.数学函数

    03

    绝对值 
    select abs(-100.2);
    向上取整
    select ceiling(23.04);
    向下取整
    select floor(23.7);
    保留2位小数位数(小数四舍五入)
    select format(12.3456, 2);
    产生随机数
    select rand();
     
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    4.其他函数

    user() 查询当前用户
    md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串
    database()显示当前正在使用的数据库
    password()函数,MySQL数据库使用该函数对用户加密
    
     
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    基于PSO的UAV三维路径规划(Matlab代码实现)
    直击程序员面试现场:百度面试官都问了我些啥?
    Git分支管理流程
    Adobe Premiere Pro:掌控视频剪辑的魔法之手,让你的创作腾飞!
    PMP考试提分必刷题
    Python去除中文文本中的特殊字符
    MySQL 三大日志(bin log、redo log、undo log)
    Java版工程行业管理系统源码-专业的工程管理软件- 工程项目各模块及其功能点清单
    商业新闻|你还在用传统搜索引擎吗?
    工具篇--分布式定时任务springBoot--elasticjob简单使用(1)
  • 原文地址:https://blog.csdn.net/weixin_62892290/article/details/134441569