【MySQL的内置函数】

文章目录

  • 一、日期函数
    • 1.current_date()
    • 2.current_time()
    • 3.current_timestamp
    • 4. date_add 穿越未来
    • 5.date_sub 回到过去
    • 6.datediff
    • 案例
  • 二、字符串函数
    • 2.1charset
    • 2.2 concat ——拼接字符串
    • 2.3 ucase——转化成大写
    • 2.4 lcase——转化成小写
    • 2.5 left()
    • 2.6replace()
    • 2.7substring()
    • 2.8 ltrim 和rtrim
    • 使用案例
  • 三、数学函数
  • 四、其他函数
    • user()
    • md5()
    • ifnull(val1,val2)



一、日期函数

在这里插入图片描述

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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/10188.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树与二叉树之间的转换

树转化成二叉树&#xff1a;兄弟相连留长子 1.加线&#xff1a;在兄弟之间加一条线 2.抹线&#xff1a;对每个结点&#xff0c;除了其左孩子外&#xff0c;去除其与其余孩子之间的关系 3.旋转&#xff1a;以树的根结点为轴心&#xff0c;将整树顺时针转45 二叉树转化成为树…

苹果 iPhone 15 Pro Max 称霸:智能手机市场势不可挡

苹果 iPhone 15 Pro Max 称霸&#xff1a;智能手机市场势不可挡 概述 在拥挤且竞争激烈的智能手机市场中&#xff0c;苹果的 iPhone 15 Pro Max 成为明显的赢家&#xff0c;在 2024 年第一季度最畅销智能手机排行榜上名列前茅。根据 Counterpoint Research 的数据&#xff0c…

将来会是Python、Java、Golang三足鼎立吗?

在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「 Java的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; 软件工程里没有银弹&#xff…

uniapp、web网页跨站数据交互及通讯

来来来&#xff0c;说说你的创作灵感&#xff01;这就跟吃饭睡觉一样&#xff0c;饿了就找吃的&#xff0c;渴了就倒水张口灌。 最近一个多月实在是忙的没再更新日志&#xff0c;好多粉丝私信说之前的创作于他们而言非常有用&#xff01;受益菲浅&#xff0c;这里非常感谢粉丝…

前端nginx(windows操作系统)学习配置开发验证

Nginx概述 Nginx 作为负载均衡在 Linux 系统上具备很好的并发性能&#xff0c;并且占用极小的内存。但是在 Windows 系统上并不支撑较高并发&#xff0c;所以在Windows系统上选用Nginx作为负载均衡&#xff0c;需要考虑并发情况。 若并发需求低于 300&#xff0c;部署集群仅以…

使用 Valgrind 检测内存泄漏

Valgrind 是一个编程工具&#xff0c;用于内存调试、内存泄漏检测以及性能分析。Valgrind 工具集中的 Memcheck 是用于检测内存管理和线程错误的主要工具。 参考&#xff1a;https://blog.csdn.net/weixin_44046545/article/details/138417524 1、安装 Valgrind sudo apt-ge…

汇昌联信科技:做拼多多网店要押金吗?

做拼多多网店要押金吗?”这个问题&#xff0c;其实与拼多多的平台规则有关。在开店之前&#xff0c;商家需要详细了解平台的各项规定和费用构成&#xff0c;这样才能做好充足的准备。 一、明确回答问题 做拼多多网店&#xff0c;不需要支付押金。拼多多的入驻门槛相对较低&…

【本地部署及云化部署】

文章目录 本地部署及云化部署介绍 文章目录 文章目录一、本地部署模式二、云化部署模式总结 一、本地部署模式 需建设专业化机房&#xff0c;系统应用、前端软件全部安装到本地服务器上。需要专业的IT、网络安全、DBA、电气化工程师进行维护。近些年勒索病毒安全事件频发&am…

k8s设置在任意node里执行kubectl 命令

一、问题 正常来讲kubectl 只能在master node 里运行 当我们尝试在某个 node 节点来执行时&#xff0c; 通常会遇到下面错误 执行错误&#xff1a;The connection to the server localhost:8080 was refused - did you specify the 原因&#xff1a;因为k8s的各个组建&#xf…

安装配置pushgateway

环境 主机名 服务器IP 系统 说明 Ubuntu -1 192.168.1.144 Ubuntu.20.04 docker安装Prometheus docker 192.168.1.140 cent…

KAN核心团队震撼力作!MIT华人用AI首次发现物理学全新方程 | 最新快讯

新智元报道 编辑&#xff1a;Aeneas 好困 刚刚提出了 KAN 的 MIT 物理学家 Max Tegmark 和北大校友刘子鸣&#xff0c;又有一项重磅研究问世了&#xff01;团队发现&#xff0c;它们用 AI 发现了物理学中的新方程&#xff0c;从此&#xff0c;AI 很可能被引入物理学研究领域&am…

东芝移动硬盘是固态还是机械硬盘?数据丢失怎么办

东芝移动硬盘凭借出色的性能和稳定性&#xff0c;在市场上备受赞誉。那么&#xff0c;如何判断自己手中的东芝移动硬盘是固态硬盘还是机械硬盘呢&#xff1f;本文将指导您如何进行这一判断&#xff0c;并深入探讨固态硬盘与机械硬盘之间的区别。同时&#xff0c;针对数据丢失这…

RustDesk 自建服务器部署和使用教程

RustDesk 是一个强大的开源远程桌面软件&#xff0c;是中国开发者的作品&#xff0c;它使用 Rust 编程语言构建&#xff0c;提供安全、高效、跨平台的远程访问体验。可以说是目前全球最火的开源远程桌面软件了&#xff0c;GitHub 星星数量达到了惊人的 64k&#xff01; 与 Team…

【Linux】基础命令,文件处理,用户,vim编辑器,文件压缩

常用命令及参数&#xff1a;dir表示文件夹&#xff0c;file表示文件&#xff08;file可表示其他目录下的文件&#xff09; pwd命令&#xff1b;查看当前所属文件夹&#xff08;print working directory&#xff09; ls [选项] dir&#xff1b;查看当前、指定文件夹目录内容&am…

切换tomcat使用的jdk版本

改一下这俩地方 用这个启动时候 就可以使用对应的jdk版本了 java的classpath内容如下&#xff08;换成自己的&#xff09;&#xff1a; E:\A_code\environment\tomcat\Tomcat9.0\bin\bootstrap.jar;E:\A_code\environment\tomcat\Tomcat9.0\bin\tomcat-juli.jar

存储卡如何下载歌曲?

作为存储芯片及存储卡的原厂&#xff0c;我们了解客户关于如何在存储卡上下载歌曲的疑问。在这篇文章中&#xff0c;我们将详细解析存储卡的使用方法和歌曲下载步骤&#xff0c;帮助客户顺利完成歌曲下载并存储到存储卡中。 1. 选择合适的存储卡 首先&#xff0c;确保您选择的存…

sql-labs(11-20)

1.less-11 1.判断类型 根据测试在使用 " 不会报错&#xff0c; 会报错&#xff0c;所以他是字符型的并且被单引号闭合&#xff0c;而且只有用户 登陆成功才会显示数据。所以先尝试报错注入 2.爆数据库 and updatexml(2,concat(0x7e,(select database()),0x7e),2)-- 3.爆数…

图文教程 | 2024年最新VSCode下载和安装教程c/c++环境配置,json文件详解,实用插件分享

前言 &#x1f4e2;博客主页&#xff1a;程序源⠀-CSDN博客 &#x1f4e2;欢迎点赞&#x1f44d;收藏⭐留言&#x1f4dd;如有错误敬请指正&#xff01; 由于重装电脑&#xff0c;需要重新安装VsCode&#xff0c;记录安装配置过程。 一、VSCode下载 官网地址&#xff1a; Vis…

【激活函数--中】激活函数和阶跃函数的可视化及对比

文章目录 一、Python中绘制阶跃函数的图形二、实现和可视化Sigmoid函数2.1 Python实现2.2 可视化Sigmoid函数 三、比较Sigmoid函数与阶跃函数3.1 Sigmoid函数与阶跃函数的差异3.2 Sigmoid函数与阶跃函数的共同点 一、Python中绘制阶跃函数的图形 在Python中实现阶跃函数的代码…

ZFS 文件系统结构及 ZFS 文件系统数据恢复

ZFS是一种革命性的文件系统&#xff0c;它遵循完全不同的文件系统管理方法&#xff0c;同时提供目前其他文件系统无法提供的新功能和优势。ZFS 可靠、可扩展且易于管理。 它放弃了卷的概念&#xff0c;从而摆脱了传统的文件系统原则。另外&#xff0c;ZFS 提供更复杂的存储池&…