【MySQL的内置函数】



一、日期函数

在这里插入图片描述

1.current_date()

这是一个日期函数,表示当前的日期。

在这里插入图片描述

2.current_time()

这是一个时间函数,表示当前时间。
在这里插入图片描述
注意区分两个概念:日期和时间。

一般情况下:日期指的是,年月日。
时间指的是,时分秒。

3.current_timestamp

时间戳。
获取日期和时间,也就是详细到年月日,时分秒。
在这里插入图片描述

4. date_add 穿越未来

在日期的基础上,加上一个日期。
interval:时间间隔。

mysql> select date_add(‘2024-5-11’,interval 100 day);
在这里插入图片描述
还可以获取当前时间,然后添加上year/month/day/hour/minute/second
在这里插入图片描述

5.date_sub 回到过去

在日期的基础上,减去一个日期。
interval:时间间隔。

mysql> select date_sub(‘2024-5-11’,interval 100 day);

在这里插入图片描述
还可以获取当前时间,然后添加上year/month/day/hour/minute/second。
在这里插入图片描述

6.datediff

计算两个日期之间相差多少天。在这里插入图片描述

案例

创建一张表,记录生日
mysql> create table tmp(
-> id bigint primary key auto_increment,
-> birthday date
-> );

向表中插入一些数据:

mysql> insert into tmp(birthday) values(current_date());
mysql> insert into tmp(birthday) values(‘1949-10-01’);
mysql> insert into tmp(birthday) values(‘2049-10-01’);
mysql> insert into tmp(birthday) values(current_time());
mysql> insert into tmp(birthday) values(date(current_time()));

在这里插入图片描述
可以看到,就算插入的是当前时间,显示时仍然是以日期的方式显示的。
此时可以认为:

  • 1.所有的函数,底层都是用同一个日期函数。
  • 2.MySQL有一点小bug,时间能插入日期类型的数据中。

案例2:

创建一个留言表
mysql> create table msg(
id int primary key auto_increment,
content varchar(100) not null, senddtime datetime
);

插入数据:
在这里插入图片描述

现在有一个要求,请查询20分钟内发布过的消息。

在这里插入图片描述

mysql> select id,content,sendtime from msg where sendtime > date_sub(now(),interval 30 minute);
在这里插入图片描述
另一种查询方法也可以:
mysql> select id,content,sendtime from msg where now() < date_add(sendtime,interval 30 minute);

二、字符串函数

在这里插入图片描述

2.1charset

获取msp表的content列的字符集.

mysql> select charset(content) from msg;

在这里插入图片描述

2.2 concat ——拼接字符串

这个函数就像c语言学过的strcat函数,将字符串拼接。
在这里插入图片描述

2.3 ucase——转化成大写

mysql> select ucase(‘hello,你好,worldasddd’);
在这里插入图片描述

2.4 lcase——转化成小写

mysql> select lcase(‘hello,你好,BBBBBBBBBBd’);

在这里插入图片描述

2.5 left()

left(string, length);
从string左边开始提取length个字符。

在这里插入图片描述

2.6replace()

replace(string,src,dst);

在string字符串中,查找src字符串,找到并替换成dst字符串。

2.7substring()

在这里插入图片描述

substring(str,position,length);
从str的position位置开始,取length个字符。

2.8 ltrim 和rtrim

ltrim去除字符串左边的空格
rtrim去除右边的空格。

trim去除左右两边的空格。

但是不去除中间的空格。

使用案例

要求显示exam_result表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分,英语XXX分”

mysql> select concat(‘考生姓名:’, name, ‘恭喜你,你的总分是:’,chinese+math+english,’ 语文成绩:‘,chinese, ’ 数学成绩:’ ,math,’ 英语成绩: ',english) as 分数 from exam_result;

求学生表中学生姓名占用的字节数.

mysql> select name,length(name) from exam_result;

在这里插入图片描述
原因是,使用的字符编码默认是utf8的。
一个汉字占3个字节。

注意:字符和数字占1字节。

mysql> select length(‘abc123’);

在这里插入图片描述

将EMP表中所有名字中有S的替换成’上海’
mysql> select ename,replace(ename,‘S’,‘上海’) from emp;

在这里插入图片描述

截取EMP表中ename字段的第二个到第三个字符。
mysql> select substring(ename,2,2) from emp;
在这里插入图片描述

以首字母小写的方式显示所有员工的姓名
mysql> select ename, concat( substring(lcase(ename),1,1), substring(ename,2)) from emp ;
在这里插入图片描述

注意:上面的案例,都没有修改表格本身,而是将满足条件的表内容提取出来并修改,再聚合展现出来。
对表格本身的内容没有修改。
想要修改表格本身的内容,一般用update才会修改。

三、数学函数

在这里插入图片描述
三个取整方式:
向上取整,向下取整,0向取整。

在这里插入图片描述

ceiling函数:向上取整。ceiling翻译:天花板。
floor函数:向下取整。floor翻译:地板。
在这里插入图片描述
在这里插入图片描述

四、其他函数

user()

当前用户。

md5()

语法:md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串。

形成一个摘要,产生等长字符串。

在这里插入图片描述

不管这个参数str有多短多长,都会形成一个固定的摘要。
在这里插入图片描述

ifnull(val1,val2)

判断第一个val1是不是null,如果第一个是null,返回val2。
如果第一个不是null,返回val1。

相关推荐

  1. MySQL】7.MySQL 函数

    2024-05-14 18:28:09       24 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-14 18:28:09       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-14 18:28:09       97 阅读
  3. 在Django里面运行非项目文件

    2024-05-14 18:28:09       78 阅读
  4. Python语言-面向对象

    2024-05-14 18:28:09       88 阅读

热门阅读

  1. js 文档片段 DocumentFragment

    2024-05-14 18:28:09       35 阅读
  2. 深度学习关键概念理解

    2024-05-14 18:28:09       28 阅读
  3. rust类型和变量(二)

    2024-05-14 18:28:09       29 阅读
  4. 一个长期后台运行的服务

    2024-05-14 18:28:09       33 阅读
  5. NLP(15)-序列标注任务

    2024-05-14 18:28:09       22 阅读
  6. 单链表与双链表

    2024-05-14 18:28:09       24 阅读
  7. 蓝桥杯单片机组——国赛1 各模块的基础模板

    2024-05-14 18:28:09       29 阅读
  8. 微信小程序-禁止页面下拉回弹

    2024-05-14 18:28:09       31 阅读
  9. Frida逆向与利用自动化

    2024-05-14 18:28:09       33 阅读