深入了解MySQL中的SQL函数

深入了解MySQL中的SQL函数可以极大地提升数据处理的能力和灵活性。这些函数涵盖了从数学计算、字符串操作、日期时间处理到复杂的聚合和窗口函数。在这篇文章中,我们将详细讨论MySQL中的各种SQL函数,包括它们的用途、使用场景和一些高级技巧。

数学函数

MySQL提供了多种数学函数来处理数值数据,常用的包括:

  • ABS(x): 返回x的绝对值。
  • CEIL(x)CEILING(x): 返回大于或等于x的最小整数。
  • FLOOR(x): 返回小于或等于x的最大整数。
  • POW(x, y)POWER(x, y): 返回xy次幂。
  • SQRT(x): 返回x的平方根。
  • RAND(): 生成一个0到1之间的随机浮点数。
SELECT ABS(-42);       -- 输出: 42
SELECT CEILING(9.2);   -- 输出: 10
SELECT FLOOR(9.8);     -- 输出: 9
SELECT POW(2, 3);      -- 输出: 8
SELECT SQRT(16);       -- 输出: 4
SELECT RAND();         -- 输出: 随机数

字符串函数

字符串函数在数据清洗、格式化和提取信息中扮演关键角色:

  • LENGTH(str): 返回字符串str的长度。
  • CONCAT(str1, str2, ...): 将两个或多个字符串连接成一个字符串。
  • SUBSTRING(str, pos, len): 提取字符串str从位置pos开始长度为len的子字符串。
  • REPLACE(str, from_str, to_str): 替换字符串str中的所有from_strto_str
  • LTRIM(str)RTRIM(str): 去除字符串str的左边或右边的空格。
  • UPPER(str)LOWER(str): 将字符串str转换为大写或小写。
SELECT LENGTH('Hello World');        -- 输出: 11
SELECT CONCAT('Hello', ' ', 'World');-- 输出: 'Hello World'
SELECT SUBSTRING('Hello World', 2, 4);-- 输出: 'ello'
SELECT REPLACE('Hello World', 'World', 'MySQL');  -- 输出: 'Hello MySQL'
SELECT LTRIM('   Hello');            -- 输出: 'Hello'
SELECT RTRIM('World   ');            -- 输出: 'World'
SELECT UPPER('mysql');               -- 输出: 'MYSQL'

日期和时间函数

处理日期和时间是数据库操作中的常见需求:

  • NOW(): 返回当前的日期和时间。
  • CURDATE(): 返回当前的日期。
  • CURTIME(): 返回当前的时间。
  • DATE_ADD(date, INTERVAL expr type): 向日期date添加时间间隔。
  • DATEDIFF(expr1, expr2): 返回两个日期之间的天数。
  • DAYOFWEEK(date): 返回日期date是星期几。
SELECT NOW();                      -- 输出: 当前日期和时间
SELECT CURDATE();                  -- 输出: 当前日期
SELECT CURTIME();                  -- 输出: 当前时间
SELECT DATE_ADD('2023-01-01', INTERVAL 1 MONTH);  -- 输出: '2023-02-01'
SELECT DATEDIFF('2023-01-10', '2023-01-01');      -- 输出: 9
SELECT DAYOFWEEK('2023-01-01');    -- 输出: 根据星期几的编号

聚合函数

聚合函数对一组值执行计算,常用于GROUP BY语句中:

  • SUM(expr): 计算表达式expr的总和。
  • AVG(expr): 计算表达式expr的平均值。
  • MIN(expr)MAX(expr): 计算表达式expr的最小值和最大值。
  • COUNT(expr): 计算表

达式expr的值的数量。

SELECT SUM(salary) FROM employees;
SELECT AVG(salary) FROM employees;
SELECT MIN(salary), MAX(salary) FROM employees;
SELECT COUNT(*) FROM employees;

窗口函数

窗口函数对结果集的子集执行计算,这些子集称为窗口。它们在SQL标准中的支持不断增强:

  • ROW_NUMBER() OVER (ORDER BY column): 对结果集中的行进行编号。
  • RANK() OVER (ORDER BY column): 对结果集中的行进行排名。
  • LEAD(value, n, default) OVER (PARTITION BY column ORDER BY column): 返回当前行之后第n行的值。
SELECT username, salary, RANK() OVER (ORDER BY salary DESC) AS salary_rank
FROM employees;

深入理解和合理应用这些SQL函数可以极大地提高数据处理效率和精度,是每一个数据库专业人士必备的技能。掌握这些高级函数将帮助你在数据分析和数据库管理中更加得心应手。

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

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

相关文章

pnpm - Failed to resolve loader: cache-loader. You may need to install it.

起因 工作原因需要研究 vue-grid-layout 的源码,于是下载到本地。因为我习惯使用 pnpm,所以直接用 pnpm i 安装依赖,npm run serve 启动失败。折腾了一番没成功。 看到源码里有 yarn.lock,于是重新用 yarn install 安装依赖&…

使用Unity 接入 Stable-Diffusion-WebUI的 文生图api 并生成图像

使用Unity 接入 Stable-Diffusion-WebUI 文生图生成图像 文章目录 使用Unity 接入 Stable-Diffusion-WebUI 文生图生成图像一、前言二、具体步骤1、启动SD的api设置2、unity 创建生图脚本3、Unity 生图交互配置步骤 1: 创建sdControl步骤2:生成后图片画布步骤3&…

Groovy程序设计-【第一部分Groovy起步】-02-面向Java开发者的Groovy

前言: 知识点记录来源于【Groovy程序设计】一书中,本文仅作知识点记录供日后使用查询,不做教程使用。 groovy支持java语法,并且保留了java的语义,所以我们可以随心所欲的混用两种语言。 1.从Java到Groovy 先看一个…

从「宏大叙事」到「生活叙事」,小红书品牌种草的的“正确姿势”

不同于抖音和微博,在小红书上,品牌营销的基调应该是怎样的?品牌怎样与小红书用户对话?什么样的内容,才能走进小红书用户的心中?本期,小编将带大家洞察品牌在小红书营销的“正确姿势”。从「小美…

Table表格(关于个人介绍与图片)

展开行&#xff1a; <el-table :data"gainData" :border"gainParentBorder" style"width: 100%"><el-table-column type"expand"><template #default"props"><div m"4"><h3>工作经…

百度文心一言:官方开放API开发基础

目录 一、模型介绍 1.1主要预置模型介绍 1.2 计费单价 二、前置条件 2.1 创建应用获取 Access Key 与 Secret Key 2.2 设置Access Key 与 Secret Key 三、基于千帆SDK开发 3.1 Maven引入SDK 3.2 代码实现 3.3 运行代码 一、模型介绍 文心一言&#xff08;英文名&…

Java实现生成中间带图标的二维码

Java实现生成中间带图标的二维码 生成Base64格式的二维码&#xff0c;返回html渲染 package your.package;import com.google.zxing.*; import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcod…

DSPE-PEG-TPP 磷脂聚乙二醇-磷酸三苯酯 靶向线粒体纳米颗粒药物递送系统

DSPE-PEG-TPP 磷脂聚乙二醇-磷酸三苯酯 靶向线粒体纳米颗粒药物递送系统 【中文名称】磷脂-聚乙二醇-磷酸三苯酯 【英文名称】DSPE-PEG-TPP 【结 构】 【品 牌】碳水科技&#xff08;Tanshtech&#xff09; 【纯 度】95%以上 【保 存】-20℃ 【规 格】50mg,…

数字工厂系统的开发

数字工厂系统&#xff08;Digital Factory System&#xff0c;DFS&#xff09;是基于数字孪生技术&#xff08;Digital Twin Technology&#xff09;和信息物理融合系统&#xff08;Cyber-Physical System&#xff0c;CPS&#xff09;构建的&#xff0c;用于仿真、分析和优化制…

密码学 | 承诺:基本概念

目录 正文 1 承诺的交互 2 承诺的属性 3 硬币抛掷问题 3.1 朴素版方案 3.2 承诺版方案 &#x1f951;源自&#xff1a;https://en.wikipedia.org/wiki/Commitment_scheme &#x1f951;写在前面&#xff1a;英文的承诺是 commitment scheme&#xff0c;否则很难进行…

网络爬虫入门

爬虫&#xff08;也被称为网络爬虫或网络蜘蛛&#xff09;是一种自动化程序&#xff0c;它可以在互联网上自动抓取数据。爬虫的基本工作原理通常包括以下几个步骤&#xff1a;发送请求&#xff1a;爬虫向目标网站发送HTTP请求&#xff0c;请求网页内容。接收响应&#xff1a;爬…

根据 Figma 设计稿自动生成 Python GUI | 开源日报 No.221

ParthJadhav/Tkinter-Designer Stars: 8.0k License: BSD-3-Clause Tkinter-Designer 是一个用于快速创建 Python GUI 的工具&#xff0c;通过使用 Figma 设计软件&#xff0c;可以轻松地生成美观的 Tkinter GUI。 主要功能和优势包括&#xff1a; 拖放界面设计比手写代码更快…

百亿补贴低价的治理思路

各大电商平台都有陆续在推出百亿补贴通道&#xff0c;这对消费者来说&#xff0c;会更便捷&#xff0c;因为平台百亿补贴价格较低&#xff0c;不需要消费者再进行多链接、多平台的比价工作&#xff0c;直接下单即可&#xff0c;由于百亿补贴链接的上架主导权在平台&#xff0c;…

​面试经典150题——从前序与中序遍历序列构造二叉树

​ 1. 题目描述 2. 题目分析与解析 二叉树的前序、中序和后序遍历 二叉树的前序、中序和后序遍历是树的三种基本遍历方式&#xff0c;它们是通过不同的顺序来访问树中的节点的。 前序遍历&#xff08;Pre-order traversal&#xff09;&#xff1a; 访问根节点 前序遍历左子树…

详细介绍医用PSA变压吸附制氧机设备的工艺特点

随着技术的不断进步&#xff0c;医用氧气作为一种重要的治疗资源&#xff0c;其供应方式也在不断地改进和升级。其中&#xff0c;医用PSA(Pressure Swing Adsorption&#xff0c;变压吸附)变压吸附制氧机设备因其高效、安全、稳定的特点&#xff0c;受到了广大机构的青睐。那么…

Java高阶私房菜:快速学会异步编程CompletableFuture

为了使主程代码不受阻塞之苦&#xff0c;一般使用异步编程&#xff0c;而异步编程架构在JDK1.5便已有了雏形&#xff0c;主要通过Future和Callable实现&#xff0c;但其操作方法十分繁琐&#xff0c;想要异步获取结果,通常要以轮询的方式去获取结果&#xff0c;具体如下&#x…

传统零售行业如何做数字化转型?

传统零售行业的数字化转型是一个系统性的过程&#xff0c;涉及到企业的多个方面。以下是一些关键步骤和策略&#xff0c;帮助传统零售企业实现数字化转型&#xff1a; 1、明确转型目标和战略 首先&#xff0c;企业需要明确数字化转型的目标和战略。包括确定企业的核心竞争力、…

照片光晕光学特效模拟调色Boris FX Optics 2024 mac下载安装教程

Boris FX Optics 2024 Mac版是一款照片光晕光学特效模拟调色软件&#xff0c;旨在模拟光学相机滤镜&#xff0c;专用镜头&#xff0c;胶卷和颗粒&#xff0c;镜头光晕&#xff0c;光学实验室处理&#xff0c;色彩校正以及自然光和摄影效果。用户可以通过应用光学并从160个滤镜和…

HAL STM32 I2C方式读取MT6701磁编码器获取角度例程

HAL STM32 I2C方式读取MT6701磁编码器获取角度例程 &#x1f4cd;相关篇《Arduino通过I2C驱动MT6701磁编码器并读取角度数据》&#x1f388;《STM32 软件I2C方式读取MT6701磁编码器获取角度例程》&#x1f4cc;MT6701当前最新文档资料&#xff1a;https://www.magntek.com.cn/u…

甘特图:项目管理者的必备神器,如何提高工作效率?

甘特图是什么&#xff1f;项目管理者大多都熟悉甘特图&#xff0c;它是一种直观展示项目计划执行过程的工具。通过条形图来显示项目、任务的时间安排&#xff0c;以及实际进度与计划进度的对比情况。 在我个人的项目管理实践中&#xff0c;甘特图确实帮助我提高了工作效率&am…