深入了解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,一经查实,立即删除!

相关文章

【QT+QGIS跨平台编译】177:【QGIS_App+Qt跨平台编译】之一(一套代码、一套框架,跨平台编译)

文章目录 一、QGIS_App介绍二、QGIS下载三、文件分析四、pro文件一、QGIS_App介绍 QGIS_App是一个基于QGIS的完整的GIS系统库,它不仅可以作为一个独立的GIS应用程序使用,还可以将其各个组件作为二次开发的一部分。QGIS_App具有一个完整的GIS主界面和多个插件(plugins),这些…

spring事件监听

spring事件监听 ApplicationListener监听容器中发布的事件 实现ApplicationListener来完成事件监听 public interface ApplicationListener<E extends ApplicationEvent> extends EventListener { /** * Handle an application event. * param event the event t…

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

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

如何用JavaScript/来更新其他meta标签

下面是一个简单的例子&#xff0c;展示了如何使用JavaScript来更新页面中的其他meta标签。这个例子中&#xff0c;我们将更新description和author两个meta标签。 首先&#xff0c;假设我们有以下HTML代码&#xff1a; <!DOCTYPE html> <html lang"en">…

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

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

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

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

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

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

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;否则很难进行…

js 事件模型 事件捕获、事件冒泡

什么是事件捕获、事件冒泡 事件冒泡&#xff08;event bubbling&#xff09;和事件捕获&#xff08;event capturing&#xff09;是指在 DOM 树中处理事件的两种不同方式。 事件捕获&#xff1a; 事件从DOM树的根节点开始&#xff0c;然后逐级向下捕获到最具体的元素&#xf…

网络爬虫入门

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

sklearn【F1 Scoree】F1分数原理及实战代码!

目录 一、F1 Scoree 介绍二、案例学习三、总结 一、F1 Scoree 介绍 在分类任务中&#xff0c;评估模型的性能是至关重要的。除了准确率&#xff08;Accuracy&#xff09;之外&#xff0c;我们还需要考虑其他指标&#xff0c;如精确度&#xff08;Precision&#xff09;和查全率…

根据 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; 拖放界面设计比手写代码更快…

鸿蒙应用开发之Web组件1

前面学习向导组件,现在来学习Web组件,这个组件也是一个比较复杂的组件,也是一个功能很强的组件,毕竟它是一个浏览器功能相当的组件,可以显示网页内容。 我们知道目前已经进入网络3.0时代,之前经历了1.0的文本时代,2.0的多媒体时代,现在进入全面交互时代。并且移动时代的…

百亿补贴低价的治理思路

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

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

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