mysql基础-常用函数汇总

目录

1. 查询技巧

2. 时间函数

2.1 now()

2.2 current_date()

2.3 时间差timestampdiff()与datediff()

2.4 其他时间函数

3. 字符函数

3.1 截取函数

3.2 分割函数

3.3 left与right函数

3.4 其他函数

4. 数字函数

5. 转换函数

5.1 时间转字符

5.1.1 示例

5.1.2 语法

5.2 字符串转时间

5.2.1 示例

5.2.2 语法

5.3 字符转数字

6.聚合函数

6.1 count():取数量。

6.1.1 常用语法

6.1.2 常用形式性能问题

6.2 avg()

6.3 其他

7. 其他函数


1. 查询技巧

首先介绍一种查询用法。 我们可以在数据库管理工具中(例如navicat)直接使用如下方式获取函数结果:

select  函数(入参);

例如获取当前时间,now()函数是获取当前时间

select now();

2. 时间函数

2.1 now()

当前时间,示例如上。

2.2 current_date()

获取当前日期

2.3 时间差timestampdiff()与datediff()

计算两个日期的相差天数:

select datediff('2024-01-09 21:00:00','2024-01-01 21:01:01');

结果:8

计算两个时间的相差值:

select timestampdiff(SECOND,'2024-01-09 21:00:00','2024-01-09 21:01:01');

结果:61

注:timestampdiff()可以输入不同的单位,例如:HOUR、DAY

2.4 其他时间函数

YEAR(date):获取 date 中的年。

MONTH(date):获取 date 中的月。

DAY(date):获取 date 中的日。

HOUR(date):获取 date 中的小时。

MINUTE(date):获取 date 中的分。

SECOND(date):获取 date 中的秒。

感兴趣可以自行试试。

3. 字符函数

3.1 截取函数

select SUBSTRING('20240109214000',1,8) ;

结果:20230109

注:起始位置为1

3.2 分割函数

select SUBSTRING_INDEX('河北_保定_定州', '_', 2);

结果:河北_保定

使用场景: 经常使用于机构表的查询,因为大多数类似机构表的数据存储格式为省县_乡(示例,莫纠结详细真实场景),我们可以使用分割函数来获取某个省的数据,

3.3 left与right函数

select left('20240109214000',8);

结果:20240109

使用场景:针对于使用字符存储日期的数据库中,使用场景非常多。例如:查询创建时间为20240109的订单数据数据(此处我们假设订单表的创建时间是字符类型,格式为:yyyyMMddHHmmss):

select * from t_order where left(create_time,8) ='20240109'

可以自行尝试一下right函数。

3.4 其他函数

length(字段):长度函数

concat(字段1,字段2,...):连接函数(使用常景也比较多)

4. 数字函数

向上取整 CEIL(X) 和 CEILING(X):返回大于等于 X 的最小 INT 型整数。

向下取整 FLOOR(X):返回小于等于 X 的最大 INT 型整数。

舍入函数 ROUND(X,D):X 表示要处理的数,D 表示保留的小数位数,处理的方式是四舍五入。ROUND(X) 表示保留 0 位小数。

5. 转换函数

5.1 时间转字符

5.1.1 示例

select date_format(now(),'%Y-%m');

结果:2024-01

5.1.2 语法

date_format(date, format)
  • date:要格式化的日期或时间值。

  • format:指定日期或时间值的格式

    其中日期格式化选项:

  • %Y:四位数的年份(例如:2023)。

  • %y:两位数的年份(例如:23)。

  • %m:两位数的月份(01-12)。

  • %d:两位数的日(01-31)。

  • %H:24 小时制的小时数(00-23)。

  • %i:两位数的分钟数(00-59)。

  • %s:两位数的秒数(00-59

5.2 字符串转时间

5.2.1 示例

select str_to_date('2024-01-09','%Y-%m-%d');

结果:2024-01-09

5.2.2 语法

STR_TO_DATE(str, format)

  • str 是要转换的字符串。

  • format 是字符串的格式,选项同date_format函数

5.3 字符转数字

直接使用+0即可

select ('1' + 0);

结果 : 1

6.聚合函数

6.1 count():取数量。

6.1.1 常用语法

count(distinct 字段):

示例:查询订单表中共有多少种商品,SQL如下:

select count(distinct good_id) from t_order

6.1.2 常用形式性能问题

请参考这篇文章:mysql进阶-不同的count()性能-CSDN博客

6.2 avg()

avg():求平均值。

示例:

表中存在如下数据:

select avg(score) from t_score;

结果:

这个函数的最终值,是去掉null之后做的除法

6.3 其他

sum():求和

max():求最大值

min():求最小值

7. 其他函数

group_concat 与 find_in_set 这两个函数的使用案例,

请看这篇文章:分类分级数据统计-CSDN博客

本次分享至此。

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

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

相关文章

2024年跨境电商上半年营销日历最全整理

2024年伊始,跨境电商开启新一轮的营销竞技,那么首先需要客户需求,节假日与用户需求息息相关,那么接下来小编为大家整理2024上半年海外都有哪些节日和假期?跨境卖家如何见针对营销日历选品,助力卖家把握2024…

JAVA基础学习笔记-day15-File类与IO流

JAVA基础学习笔记-day15-File类与IO流 1. java.io.File类的使用1.1 概述1.2 构造器1.3 常用方法1、获取文件和目录基本信息2、列出目录的下一级3、File类的重命名功能4、判断功能的方法5、创建、删除功能 2. IO流原理及流的分类2.1 Java IO原理2.2 流的分类2.3 流的API 3. 节点…

图像分类任务的可视化脚本,生成类别json字典文件

1. 前言 之前的图像分类任务可视化,都是在train脚本里, 用torch中dataloader将图片和类别加载,然后利用matplotlib库进行可视化。 如这篇文章中:CNN 卷积神经网络对染色血液细胞分类(blood-cells) 在分类任务中,必定…

在Qt通过查询数据库将查询的结果展示到QTableView控件上

要在Qt中通过查询数据库将查询结果展示到QTableView,你需要遵循以下步骤: 1.设置数据库连接: 首先,确保你已经安装了Qt的MySQL数据库驱动。 在你的主窗口类中,创建一个QSqlDatabase实例并打开数据库连接。 使用QSqlD…

MySQL8.0 升级

将 MySQL8.0.30 升级到 MySQL8.0.32 备份旧数据 rootLAPTOP-FPIQJ438:/data/backup# xtrabackup --backup --userroot --password123456 --socket/tmp/mysql.sock --target-dir/data/backup/ 2024-01-08T16:46:38.98768708:00 0 [Note] [MY-011825] [Xtrabackup] recognized s…

【YOLOv8新玩法】姿态评估寻找链接切割点

学习《OpenCV应用开发:入门、进阶与工程化实践》一书 做真正的OpenCV开发者,从入门到入职,一步到位! 前言 Hello大家好,今天给大家分享一下如何基于深度学习模型训练实现工件切割点位置预测,主要是通过对…

stm32的规则采样与注入采样的理解

规则与注入转换 在STM32中,规则采样(Regular Conversion)和注入采样(Injected Conversion)是用于模数转换的两种不同模式。 规则采样(Regular Conversion):规则采样是STM32中最常用…

【python】TCP测速程序

一、服务端 下面是一个简单的 Python 服务端程序的示例,使用标准库中的 socket 模块来建立一个 TCP 服务器。该服务器接收客户端的连接请求,客户端发送一定大小的数据流以测试 TCP 带宽。 实际场景中带宽测试可能需要更复杂的逻辑来确保测试的准确性。 …

是面试官放水,还是公司实在是太缺人?这都没挂,字节原来这么容易进....

“字节是大企业,是不是很难进去啊?” “在字节做软件测试,能得到很好的发展吗? 一进去就有11.5K,其实也没有想的那么难” 直到现在,心情都还是无比激动! 本人211非科班,之前在字节和…

【python】爬取豆瓣电影排行榜Top250存储到Excel文件中【附源码】

英杰社区https://bbs.csdn.net/topics/617804998 一、背景 近年来,Python在数据爬取和处理方面的应用越来越广泛。本文将介绍一个基于Python的爬虫程 序,用于抓取豆瓣电影Top250的相关信息,并将其保存为Excel文件。 程序包含以下几个部…

Java研学-Servlet3.0文件上传下载

一 文件上传 1 介绍 用户选择本地文件资源保存到服务器上,Servlet需要将二进制数据以文件保存到服务器磁盘中,再将磁盘路径保存到数据库中 2 项目搭建 创建web项目,并添加对应jar包(JSTL) 3 API HttpServletRequest 方法–从请求中解析上…

mysql原理--InnoDB的Buffer Pool

1.缓存的重要性 对于使用 InnoDB 作为存储引擎的表来说,不管是用于存储用户数据的索引(包括聚簇索引和二级索引),还是各种系统数据,都是以 页 的形式存放在 表空间 中的,而所谓的 表空间 只不过是 InnoDB 对…

0_项目git地址——正点原子minifly与crazyflie

1、说明: 在每个专栏的第一篇文章,笔者都会贴出项目的git地址,方便后来者学习和复现; 下面介绍两个项目的官网资料和git地址,最后给出两者的对比; 2、正点原子minifly (1)minifly官网资料下载中心&#…

vue element plus Typography 排版

我们对字体进行统一规范,力求在各个操作系统下都有最佳展示效果。 字体# 字号# LevelFont SizeDemoSupplementary text12px Extra SmallBuild with ElementBody (small)13px SmallBuild with ElementBody14px BaseBuild with ElementSmall Title16px MediumBuild w…

Linux信号处理浅析

一、信号从发送到被处理经历的过程 1、常见概念 (1) 信号阻塞 阻塞,即被进程拉黑,信号被发送后,分为两种情况,一种是被阻塞了(被拉黑了),一种是没有被阻塞。 (2) 信号未决 在信号被进程处理…

文件夹重命名方法:文件夹名称随机数字命名,提高文件管理效率的秘诀

在数字时代,每天都会创建、接收和存储大量的文件。那如何有效地管理和查找这些文件?下面云炫文件管理器用简单的方法使用随机数字给文件夹命名。掌握方法可以快速识别和分类文件,提高工作效率。 文件夹随机数字命名前后效果图。 文件夹名称…

Tomcat源码解析(一): Tomcat整体架构

Tomcat源码系列文章 Tomcat源码解析(一): Tomcat整体架构 目录 一、Tomcat整体架构1、Tomcat两个核心组件功能2、Tomcat支持的多种I/O模型和应用层协议 二、Connector连接器1、连接器功能汇总2、ProtocolHandler组件2.1、Endpoint2.2、Processor 3、Adapter组件 三…

向量数据库:Milvus

特性 Milvus由Go(63.4%),Python(17.0%),C(16.6%),Shell(1.3%)等语言开发开发,支持python,go,java接口(C,Rust,c#等语言还在开发中),支持单机、集群部署,支持CPU、GPU运算。Milvus 中的所有搜索和查询操作都在内存中执行…

stable diffusion 人物高级提示词(二)衣物、身材

一、衣服大类 英文中文Shirt衬衫Blouse女式衬衫Dress连衣裙Skirt裙子Pants裤子Jeans牛仔裤Swimsuit泳衣Underwear内衣Bra文胸Panties内裤Stockings长筒袜Shoes鞋子Socks袜子 二、细分分类 dress 是连衣裙: 英文解释Formal Dress正式礼服,通常用于正式…

C# 一看就懂的装箱拆箱案例

文章目录 装箱(Boxing)拆箱(Unboxing)编程语言中的装箱与拆箱优缺点 在C#中,装箱(Boxing)和拆箱(Unboxing)是值类型与引用类型之间相互转换的过程。 装箱(Box…