MySQL常用函数(总结)详细版
1. 字符串函数
CONCAT(str1, str2, ...):将多个字符串连接成一个字符串。
SELECT CONCAT('Hello', ' ', 'World');
LENGTH(str):返回字符串的长度(字节数)。
SELECT LENGTH('Hello');
SUBSTRING(str, pos, len):从字符串str的pos位置开始,截取长度为len的子字符串。
SELECT SUBSTRING('Hello World', 7, 5); -- 返回 'World'
REPLACE(str, from_str, to_str):将字符串中的from_str替换为to_str。
SELECT REPLACE('Hello World', 'World', 'MySQL');
UPPER(str)/LOWER(str):将字符串转换为大写或小写。
c
SELECT UPPER('hello'); -- 返回 'HELLO'
INSTR(str, substr):返回子字符串substr在字符串str中首次出现的位置(从1开始),如果没有找到则返回0。
SELECT INSTR('Hello World', 'World'); -- 返回7
LPAD(str, len, padstr)/RPAD(str, len, padstr):在字符串左侧或右侧用padstr填充,使字符串达到指定长度len。
SELECT LPAD('123', 5, '0'); -- 返回 '00123'
TRIM([remstr] FROM str):移除字符串str左侧或右侧的指定字符remstr(默认为空格)。
SELECT TRIM(' Hello '); -- 返回 'Hello'
REPEAT(str, count):重复字符串str,count次。
SELECT REPEAT('abc', 3); -- 返回 'abcabcabc'
REVERSE(str):返回字符串str的逆序。
SELECT REVERSE('abc'); -- 返回 'cba'
2. 日期和时间函数
NOW():返回当前日期和时间。
SELECT NOW();-- '2024-08-05 17:42:56'
CURDATE():返回当前日期,不带时间部分。
SELECT CURDATE();-- '2024-08-05'
DATE_FORMAT(date, format):按照指定的格式返回日期值。
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');-- '2024-08-05 17:45:07'SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');-- '2024-08-05'
DATE_ADD(date, INTERVAL expr unit):在指定日期上添加时间间隔。
SELECT DATE_ADD(NOW(), INTERVAL 7 DAY); -- 当前日期加7天 '2024-08-12 17:46:29'
DATEDIFF(date1, date2):返回两个日期之间的天数差。
SELECT DATEDIFF('2024-12-31', '2024-01-01'); -- 返回364
YEAR(date)/MONTH(date)/DAY(date):分别返回日期的年、月、日部分。
SELECT YEAR('2024-09-05'); -- 返回 2024
SELECT MONTH('2024-09-05'); -- 返回 9
SELECT DAY('2024-09-05'); -- 返回 5
DAYNAME(date)/MONTHNAME(date):返回日期对应的星期几或月份名称。
SELECT DAYNAME('2024-09-05'); -- 返回 'Thursday'
SELECT MONTHNAME('2024-09-05'); -- 返回 'September'
WEEK(date)/WEEKDAY(date):返回日期属于一年中的第几周(从0开始),WEEKDAY返回该日期是星期几(0为星期一,6为星期日)。
SELECT WEEK('2024-09-05'); -- 返回 36(表示第36周)
SELECT WEEKDAY('2024-09-05'); -- 返回 3(表示星期四)
TIME(date):从日期或时间值中提取时间部分。
SELECT TIME('2024-09-05 12:30:45'); -- 返回 '12:30:45'
TIMESTAMPDIFF(unit, datetime1, datetime2):返回两个日期或时间的差值,单位可以是SECOND,MINUTE,HOUR,DAY,MONTH,YEAR等。
SELECT TIMESTAMPDIFF(DAY, '2024-01-01', '2024-12-31'); -- 返回 364
STR_TO_DATE(str, format):根据给定的格式将字符串转换为日期。
SELECT STR_TO_DATE('01-09-2024', '%d-%m-%Y'); -- 返回 '2024-09-01'
3. 数值函数
ABS(x):返回数值x的绝对值。
SELECT ABS(-5); -- 返回 5
ROUND(x, d):将数值x四舍五入到d位小数。
SELECT ROUND(123.4567, 2); -- 返回 123.46
FLOOR(x)/CEIL(x):返回小于或等于x的最大整数(向下取整)或大于或等于x的最小整数(向上取整)。
SELECT FLOOR(2.9); -- 返回 2
SELECT CEIL(2.1); -- 返回 3
MOD(x, y):返回x除以y的余数。
SELECT MOD(10, 3); -- 返回 1
POWER(x, y):返回x的y次幂。
SELECT POWER(2, 3); -- 返回 8
RAND():返回一个 0 到 1 之间的随机浮点数。
SELECT RAND(); -- 可能返回例如 0.548973
SIGN(x):返回数值x的符号,1 表示正数,-1 表示负数,0 表示零。
SELECT SIGN(-10); -- 返回 -1
SQRT(x):返回数值x的平方根。
SELECT SQRT(16); -- 返回 4
EXP(x):返回数值x的自然指数(e^x)。
SELECT EXP(1); -- 返回 2.718281828
LOG(x)/LOG10(x):返回数值x的自然对数(以e为底)或以10为底的对数。
SELECT LOG(2.71828); -- 返回约 1
SELECT LOG10(1000); -- 返回 3
4. 聚合函数
COUNT(expression):返回某列中的记录数。
SELECT COUNT(*) FROM orders;
SUM(expression):返回某列中数值的总和。
SELECT SUM(order_amount) FROM orders;
AVG(expression):返回某列中数值的平均值。
SELECT AVG(salary) FROM employees;
MAX(expression)/MIN(expression):返回某列的最大值或最小值。
SELECT MAX(salary) FROM employees;
SELECT MIN(salary) FROM employees;
5. 控制流函数
IF(condition, true_value, false_value):如果condition为真,返回true_value,否则返回false_value。
SELECT IF(1 > 0, 'Yes', 'No'); -- 返回 'Yes'
CASE:用于条件判断,类似于多路选择。
SELECT CASE WHEN salary > 10000 THEN 'High'WHEN salary BETWEEN 5000 AND 10000 THEN 'Medium'ELSE 'Low'END AS salary_range
FROM employees;
COALESCE: 用于返回第一个非空(非NULL)的值。它可以用于处理可能包含NULL值的列,确保在结果中不出现NULL。
COALESCE(value1, value2, ..., valueN)
-- 1. 基本用法
SELECT COALESCE(NULL, NULL, 'First Non-NULL', 'Another Value')
AS Result;-- 'First Non-NULL'-- 2.处理列值
SELECT employee_id, COALESCE(phone_number, 'No Phone Number') AS phone
FROM employees;
-- 如果 phone_number 列的值是 NULL,则结果将是 'No Phone Number'。-- 3.与其他函数配合使用
SELECT employee_id, COALESCE(start_date, CURRENT_DATE) AS start
FROM employees;
-- 如果 start_date 列的值是 NULL,则使用当前日期作为默认值。
6. 加密与解密函数
MD5(str):返回字符串str的 MD5 哈希值(128位)。
SELECT MD5('password');
SHA1(str):返回字符串str的 SHA-1 哈希值(160位)。
SELECT SHA1('password');
7. 类型转换函数
CAST(expression AS type):将某个值转换为指定的类型。
SELECT CAST('123' AS UNSIGNED); -- 将字符串'123'转换为无符号整数
CONVERT(expression, type):类似于CAST,用于类型转换。
SELECT CONVERT('2024-01-01', DATE); -- 将字符串转换为日期类型
8. JSON函数
JSON_EXTRACT(json_doc, path):从 JSON 文档中提取指定路径的值。
SELECT JSON_EXTRACT('{"name": "Alice", "age": 30}', '$.name');
JSON_OBJECT(key, value, ...):创建一个 JSON 对象。
SELECT JSON_OBJECT('name', 'Alice', 'age', 30);
JSON_ARRAY():创建一个 JSON 数组。
SELECT JSON_ARRAY('apple', 'banana', 'cherry');
JSON_CONTAINS(json_doc, val[, path]):检查 JSON 文档中是否包含指定的值。
SELECT JSON_CONTAINS('["apple", "banana"]', '"apple"');
JSON_UNQUOTE(json_val):移除 JSON 文本中的引号。
SELECT JSON_UNQUOTE('"Hello"'); -- 返回 'Hello'相关文章:
MySQL常用函数(总结)详细版
1. 字符串函数 CONCAT(str1, str2, ...):将多个字符串连接成一个字符串。 SELECT CONCAT(Hello, , World); LENGTH(str):返回字符串的长度(字节数)。 SELECT LENGTH(Hello); SUBSTRING(str, pos, len):从字符串 …...
学习记录——day41 C++ 类的静态成员 static
静态成员,是类中不依赖于类对象而独立存在的成员变量,但仍然属于类,是成员的一种 静态成员的空间分配发生在出现编译阶段,不占用类的空间 静态成员分为,静态成员变量和静态成员函数 静态成员变量 1、相关概念 1&…...
JVM - Java内存区域
文章目录 目录 文章目录 运行时数据区域 程序计数器 栈 Java虚拟机栈 本地方法栈 栈帧的组成 局部变量表 操作数栈 帧数据 堆 方法区 直接内存 总结 运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存区域划分为若干个不同的数据区域。这些区…...
本地电脑交叉编译ffmpeg 到 windows on arm64
本地电脑交叉编译ffmpeg 到 windows on arm64 我这里有编译好的win on arm 的 ffmpeg : https://github.com/wmx-github/ffmpeg-wos-arm64-build 使用 llvm-mingw 工具链 https://github.com/mstorsjo/llvm-mingw/releases 前缀 aarch64-w64-mingw32- 这个库是ubuntu 交叉编译…...
使用 @NotEmpty、@NotBlank、@NotNull 注解进行参数校验
使用 NotEmpty、NotBlank、NotNull 注解进行参数校验 一、前言二、依赖三、使用 NotEmpty、NotBlank、NotNull 注解进行参数校验1. NotNull2. NotEmpty3. NotBlank4. 区别与适用场景 四、实践中的应用五、总结 一、前言 在 Java 开发中,参数校验是确保数据一致性和…...
关于Qt在子线程中使用通讯时发生无法接收数据的情况
在多线程应用中,串口通讯或TCP通讯的场景常常涉及到持续的读写操作,如果子线程处理不当,可能会导致信号阻塞问题。本文将通过串口通讯或TCP通讯为例,详细解释如何在多线程环境中避免信号阻塞,并提供代码示例。 1. 问题…...
HTML:从历史演进到未来创新的网页基石
该论文为AI生成,请勿运用到正式的论文上,以下仅供参考 一、引言 1.1 研究背景 HTML(Hypertext Markup Language)作为网页构建的基础语言,在互联网的发展历程中占据着至关重要的地位。自 1993 年诞生以来,…...
向量的叉积、点积、外积
向量的叉积、点积和外积是向量代数中非常重要的操作,用于描述向量间的关系。它们广泛应用于物理、计算机图形学、几何以及蛋白质结构分析等领域。下面对每个运算进行详细介绍,并通过 PyTorch 示例代码展示其实现。 1. 点积 (Dot Product) 点积是两个向量之间的数量积,结果…...
UNI-APP 溢出隐藏显示省略号
✍经常在项目里面使用到,又没有记住懒得找了,故此写一篇记录一下! CSS单行显示省略号 /* CSS样式 */ .ellipsis {overflow: hidden; /* 隐藏超出的内容 */text-overflow: ellipsis; /* 显示省略号 */white-space: nowrap; /* 不换行 */ } CS…...
SAP学习笔记 - 开发03 - CDSView开发环境搭建,Eclipse中连接SAP,CDSView创建
上一章讲了BTP的账号创建,环境搭建等内容。 SAP学习笔记 - 开发02 - BTP实操流程(账号注册,BTP控制台,BTP集成开发环境搭建)-CSDN博客 本章继续讲SAP开发。 - CDSView 的开发环境(Eclipse)搭建…...
uniapp写的一个年月日时分秒时间选择功能
代码: <template><view><picker mode"multiSelector" :value"multiIndex" :range"multiRange" change"onMultiChange"><view class"picker">当前选择:{{ formattedDateTime }}</vie…...
golang hertz框架入门
两种模式新建项目 1、手动新建项目 2、使用hz工具新建项目 一、手动创建项目,并拉取框架 1、新建项目目录 hertz_demo_w 2、在项目跟目录新建main.go 文件 package mainimport ("context""github.com/cloudwego/hertz/pkg/app""github.…...
Android Home应用程序启动流程
Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还需要有一个Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home应用程序就是Launcher了,本文将详细分析Launcher应用程序的启…...
C++笔试强训12、13、14
文章目录 笔试强训12一、选择题1-5题6-10题 二、编程题题目一题目二 笔试强训13一、选择题1-5题6-10题 二、编程题题目一题目二 笔试强训14一、选择题1-5题6-10题 二、编程题题目一题目二 笔试强训12 一、选择题 1-5题 引用:是一个别名,与其被引用的实…...
Excel和Word日常使用记录:
Excel使用总结 表格颜色填充: 合并单元格: 选中你要合并的单元格区域。 按下快捷键 Alt H,然后松开这些键。 再按下 M,接着按 C。 这个组合键执行的操作是:Alt H:打开“主页”选项卡。 M:选…...
用Git把本地仓库上传到远程仓库
用Git把本地仓库上传到远程仓库 GitHub创建远程仓库 在创建新仓库界面里输入你的仓库名后点击Create repository就好了。 创建本地项目 当你已经有一个项目后在命令行输入如下指令即可 git init git commit -m "first commit" git branch -M main git remote a…...
OneHotEncoder一个不太合理的地方
OneHotEncoder,在Xtrain上fit,在Xtest上transform 如果遇到某个值出现在Xtest,而没有在Xtrain出现过时,会抛出如下错误: OneHotEncoder Found unknown categories [xxx] in column xx during transform OneHotEncoder …...
如何修复软件中的BUG
笔者上一篇博文《如何开发出一款优秀的软件》主要讲了如何开发一款优秀的软件及相应的必要条件。但对一个已上线,已经成型的产品,该如何解决存在的bug呢?这是本文要阐述的内容。 在这里,首先说一下bug的种类及bug严重程度分类&…...
分享一个基于微信小程序的医院挂号就诊一体化平台uniapp医院辅助挂号应用小程序设计(源码、调试、LW、开题、PPT)
💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…...
HTML生日蛋糕
目录 写在前面 完整代码 代码分析 系列文章 写在最后 写在前面 HTML实现的生日蛋糕来喽,小编亲测,发给好友可以直接打开哦。在代码的第183行可以写下对朋友的祝福,快拿去送给你的好朋友吧! 完整代码 <!DOCTYPE html>…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
Unity中的transform.up
2025年6月8日,周日下午 在Unity中,transform.up是Transform组件的一个属性,表示游戏对象在世界空间中的“上”方向(Y轴正方向),且会随对象旋转动态变化。以下是关键点解析: 基本定义 transfor…...
Spring AOP代理对象生成原理
代理对象生成的关键类是【AnnotationAwareAspectJAutoProxyCreator】,这个类继承了【BeanPostProcessor】是一个后置处理器 在bean对象生命周期中初始化时执行【org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization】方法时…...
CSS3相关知识点
CSS3相关知识点 CSS3私有前缀私有前缀私有前缀存在的意义常见浏览器的私有前缀 CSS3基本语法CSS3 新增长度单位CSS3 新增颜色设置方式CSS3 新增选择器CSS3 新增盒模型相关属性box-sizing 怪异盒模型resize调整盒子大小box-shadow 盒子阴影opacity 不透明度 CSS3 新增背景属性ba…...
