MySQL常用函数、语法案例

news2024/11/16 17:30:29

本人MySQL5.7版本

表结构

假设有一个名为 order_summary 的表,其字段如下:

order_id (INT): 订单的唯一标识符
customer_id (VARCHAR): 顾客的唯一标识符
order_date (DATETIME): 订单创建时间
total_amount (DECIMAL): 订单总金额
payment_status (ENUM): 付款状态(如 'Paid', 'Pending', 'Failed')
category (VARCHAR): 产品类别
shipping_type (VARCHAR): 运输方式

SQL 示例和解释

1. 聚合函数

GROUP_CONCAT()

SELECT GROUP_CONCAT(order_id) FROM order_summary GROUP BY customer_id LIMIT 1000;

解释: 将每个顾客的订单 ID 连接成一个字符串,并限制结果为 1000 条。

COUNT(DISTINCT)

SELECT total_amount, COUNT(DISTINCT customer_id) AS unique_customers FROM order_summary GROUP BY total_amount;

解释: 统计每个订单总金额对应的不同顾客数量。

SUM()

SELECT customer_id, SUM(IF(total_amount > 0, total_amount, 0)) AS total_spent FROM order_summary GROUP BY customer_id;

解释: 计算每个顾客的订单总金额,仅对正值进行求和。

2. 字符串函数

FIND_IN_SET()

SELECT * FROM order_summary WHERE FIND_IN_SET(customer_id, 'C001,C002,C003,C004') > 0;

解释: 查找 customer_id 在指定列表中的记录。

SUBSTRING_INDEX()

SELECT customer_id, SUBSTRING_INDEX(total_amount, '.', 1) AS integer_part FROM order_summary;

解释: 提取 total_amount 中小数点前的部分。

SUBSTRING()

SELECT SUBSTRING('Hello World', 1, 5) AS short_text;

解释: 从字符串中提取前五个字符。

3. 日期和时间函数

DATE_FORMAT()

SELECT DATE_FORMAT(order_date, '%Y年-%m月-%d日') AS formatted_date FROM order_summary;

解释: 将 order_date 格式化为“年-月-日”的形式。

DATEDIFF()

SELECT DATEDIFF(NOW(), order_date) AS days_since_order FROM order_summary WHERE order_id = 1820647545201496064;

解释: 计算订单创建时间与当前时间之间的天数差。

4. 条件函数

IF()

SELECT customer_id, IF(total_amount > 100, 'High', 'Low') AS amount_level FROM order_summary;

解释: 根据 total_amount 的值将其分类为“High”或“Low”。

CASE

SELECT customer_id,
       CASE 
           WHEN total_amount > 100 THEN 'High'
           WHEN total_amount BETWEEN 50 AND 100 THEN 'Medium'
           ELSE 'Low'
       END AS amount_level
FROM order_summary;

解释: 根据 total_amount 的不同范围进行分类。

5. 集合函数

UNION ALL

SELECT customer_id, total_amount, shipping_type FROM order_summary WHERE shipping_type = 'Express' 
UNION ALL
SELECT customer_id, total_amount, shipping_type FROM order_summary WHERE shipping_type = 'Standard';

解释: 获取使用快速和标准运输方式的顾客记录,并合并结果。

6. JSON 函数

JSON_ARRAY()

SELECT JSON_ARRAY(1, 2, 3) AS json_array;

解释: 生成一个包含数字 1、2、3 的 JSON 数组。

JSON_OBJECT()

SELECT JSON_OBJECT('customer_id', customer_id, 'total_amount', total_amount) AS json_result FROM order_summary;

解释: 生成一个 JSON 对象,其中包含 customer_id 和 total_amount 的键值对。

以上是关于 order_summary 表及其字段的 SQL 示例和解释。通过这些示例,我们可以更好地理解 MySQL 的强大功能,并在实际项目中灵活运用。

如有更多问题或想法,欢迎在评论区讨论!

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

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

相关文章

贪心+多维度dp

前言:处理简单版本的时候,想到了贪心,以及暴力求解顺便剪枝一下,要注意边界问题 haed版本的时候,完全行不通了,m的范围到了200,这是不可以暴力求解的 但是我不知道如何定义状态转移方程&#…

Hutool糊涂包JSON相关方法汇总

目录 1. JSON 对象 (JSONObject) 的创建 2. 向 JSONObject 添加键值对 3. 从 JSONObject 获取值 4. JSON 对象与字符串之间的转换 5. JSON 对象与 Java Bean(POJO)之间的转换 6. JSON 数组 (JSONArray) 的使用 7. JSON 数组与 Java List 之间的转…

Unity的UI设计

目录 创建和布局 布局与交互 性能优化 最佳实践 学习资源 Unity UI Toolkit与uGUI和IMGUI之间的具体区别和适用场景是什么? Unity UI Toolkit uGUI IMGUI 如何在Unity中实现响应式UI设计以适应不同设备尺寸? Unity UI性能优化的最新技术和方法…

8.MySQL知识巩固-牛客网练习题

目录 SQL228 批量插入数据 描述 SQL202 找出所有员工当前薪水salary情况 描述 示例1 SQL195 查找最晚入职员工的所有信息描述 示例1 SQL196 查找入职员工时间排名倒数第三的员工所有信息描述 SQL201查找薪水记录超过15条的员工号emp_no以及其对应的记录次数t 描述 SQL…

后端Web之数据库多表设计

1.概述 项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种:一对多、多对多、一对一。 数据库的多表设计是关…

JavaWeb——MVC架构模式

一、概述: MVC(Model View Controller)是软件工程中的一种 软件架构模式 ,它把软件系统分为模型、视图和控制器三个基本部分。用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户…

字符串专题——字符串相乘

1、题目解析 2、算法解析 1、解法一 使用模拟的方法:模拟小学的列竖式运算 细节1:高位相乘的时候要补上“0” 细节2:处理前导“0” 细节3:注意计算结果的顺序 2、解法二 对比解法一做优化->无进位相乘然后相加&#xff0…

Huawei Matebook e 2022 安装 archlinux 双系统

本文同步发布于我的网站 安装之前 wifi 名称修改为英文数字的,以防之后没法联网 准备好 U 盘并使用 GPT 分区表写入最新的 arch 镜像。 基础安装 开机按 F2 进入 UEFI/BIOS 设置,将 Secure Boot(安全启动)关闭,按…

AI学习记录 - transformers 的 linear 词映射层的详细分析, CrossEntropyLoss 函数解析

创作不易,有用的话点个赞。。。。。。 1. 假设条件 词汇表:假设词汇表包含四个词汇:[token_0, token_1, token_2, token_3]。 模型的输出概率分布:模型的输出经过 Softmax 转换后,得到概率分布:[0.1,0.5,…

JavaScript - Api学习 Day1(WebApi、操作DOM对象)

应用编程接口 (API) 是编程语言中提供的结构,允许开发者更轻松地创建复杂的功能。、 webapi 是一套 操作网页内容(DOM) 与 浏览器窗口(BOM) 的对象Js由ECMAScript、DOM、BOM三个部分组成。 文章目录 零、前言0.1 变量声明 壹、WebAPI的认识1.1 作用1.2 什么是DOM1…

【AI大模型】解锁AI智能:从注意力机制到Transformer,再到BERT与GPT的较量

文章目录 前言一、揭秘注意力机制:AI的焦点如何塑造智能1.什么是注意力机制?2.为什么需要注意力机制? 二、变革先锋:Transformer的突破与影响力1.什么是Transformer?2.为什么Transformer如此重要? 三、路径…

《给所有人的生成式 AI 课》学习笔记(一)

前言 本文是吴恩达(Andrew Ng)的视频课程《Generative AI for Everyone》(给所有人的生成式 AI 课)的学习笔记。由于原课程为全英文视频课程(时长约 3 个小时),且国内访问较慢,阅读…

零基础转行学网络安全怎么样?

在当今数字化飞速发展的时代,网络安全已成为备受瞩目的领域。那么,对于零基础的人来说,转行学习网络安全究竟怎么样呢? 网络安全行业正处于蓬勃发展的阶段。随着互联网的普及和信息技术的不断进步,网络安全问题日益凸显。政企单位…

本地私有化部署PDF处理神器Stirling PDF并实现无公网IP远程在线访问

文章目录 前言1. 安装Docker2. 本地安装部署StirlingPDF3. Stirling-PDF功能介绍4. 安装cpolar内网穿透5. 固定Stirling-PDF公网地址 前言 本篇文章我们将在Linux上使用Docker在本地部署一个开源的PDF工具——Stirling PDF,并且结合cpolar的内网穿透实现公网随时随…

文心一言 VS 讯飞星火 VS chatgpt (328)-- 算法导论22.5 4题

四、证明:对于任意有向图 G G G来说, ( ( G T ) S C C ) T G S C C ((G^T)^{SCC})^TG^{SCC} ((GT)SCC)TGSCC。也就是说,转置图 G T G^T GT的分量图的转置与图 G G G的分量图相同。如果要写代码,请用go语言。 文心一言&#xff1…

葡萄叶片病虫害数据集。葡萄数据集。葡萄病虫害数据集。

葡萄叶片病虫害数据集。葡萄数据集。葡萄病虫害数据集。 数据集有两种规格,请仔细阅读下面信息以免拍错 [1]规格一:适用于分类任务的数据集,标准的ImageNet数据集格式。注意不是txt格式的更不是xml格式的。数据集已经按照train、val划分好&am…

上海亚商投顾:沪指窄幅震荡 华为海思、猴痘概念股集体爆发

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 市场全天窄幅震荡,三大指数涨跌不一。华为海思概念股持续爆发,世纪鼎利、天邑股份、汇…

ProGrad:Prompt-aligned Gradient for Prompt Tuning

文章汇总 存在的问题 问题1 如图(a),(b):CoOp随着训练的继续,泛化能力可能会下降,甚至低于zero-shot基线。 如图©,(d):在shot比较小的情况,即数据量比较少的情况(1-shot,2-shot),CoOp的性能可能还不…

和鲸携手山东大学数字人文实验室,推动新文科与人工智能融合发展

为深入推进产教融合与校企合作,推动人工智能在人文学科中的广泛应用与深入发展,8 月 15 日,山东大学数字人文实验室与和鲸科技 101 计划推进会暨新文科人工智能实验室标杆案例打造讨论会于威海顺利召开。山东大学数字人文实验室副主任陈建红、…

基于Docker部署最新版本Jenkins

一、创建jenkins挂载路径 mkdir /var/jenkins_home chmod 777 /var/jenkins_home二、运行Jenkins最新lts镜像 docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home --restartalways jenkins/jenkins:latest将/var/jenkins_ho…