MySQL 常用函数总结
MySQL 提供了丰富的内置函数,用于在查询中进行各种计算、字符串处理、日期和时间操作等。这些函数可以帮助我们更有效地从数据库中检索和处理数据。下面将总结一些 MySQL 中常用的函数及其用法。
1. 数值函数
1.1 ROUND()
ROUND() 函数用于对数值进行四舍五入操作。
SELECT ROUND(123.4567, 2); -- 结果为 123.46
1.2 CEIL() 和 FLOOR()
CEIL() 函数返回大于或等于指定数值的最小整数(向上取整),而 FLOOR() 函数返回小于或等于指定数值的最大整数(向下取整)。
SELECT CEIL(123.4567); -- 结果为 124
SELECT FLOOR(123.4567); -- 结果为 123
1.3 ABS()
ABS() 函数返回数值的绝对值。
SELECT ABS(-123); -- 结果为 123
2. 字符串函数
2.1 CONCAT()
CONCAT() 函数用于连接两个或多个字符串。
SELECT CONCAT('Hello', ' ', 'World'); -- 结果为 'Hello World'
2.2 LENGTH()
LENGTH() 函数返回字符串的长度。
SELECT LENGTH('Hello'); -- 结果为 5
2.3 UPPER() 和 LOWER()
UPPER() 函数将字符串转换为大写,而 LOWER() 函数将字符串转换为小写。
SELECT UPPER('hello'); -- 结果为 'HELLO'
SELECT LOWER('HELLO'); -- 结果为 'hello'
2.4 SUBSTRING()
SUBSTRING() 函数用于提取字符串的子串。
SELECT SUBSTRING('Hello World', 1, 5); -- 结果为 'Hello'
2.5 REPLACE()
REPLACE() 函数用于在字符串中替换指定的子串。
SELECT REPLACE('Hello World', 'World', 'MySQL'); -- 结果为 'Hello MySQL'
3. 日期和时间函数
3.1 NOW()
NOW() 函数返回当前的日期和时间。
SELECT NOW(); -- 返回当前日期和时间
3.2 CURDATE() 和 CURTIME()
CURDATE() 函数返回当前的日期,而 CURTIME() 函数返回当前的时间。
SELECT CURDATE(); -- 返回当前日期
SELECT CURTIME(); -- 返回当前时间
3.3 DATE_FORMAT()
DATE_FORMAT() 函数用于按照指定的格式显示日期/时间值。
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- 返回格式化的日期和时间
3.4 DATEDIFF()
DATEDIFF() 函数返回两个日期之间的天数差。
复制代码
SELECT DATEDIFF('2023-10-23', '2023-10-01'); -- 结果为 22
4. 聚合函数
4.1 AVG()
AVG() 函数返回某列的平均值。
SELECT AVG(salary) FROM employees; -- 返回员工的平均工资
4.2 SUM()
SUM() 函数返回某列的总和。
SELECT SUM(quantity) FROM orders; -- 返回订单的总数量
4.3 COUNT()
COUNT() 函数返回匹配指定条件的行数。
SELECT COUNT(*) FROM employees; -- 返回员工的总数
SELECT COUNT(DISTINCT department) FROM employees; -- 返回不同部门的数量
4.4 MAX() 和 MIN()
MAX() 函数返回某列的最大值,而 MIN() 函数返回某列的最小值。
SELECT MAX(salary) FROM employees; -- 返回员工的最高工资
SELECT MIN(salary) FROM employees; -- 返回员工的最低工资
5. 其他常用函数
5.1 IFNULL()
IFNULL() 函数用于处理 NULL 值。如果第一个参数为 NULL,则返回第二个参数的值;否则返回第一个参数的值。
SELECT IFNULL(NULL, '默认值'); -- 结果为 '默认值'
SELECT IFNULL(column_name, '默认值') FROM table_name; -- 如果 column_name 中的值为 NULL,则返回 '默认值'
5.2 CASE 语句
CASE 语句在 MySQL 中用于在查询中进行条件判断,类似于其他编程语言中的 switch-case 结构。
SELECT column_name, CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ELSE result3 END AS case_result
FROM table_name;
5.3 CONCAT_WS()
CONCAT_WS() 函数用于连接两个或多个字符串,并指定一个分隔符。
SELECT CONCAT_WS('-', '2023', '10', '23'); -- 结果为 '2023-10-23'
5.4 TRIM()
TRIM() 函数用于去除字符串开头和结尾的指定字符(默认为空格)。
SELECT TRIM(' Hello World '); -- 结果为 'Hello World'
SELECT TRIM(LEADING 'x' FROM 'xxxHello Worldxxx'); -- 结果为 'Hello Worldxxx'
SELECT TRIM(TRAILING 'x' FROM 'xxxHello Worldxxx'); -- 结果为 'xxxHello World'
SELECT TRIM(BOTH 'x' FROM 'xxxHello Worldxxx'); -- 结果为 'Hello World'
5.5 COALESCE()
COALESCE() 函数返回参数列表中的第一个非 NULL 值。
SELECT COALESCE(NULL, NULL, '默认值'); -- 结果为 '默认值'
SELECT COALESCE(column1, column2, '默认值') FROM table_name; -- 返回 column1、column2 或 '默认值' 中的第一个非 NULL 值
相关文章:
MySQL 常用函数总结
MySQL 提供了丰富的内置函数,用于在查询中进行各种计算、字符串处理、日期和时间操作等。这些函数可以帮助我们更有效地从数据库中检索和处理数据。下面将总结一些 MySQL 中常用的函数及其用法。 1. 数值函数 1.1 ROUND() ROUND() 函数用于对数值进行四舍五入操作…...
SpingBoot快速入门下
响应HttpServietResponse 介绍 将ResponseBody 加到Controller方法/类上 作用:将方法返回值直接响应,如果返回值是 实体对象/集合,将会自动转JSON格式响应 RestController Controller ResponseBody; 一般响应 统一响应 在实际开发中一般…...
什么是symbol?
在ES6(ECMAScript 2015)中,Symbol是一种新的基本数据类型,它的主要特点是独一无二且不可变。以下是关于ES6中Symbol的详细解释: 定义与特性: Symbol是ES6引入的一种基本数据类型,用于表示独一无…...
Tailwind CSS 响应式设计实战指南
title: Tailwind CSS 响应式设计实战指南 date: 2024/6/13 updated: 2024/6/13 author: cmdragon excerpt: 这篇文章介绍了如何运用Tailwind CSS框架创建响应式网页设计,涵盖博客、电商网站及企业官网的布局实例,包括头部导航、内容区域、侧边栏、页脚…...
如何把模糊的图片修复变清晰,怎么做?有那些方法?
模糊照片怎么修复清晰?有些照片可能会因为保存不当或其他原因而变得模糊,这些照片删掉又觉得可惜,那么如何让这些照片焕然一新呢?今天就给大家分享几种可以将这些珍贵的模糊照片修复为高清照片的方法。接下来,给大家演…...
思科路由器密码恢复方法
1.密码恢复原理 Cisco路由器保存了几种不同的配置参数,并存放在不同的内存模块中。 Cisco系列路由器的内存有:ROM,闪存(Flashmemory),RAM,不可变RAM和动态内存(DRAM)等5种。 一般情况…...
HTML某联招聘
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body> <!-- 一些其他说明: 不写form的话,表单内容也是可以正常显示的࿰…...
第一百一十六节 Java 面向对象设计 - Java 终止块
Java 面向对象设计 - Java 终止块 try 块也可以有零个或一个 finally 块。 finally 块总是与 try 块一起使用。 语法 使用 finally 块的语法是 finally {// Code for finally block }finally 块以关键字 finally 开始,后面紧跟一对…...
YOLOv10改进 | 注意力篇 | YOLOv10引入YOLO-Face提出的SEAM注意力机制优化物体遮挡检测
1. SEAM介绍 1.1 摘要:近年来,基于深度学习的人脸检测算法取得了长足的进步。 这些算法通常可以分为两类,即像 Faster R-CNN 这样的两级检测器和像 YOLO 这样的一级检测器。 由于精度和速度之间具有更好的平衡,一级探测器已广泛应用于许多应用中。 在本文中,我们提出了一…...
问题解决:Problem exceeding maximum token in azure openai (with java)
问题背景: Im doing a chat that returns queries based on the question you ask it in reference to a specific database. For this I use azure openai and Java in Spring Boot. 我正在开发一个聊天功能,该功能根据您针对特定数据库的提问返回查询…...
eNSP学习——OSPF在帧中继网络中的配置
目录 主要命令 原理概述 实验目的 实验场景 实验拓扑 实验编址 实验步骤 1、基本配置 2、在帧中继上搭建OSPF网络 主要命令 //检查帧中继的虚电路状态 display fr pvc-info//检查帧中继的映射表 display fr map-info//手工指定OSPF邻居,采用单播方式发送报文 [R1]os…...
PHP转Go系列 | 条件循环的使用姿势
大家好,我是码农先森。 条件 在 PHP 语言中条件控制语句,主要有 if、elseif、else 和 switch 语句 // if、elseif、else 语句 $word "a"; if ($word "a") {echo "a"; } elseif ($word "b") {echo "b&…...
八大经典排序算法
前言 本片博客主要讲解一下八大排序算法的思想和排序的代码 💓 个人主页:普通young man-CSDN博客 ⏩ 文章专栏:排序_普通young man的博客-CSDN博客 若有问题 评论区见📝 🎉欢迎大家点赞👍收藏⭐文章 目录 …...
【LeetCode热题 100】三数之和
leetcode原地址:https://leetcode.cn/problems/3sum/description 描述 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和…...
【深度学习驱动流体力学】完整配置安装 OpenFOAM 及其所需的ThirdParty与QT5工具
OpenFOAM 简介 OpenFOAM(Open Field Operation and Manipulation)是一个领先的开源计算流体动力学(CFD)软件包,由 OpenFOAM Foundation 开发和维护。作为一个高度模块化和可扩展的软件工具箱,OpenFOAM 支持模拟多种物理现象,包括流体流动、传热、混合、燃烧、声学等。由…...
YOLOv10改进 | Neck | 添加双向特征金字塔BiFPN【含二次独家创新】
💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录:《YOLOv8改进有效涨点》专栏介绍 & 专栏目录 | 目前已有40篇内容,内含各种Head检测头、损失函数Loss、B…...
PostgreSQL源码分析——pg_basebackup
涉及到的代码主要在src/backend/replication以及bin/pg_basebackup中。 我们知道pg_basebackup是一个进行基础备份的工具,除了使用这个工具,还可以用底层API的方式进行基础备份,主要过程如下: 连接到数据库执行select pg_start_…...
QT基础 - 常见图表绘制
目录 零. 前言 一. 添加模块 折线图 三. 树状图 四. 饼图 五. 堆叠柱状图 六. 百分比柱状图 七. 散点图和光滑曲线图 散点图 光滑曲线图 零. 前言 Qt Charts 是 Qt 框架的一个模块,用于创建各种类型的图表和数据可视化。它为开发者提供了一套功能强大的工…...
解释React中的“端口(Portals)”是什么,以及如何使用它来渲染子节点到DOM树以外的部分。
React中的“端口(Portals)”是一种将子节点渲染到DOM****树以外的部分的技术。在React应用中,通常情况下组件的渲染是遵循DOM的层次结构,即子组件会渲染在父组件的DOM节点内部。然而,有些情况下,开发者可能…...
java实现分类下拉树,点击时对应搜索---后端逻辑
一直想做分类下拉,然后选择后搜索的页面,正好做项目有了明确的需求,查找后发现el-tree的构件可满足需求,数据要求为:{ id:1, label:name, childer:[……] }形式的,于是乎,开搞! 一…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...
FFmpeg avformat_open_input函数分析
函数内部的总体流程如下: avformat_open_input 精简后的代码如下: int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...
【UE5 C++】通过文件对话框获取选择文件的路径
目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 ,这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器,右键点击 .uproject 文件,选择 "Generate Visual Studio project files",重…...
React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构
React 实战项目:微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇!在前 29 篇文章中,我们从 React 的基础概念逐步深入到高级技巧,涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...
