【MySQL】 MySQL的内置函数——日期函数、字符串函数、数学函数、聚合函数、其他函数

news2025/1/11 11:42:43

文章目录

  • MySQL
    • 1. 日期函数
      • 1.1 查看时间
      • 1.2 对时间进行计算
    • 2. 字符串函数
      • 2.1 字符串查找
      • 2.2 字符串修改显示
    • 3. 数学函数
    • 4. 聚合函数
    • 5. 其他函数

MySQL

在这里插入图片描述

  

1. 日期函数

  在MySQL中,提供了多种时间函数供我们使用,其中包括用于查看时间的函数和计算日期的函数。以下是一些常用的MySQL时间函数及其描述:

函数名称描述
current date()当前日期
current time()当前时间
current timestamp()当前时间戳
date(datetime)返回datetime参数的日期部分
date add(date, interval d value type)在date中添加日期或时间,interval后的数值单位可以是:year minute secondday
date sub(date, interval d value type)在date中减去日期或时间,interval后的数值单位可以是:year minute second day
datediff(datel, date2)两个日期的差,单位是天
now()当前日期时间

  

1.1 查看时间

获取当前的年月日:

select current_date();

在这里插入图片描述
  

获取当前的时分秒:

select current_time();

在这里插入图片描述

  
获取当前的时间戳:

  这里的时间戳相当于是年月日加上时分秒。

select current_timestamp();

  

  

1.2 对时间进行计算

在日期的基础上加日期:

  DATE_ADD() 是 MySQL 中的一个函数,用于在日期上添加指定的时间间隔。它的语法如下:

DATE_ADD(date, INTERVAL expr unit);

  date 是要操作的日期值。

  expr 是希望添加的时间间隔数值。

  unit 是时间间隔的单位,例如 DAY、MONTH、YEAR 等。

  

select date_add('2024-3-17',interval 10 day);

在这里插入图片描述

  

在日期的基础上减去时间:

  DATE_SUB() 是 MySQL 中的一个函数,用于从日期时间值中减去指定的时间间隔。它允许你根据需求在日期或日期时间字段中减去年、月、日、小时、分钟或秒钟等时间单位。以下是 DATE_SUB() 函数的基本语法:

DATE_SUB(date, INTERVAL expr unit);

  date 是要进行调整的日期或日期时间表达式。

  expr 是一个表示时间间隔大小的表达式,可以是一个整数或者一个与 date 类型相同的表达式。

  unit 是时间单位,如 YEAR、MONTH、DAY、HOUR、MINUTE、SECOND 等。

  

select date_sub('2024-3-17',interval 10 day);

在这里插入图片描述

  

计算两个日期之间相差多少天:

  DATEDIFF 用于计算两个日期之间的差异。以下是 DATEDIFF 函数的介绍:

DATEDIFF(end_date, start_date);

  end_date:表示要计算的时间段的结束日期。

  start_date:表示要计算的时间段的开始日期。

  

select datediff('2024-3-17','2023-3-17');

在这里插入图片描述

  

例子:创建一张留言表,用于记录用户发送信息的时间:

  我们使用 id 作为主键同时进行自增长,设置内容不为空,同时包含一个 datetime 类型的变量 sendtime 。

mysql> create table msg(
    -> id int primary key auto_increment,
    -> content varchar(30) not null,
    -> sendtime datetime
    -> );

在这里插入图片描述
  

打印表结构:

desc msg;

在这里插入图片描述

  

插入数据并且打印所有信息:

mysql> insert into msg(content,sendtime) values('hello',now());

mysql> insert into msg(content,sendtime) values('你好',now());

mysql> insert into msg(content,sendtime) values('你也好',now());

在这里插入图片描述
  

select * from msg;

s

  

打印所有留言信息,只显示日期,不显示时间:

select content ,date(sendtime) from msg;

在这里插入图片描述
  

打印所有留言信息,只显示时间,不显示日期:

select content ,time(sendtime) from msg;

在这里插入图片描述
  

只打印两分钟之内发布的信息:

select * from msg where date_add(sendtime,interval 2 minute)>now();

在这里插入图片描述
            

2. 字符串函数

  MySQL 提供了许多字符串函数,用于在查询中处理和操作字符串数据。以下是一些常用的 MySQL 字符串函数及其描述:

函数名称描述
charset(str)返回字符串字符集
concat(string2[,…])连接字符串
instr(string,substring)返回substring在string中出现的位置,没有返回0
ucase(string2)转换成大写
lcase(string2)转换成小写
left(string2,length)从string2中的左边起取length个字符
length(string)string的长度
replace(str,search str,replace str)在str中用replace_str替换search str
strcmp(stringl, string2)逐字符比较两字符串大小
substring(str,position length])从str的postion开始,取length个字符
ltrim(string) rtrim(string)trim(string)去除前空格或后空格

  

2.1 字符串查找

创建一张表其中包括学生的 id 、姓名和语文数学成绩:

mysql> create table emp(
    -> id int primary key auto_increment,
    -> chinese int comment '语文成绩',
    -> math int comment '数学成绩',
    -> name varchar(20)
    -> );

在这里插入图片描述

  

插入学生的信息并且打印查看:

mysql> insert into emp(chinese,math,name) values(90,70,'张三');

mysql> insert into emp(chinese,math,name) values(87,70,'李四');

mysql> insert into emp(chinese,math,name) values(85,80,'王五');

mysql> select * from emp;

在这里插入图片描述
  

获取emp表的name列的字符集:

select charset(name) from emp;

在这里插入图片描述

  

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

  CONCAT函数用于连接两个或多个字符串值,并返回连接后的字符串。这个函数非常有用,特别是当我们需要将多个字段或值组合成一个字符串时。

CONCAT(str1, str2, ..., strN)

  str1, str2, …, strN:这是要连接的字符串。它们可以是字符串值、列名、其他CONCAT函数,或者返回字符串值的表达式。

  CONCAT函数返回一个字符串,该字符串是输入字符串参数的连接。

  

select concat(name,'的语文成绩为',chinese,'分,数学成绩为',math,'分') 
as '分数' from emp;

在这里插入图片描述

  

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

  因为这里的字符集编码为utf8,utf8中一个汉字占三个字节的大小, 在文段中,name都是两个文字,所以输出的都是6。

select length(name) ,name from emp;

在这里插入图片描述

  

2.2 字符串修改显示

将emp表中所有名字中有 三 的替换成 山:

select replace(name,'三','山'),name from emp;

在这里插入图片描述

  

截取emp表中name字段的第二个到第三个字符:

  SUBSTRING 函数用于从一个字符串中提取子字符串。

SUBSTRING(str, pos, len)

  str:需要提取子字符串的原始字符串。

  pos:开始提取的位置(基于1的索引)。

  len:可选参数,表示要提取的字符数。如果省略,将返回从pos开始到字符串末尾的所有字符。

  另一种形式:

SUBSTRING(str FROM pos FOR len)

  FROM pos:指定开始提取的位置。

  FOR len:指定要提取的字符数。

  

select substring(name,1,1),name from emp;

在这里插入图片描述

  

  以上对字符串的修改都不会影响到原来的字段信息,只是改变了显示的字符串,若想要更改字段中的字符串,请进行CURD操作。

在这里插入图片描述

  

以首字母小写的方式显示所有学生的姓名:

  LCASE(或LOWER)函数用于将字符串转换为小写。这个函数在处理大小写不敏感的查询或格式化输出时非常有用。

LCASE(str)

  或:

LOWER(str)

  其中 str 是要转换为小写的字符串

  

select concat(lcase(substring(name,1,1)),substring(name,2)) from emp;

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

            

3. 数学函数

  MySQL 提供了丰富的数学函数,用于在查询中执行各种数学运算。以下是一些常用的 MySQL 数学函数及其描述:

函数名称描述
abs (number)绝对值函数
bin(decimal number)十进制转换二进制
hex(decimalNumber)转换成十六进制
conv(number,from base,to base)进制转换
ceiling(number)向上去整
floor (number)向下去整
format (number,decimal places)格式化,保留小数位数
hex(decimalNumber)转换成十六进制
rand()返回随机浮点数,范围[0.0,1.0)
mod(number,denominator)取模,求余

  

绝对值:

select abs(-32.4);

在这里插入图片描述

  

向上取整:

select ceiling(54.3);

在这里插入图片描述

  

向下取整:

select floor(54.3);

在这里插入图片描述

  

保留2位小数位数(小数四舍五入):

select format(12.34567,3);

在这里插入图片描述

  

产生随机数:

select rand();

在这里插入图片描述

            

4. 聚合函数

  MySQL 提供了多种聚合函数,用于对一组值执行计算并返回单个值。这些函数在数据分析和报告生成中特别有用,因为它们允许你快速总结大量数据。以下是一些常用的 MySQL 聚合函数及其描述:

函数说明
COUNT([DISTINCT] expr)返回查询到的数据的 数量
SUM([DISTINCT] expr)返回查询到的数据的 总和,不是数字没有意义
AVG([DISTINCT] expr)返回查询到的数据的 平均值,不是数字没有意义
MAX([DISTINCT] expr)返回查询到的数据的 最大值,不是数字没有意义
MIN([DISTINCT] expr)返回查询到的数据的 最小值,不是数字没有意义

  

统计学生的个数:

select count(name) from emp;

在这里插入图片描述
  

统计学生数学成绩的总分:

select sum(math) from emp;

在这里插入图片描述

  

计算学生的平局成绩:

select avg(chinese+math) 平均分 from emp;

在这里插入图片描述
  

打印数学成绩的最高分:

select max(math) from emp;

在这里插入图片描述

            

5. 其他函数

查询当前用户:

select user();

在这里插入图片描述
  

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

select md5('admin')

在这里插入图片描述
  

database()显示当前正在使用的数据库:

select database();

在这里插入图片描述

  

password()函数,MySQL数据库使用该函数对用户加密:

select password('root');

在这里插入图片描述

  

ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值:

select ifnull('abc', '123');

在这里插入图片描述

            

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

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

相关文章

Vue2 引入使用ElementUI详解

目录 1 安装2 引入2.1 全局引入2.1.1 引入2.1.2 使用 2.2 按需引入2.2.1 引入2.2.2 使用 3 总结 1 安装 推荐使用 npm 的方式安装,它能更好地和 webpack打包工具配合使用。(本项目使用安装方式) npm i element-ui -S也可以使用其他的包管理…

网络学习:邻居发现协议NDP

目录 前言: 一、报文内容 二、地址解析----NS/NA 目标的被请求组播IP地址 邻居不可达性检测: 重复地址检测 路由器发现 地址自动配置 默认路由器优先级和路由信息发现 重定向 前言: 邻居发现协议NDP(Neighbor Discovery…

RequestResponse使用

文章目录 一、Request&Response介绍二、Request 继承体系三、Request 获取请求数据1、获取请求数据方法(1)、请求行(2)、请求头(3)、请求体 2、通过方式获取请求参数3、IDEA模板创建Servlet4、请求参数…

作品展示ETL

1、ETL 作业定义、作业导入、控件拖拽、执行、监控、稽核、告警、报告导出、定时设定 欧洲某国电信系统数据割接作业定义中文页面(作业顶层,可切英文,按F1弹当前页面帮助) 涉及文件拆分、文件到mysql、库到库、数据清洗、数据转…

verilog 从入门到看得懂---verilog 的基本语法数据和运算

笔者之前主要是使用c语言和matab 进行编程,从2024年年初开始接触verilog,通过了一周的学习,基本上对verilog 的语法有了基本认知。总统来说,verilog 的语法还是很简单的,主要难点是verilog是并行运行,并且强…

【LabVIEW FPGA入门】插值、输出线性波形

概述 NI 的可重配置 I/O (RIO) 硬件使开发人员能够创建自定义硬件,以在坚固耐用、高性能和模块化架构中执行许多任务,而无需了解低级 EDA 工具或硬件设计。使用 RIO 硬件轻松实现的此类任务之一是模拟波形生成。本教程介绍了使用 CompactRIO 硬件和 LabV…

旧华硕电脑开机非常慢 电脑开机黑屏很久才显示品牌logo导致整体开机速度非常的慢怎么办

前提条件 电池需要20%(就是电池没有报废)且电脑接好电源,千万别断电,电脑会变成砖头的 解决办法 更新bios即可解决,去对应品牌官网下载最新的bios版本就行了 网上都是一些更新驱动啊

VS2019加QT5.14中Please assign a Qt installation in ‘Qt Project Settings‘.问题的解决

第一篇: 原文链接:https://blog.csdn.net/aoxuestudy/article/details/124312629 error:There’ no Qt version assigned to project mdi.vcxproj for configuration release/x64.Please assign a Qt installation in “Qt Project Settings”. 一、分…

数据分析 | Matplotlib

Matplotlib 是 Python 中常用的 2D 绘图库,它能轻松地将数据进行可视化,作出精美的图表。 绘制折线图: import matplotlib.pyplot as plt #时间 x[周一,周二,周三,周四,周五,周六,周日] #能量值 y[61,72,66,79,80,88,85] # 用来设置字体样式…

RunnerGo测试平台的安装和使用

文章适用于想RunnerGo入门的同学,本人主要是后端,这里做一个入门的学习记录。想深入适用RunnerGo的同学可以参考官网文档: https://wiki.runnergo.cn/docs/ 这里我测试的代码是之前搭建的一个前后端分离小demo,代码地址是https:/…

交流互动系统|基于springboot框架+ Mysql+Java+Tomcat的交流互动系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java,ssm,springboot的平台设计与实现项目系统开发资源(可…

【UE5】非持枪趴姿移动混合空间

项目资源文末百度网盘自取 创建角色在非持枪状态趴姿移动的动画混合空间 在BlendSpace文件夹中单击右键选择 动画(Animation) 中的混合空间(Blend Space) 选择SK_Female_Skeleton 命名为BS_NormaProne 打开BS_NormaProne 水平轴表示角色的方向,命名为Directi…

腾讯云服务器配置2核4G5M带宽是什么意思?

腾讯云服务器2核4G5M带宽配置是代表什么?代表2核CPU、4G内存、5M公网带宽,这是一款轻量应用服务器,系统盘为60GB SSD云硬盘,活动页面 txybk.com/go/txy 活动打开如下图: 腾讯云2核4G5M服务器 如上图所示,这…

Linux 用户及用户组管理

目录 1——添加用户(useradd) 2——删除用户:userdel 3——修改用户:usermod 4——记住用户操作:history 5——查看用户信息:id 6——用户切换:su 问题1:遇到当前的用户不能使…

[蓝桥杯 2021 省 A] 左孩子右兄弟

一、问题描述 P8744 [蓝桥杯 2021 省 A] 左孩子右兄弟 二、问题简析 2.1 左孩子右兄弟 首先,我们要了解怎么通过“左孩子右兄弟”表示法将多叉树转化为二叉树:对于一棵多叉树,一个父节点有多个子节点,将第一个子节点作为父节点…

警惕MKP勒索病毒,您需要知道的预防和恢复方法。

引言: 在网络世界中,.mkp勒索病毒是一股威胁不可小觑的黑暗势力。它以其毒辣的加密手段威胁着我们的数据安全。本文将深入介绍.mkp勒索病毒,揭示如何恢复被其加密的数据文件,并分享一些预防措施,助您在数字世界中安全…

Linux:网络相关概念的认识

文章目录 基本认知数据跨网络传输初识ip地址 端口号端口号的理解 本篇是基于前面对于网络的基本框架搭建,进而进行相关概念的进一步理解,为后续准备 基本认知 那么首先总结一下一些基本的相关结论性的信息 对于任何协议来说,它本身都应该拥…

Langchain-chatchat+ChatGlm3-6b部署

我的环境 台式机 内存:16GB 显卡:GTX1060-6G 1. 基础环境准备 1.1. 安装anaconda,创建环境python版本3.11 conda create -n chatglm3 python3.11 conda activate chatglm3 1.2. 搭建cuda环境 # 查看cuda版本,版本是CUDA V…

如何订阅Midjourney

Midjourney介绍 Midjourney作为目前AI绘画领域效果卓越且备受青睐的工具,对于新用户而言,可能无法享受到免费试用的机会。因此,为了持续利用这款软件进行绘画创作,用户需要购买会员资格并开通订阅服务。那么,关于midj…

Redis数据存储的细节

原文章地址 : 深入学习Redis(1):Redis内存模型 - 编程迷思 - 博客园 (cnblogs.com) 1.概述 关于Redis数据存储的细节,涉及到内存分配器(如jemalloc)、简单动态字符串(SDS)、5种对象…