【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。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计 | springboot+vue小米商城 购物网站管理系统(源码+论文+讲解视频)

1&#xff0c;项目背景 国家大力推进信息化建设的大背景下&#xff0c;城市网络基础设施和信息化应用水平得到了极大的提高和提高。特别是在经济发达的沿海地区&#xff0c;商业和服务业也比较发达&#xff0c;公众接受新事物的能力和消费水平也比较高。开展商贸流通产业的信息…

无管理员权限linux系统手动切换cuda版本

查看当前计算机cudatoolkit的版本 nvcc -V下载 如果想切换到指定版本&#xff0c;则去官网下载&#xff08;10.1版本为例&#xff09;&#xff1a; cuda下载 cudnn下载 将下载好的文件放到服务器的文件夹中 安装 安装cuda sh cuda_10.1.243_418.87.00_linux.run选择接受 …

教你一招,一键解锁云盘与NAS自动同步!

想象一下 数字生活就像一座繁忙的都市 云盘是你的空中阁楼 俯瞰着整个城市的美景 而NAS是坚实的地基 承载着所有珍贵的记忆 那如何让数据在 城市的高空与地面之间自由穿梭呢&#xff1f; 别急&#xff01;铁威马来帮你&#xff01; TOS 6创新功能&#xff1a;云盘挂载 …

STM32CubeMx 生成IAR工程Jlink无法Debug

肯定是工程设置问题喽&#xff1a; 设置OK!

java小知识:图片添加中文水印,部署到linux环境乱码解决

源码如下&#xff1a; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.Objects;/*** 图片添加文字水印** param so…

Rust学习笔记(上)

前言 笔记的内容主要参考与《Rust 程序设计语言》&#xff0c;一些也参考了《通过例子学 Rust》和《Rust语言圣经》。 Rust学习笔记分为上中下&#xff0c;其它两个地址在Rust学习笔记&#xff08;中&#xff09;和Rust学习笔记&#xff08;下&#xff09;。 编译与运行 Ru…

璩静也是受害者

5月7日&#xff0c;“百度副总裁璩静称员工闹分手提离职秒批”话题登上了热搜。在短视频里&#xff0c;璩静是会连续出差50天的“公关人”&#xff0c;没有春节周末、没有假期&#xff0c;她会说“员工闹分手提离职我秒批&#xff0c;为什么要考虑员工的家庭”。有网友对其视频…

知识库优劣详解:牵牛易帮 VS HelpLook AI知识库

知识库不仅可以帮助企业有效管理知识&#xff0c;还能提高员工工作效率和质量&#xff0c;因此越来越多的企业选择搭建知识库。在众多搭建知识库的工具中&#xff0c;有的企业会选择免费的牵牛易帮&#xff0c;有的则会更加倾向于付费的HelpLook AI知识库。其中的原因有很多。今…

力扣数据库题库学习(5.11日)--176. 第二高的薪水

176. 第二高的薪水 问题链接 分析 题目要求&#xff1a; 查询并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水&#xff0c;查询应该返回 null 。 下面是示例&#xff1a; 查询结果如下例所示。 示例 1&#xff1a;输入&#xff1a; Employee 表&#xff1a; --…

Java——类与对象

目录 一、面向对象的初步认识 1.1 什么是面向对象 1.2 面向对象与面向过程 二、类的定义与使用 2.1 简单认识类 2.2 类的定义格式 三、类的实例化 3.1 什么是实例化 3.2 类和对象的说明 四、this引用 4.1 为什么要有this引用 4.2 什么是this引用 ​编辑 4.3 this引用…

verilog中输入序列连续的序列检测

编写一个序列检测模块&#xff0c;检测输入信号a是否满足01110001序列&#xff0c;当信号满足该序列&#xff0c;给出指示信号match。 模块的接口信号图如下&#xff1a; 代码如下&#xff1a; &#xff08;CSDN代码块不支持Verilog&#xff0c;代码复制到notepad编辑器中&am…

pytest + yaml 框架 - 录制接口转 yaml 用例实现

pytest yaml 框架基本不用写 python 代码&#xff0c;只需写yaml 文件用例就能实现接口自动化。 现在引入接口录制功能&#xff0c;连 yaml 文件也不用写了&#xff0c;点点点就能生成 yaml 用例文件了。 录制功能在v1.3.4版本上实现 pip instal pytest-yaml-yoyo 环境准备 …

基于RFID的博物馆藏品管理系统

传统的博物馆藏品管理主要依赖人工记录和物理检查&#xff0c;这样的管理方式耗时耗力&#xff0c;并且容易出现记录错误。另外&#xff0c;对于藏品的定位和监控也存在一定的局限性。 RFID是一种无线通信技术&#xff0c;通过无线电频率识别标签上存储的信息&#xff0c;实现物…

代码随想录第五十天|最佳买卖股票时机含冷冻期、买卖股票的最佳时机含手续费

题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 最佳买卖股票时机含冷冻期与打家劫舍的题目有异曲同工之妙&#xff0c;主要是出现了天数的间隔&#xff0c;一次需要在买卖股票的最佳时机II 题目上做一点调整&#xff0c;代码如下&#xff1a; 如代码所示&…

24数维杯ABC题思路已更新!!!!

24数维杯A题保姆级思路&#xff0b;配套代码&#xff0b;后续参考论文 简单麦麦https://www.jdmm.cc/file/2710639/ 24数维杯B题保姆级思路&#xff0b;可执行代码&#xff0b;后续参考论文 简单麦麦https://www.jdmm.cc/file/2710640/ 24数维杯C题保姆级思路&#xff0b;可执…

在wine里启动Arctium Game Launcher.exe

尝试在wine里启动Arctium Game Launcher.exe 第一次直接启动wine Arctium Game Launcher.exe&#xff0c;结果报错&#xff0c;因为字符的因素&#xff0c;看不出是为啥报错。不过一般是c库有些问题。 为了安装c库&#xff0c;尝试了下载Visual c 安装&#xff0c;失败。尝试…

Windows 11 Manager (Win11系统优化大师) 中文破姐版 v1.4.3

01 软件介绍 ​Windows 11 Manager v1.4.3是一款综合性的系统优化工具&#xff0c;专为Win11设计。该工具包含超过40种功能&#xff0c;旨在全方位提升操作系统的性能。通过这些工具&#xff0c;用户可以对Windows 11进行深度优化和微调&#xff0c;清除不必要的文件&#xff…

FileLink跨网文件传输医疗行业解决方案

随着医疗行业的快速发展&#xff0c;医疗机构之间的信息共享和文件传输需求日益增加。然而&#xff0c;由于网络环境的复杂性和数据安全性的要求&#xff0c;传统的文件传输方式已经无法满足医疗行业的需求。为此&#xff0c;我们推出了FileLink跨网文件传输医疗行业解决方案&a…

矿用泄爆装置之——水封式防爆器使用说明

矿用泄爆装置之——水封式防爆器使用说明。 在这个快节奏的时代&#xff0c;您需要一款能够与您一同成长&#xff0c;满足您需求的产品。我们为您带来的不仅仅是一件产品&#xff0c;更是一份属于您不一样的新体验。【1-5-9】 一、水封式防爆器产品使用介绍 安装在抽放瓦斯泵进…

interview_bak

flink内存管理 JVM 存在的几个问题: Java 对象存储密度低。一个只包含 boolean 属性的对象占用了16个字节内存:对象头占了8个,boolean 属性占了1个,对齐填充占了7个。而实际上只需要一个bit(1/8字节)就够了。Full GC 会极大地影响性能,尤其是为了处理更大数据而开了很大…