当前位置: 首页 > news >正文

MySQL基础函数使用

目录

简介

1. 单行函数

1.1 字符串函数

1.2 日期函数

1.3 数值函数

1.4 转换函数

1.5 其他函数

2. 多行函数

示例:

3. 数据分组

示例:

4. DQL单表关键字执行顺序

示例:

5. 多表查询

示例:

6. 表与表的外连接

示例:

7. 表与表的自连接

8. 表与表的子连接

9. 表与表的伪表查询


简介

在数据库操作中,函数是不可或缺的工具,它们可以帮助我们快速处理数据、转换格式、进行计算等。MySQL提供了丰富的内置函数,涵盖了字符串、日期、数值、转换等多种类型。本文将详细介绍MySQL中的基础函数使用方法,帮助你更好地理解和应用这些函数。

1. 单行函数

单行函数是指对一行数据进行操作并返回一行数据的函数。无论输入多少行数据,单行函数都会逐行处理并返回相应的结果。

1.1 字符串函数

字符串函数主要用于处理字符串数据,常见的字符串函数包括:

  • LENGTH: 返回字符串的长度。

    SELECT ename, LENGTH(ename) FROM emp;
  • SUBSTR: 截取字符串的一部分。

    SELECT ename, SUBSTR(ename, 1, 3) FROM emp;
    SELECT * FROM emp WHERE SUBSTR(ename, 5, 1) = 'S';
  • UPPER/LOWER: 将字符串转换为大写或小写。

    SELECT ename, UPPER(ename), LOWER(ename) FROM emp;
  • CONCAT: 拼接字符串。

    SELECT CONCAT(empno, '=', ename) FROM emp;
  • REPLACE: 替换字符串中的指定字符。

    SELECT ename, REPLACE(ename, 'T', '—') FROM emp;

1.2 日期函数

日期函数用于处理日期和时间数据,常见的日期函数包括:

  • SYSDATE(): 获取当前系统时间。

    SELECT hiredate, SYSDATE() FROM emp;
    SELECT hiredate, CURRENT_DATE(), CURRENT_TIME(), CURRENT_TIMESTAMP() FROM emp;
  • DATE_FORMAT: 格式化日期。

    SELECT DATE_FORMAT(SYSDATE(), '%Y-%m-%d %H:%i:%s');
    SELECT hiredate, DATE_FORMAT(NOW(), '%Y年%m月%d日 %H时%i分%s秒') FROM emp;
  • ADDDATE: 对日期进行加减操作。

    SELECT hiredate, ADDDATE(hiredate, 9), ADDDATE(hiredate, -9) FROM emp;

1.3 数值函数

数值函数用于处理数值数据,常见的数值函数包括:

  • CEIL/FLOOR: 向上或向下取整。

    SELECT CEIL(12.1), FLOOR(12.9);
  • ROUND/TRUNCATE: 四舍五入或截取指定小数位。

    SELECT ROUND(1.4999999, 2), ROUND(1.4999999), ROUND(1.4999999, -1);
    SELECT TRUNCATE(1.4999999, 2);

1.4 转换函数

转换函数用于在不同数据类型之间进行转换,常见的转换函数包括:

  • DATE_FORMAT: 将日期转换为字符串。

    SELECT DATE_FORMAT(SYSDATE(), '%Y-%m-%d %H:%i:%s');
  • STR_TO_DATE: 将字符串转换为日期。

    SELECT STR_TO_DATE('2020-4-16 17:15:24', '%Y-%c-%d %H:%i:%s');

1.5 其他函数

其他函数包括处理空值、加密等操作:

  • IFNULL: 处理空值。

    SELECT IFNULL(comm, 888) FROM emp;
  • MD5/AES_ENCRYPT/AES_DECRYPT: 加密和解密。

SELECT MD5('123456');
SELECT AES_ENCRYPT('123456', 'abcd'), AES_DECRYPT(AES_ENCRYPT('123456', 'abcd'), 'abcd');

2. 多行函数

多行函数是对多行数据进行操作并返回一行数据的函数。常见的多行函数包括:

  • MAX/MIN: 获取最大值或最小值。

  • AVG: 计算平均值。

  • SUM: 求和。

  • COUNT: 统计总数。

示例:

  • 查询每个部门的平均薪资

    SELECT deptno, AVG(sal) FROM emp GROUP BY deptno;
  • 查询公司最高薪资的员工

    SELECT ename, sal FROM emp WHERE sal = (SELECT MAX(sal) FROM emp);

3. 数据分组

数据分组是将数据按照某个条件进行分组,并对每组数据进行统计。常见的分组操作包括:

  • GROUP BY: 对数据进行分组。

  • HAVING: 对分组后的数据进行过滤。

示例:

  • 查询每个部门的最高薪资和最低薪资

    SELECT deptno, MAX(sal), MIN(sal) FROM emp GROUP BY deptno;
  • 查询每个部门的人数和每月工资总数

    SELECT deptno, COUNT(*), SUM(sal) FROM emp GROUP BY deptno;
  • 查询每个部门,每种工作的平均薪资

    SELECT deptno, job, AVG(sal) FROM emp GROUP BY deptno, job;
  • 查询平均薪资高于2500的部门

    SELECT deptno, AVG(sal) FROM emp GROUP BY deptno HAVING AVG(sal) > 2500;

4. DQL单表关键字执行顺序

在SQL查询中,关键字的执行顺序非常重要。常见的执行顺序如下:

  1. FROM: 指定数据来源。

  2. WHERE: 行级过滤。

  3. GROUP BY: 数据分组。

  4. SELECT: 选择显示的列。

  5. HAVING: 组级过滤。

  6. ORDER BY: 排序。

  7. LIMIT: 限制返回的行数。

示例:

  • 查询10和20部门中,在二月份入职的员工,每个部门中平均薪资高于1500的工作,并按照部门和平均薪资排序

    SELECT deptno, job, AVG(sal) 
    FROM emp 
    WHERE MONTH(hiredate) = 2 AND deptno IN (10, 20) 
    GROUP BY deptno, job 
    HAVING AVG(sal) > 1500 
    ORDER BY deptno, AVG(sal);

5. 多表查询

多表查询是指从多张表中获取数据。常见的多表查询方式包括:

  • 等值连接: 通过等值条件连接两张表。

  • 自然连接: 自动选择列名相同且类型相同的列进行连接。

  • USING: 指定连接列。

  • ON: 指定连接条件。

示例:

  • 查询每个员工所在的部门名称

    SELECT e.ename, d.dname 
    FROM emp e 
    JOIN dept d ON e.deptno = d.deptno;
  • 查询薪资大于2000的员工姓名和部门名称

    SELECT e.ename, d.dname 
    FROM emp e 
    JOIN dept d ON e.deptno = d.deptno 
    WHERE e.sal > 2000;

6. 表与表的外连接

外连接用于在关联查询中显示未匹配的数据。常见的外连接包括:

  • 左外连接: 显示左表所有数据。

  • 右外连接: 显示右表所有数据。

示例:

  • 统计每个部门的人数

    SELECT d.dname, COUNT(e.empno) 
    FROM dept d 
    LEFT JOIN emp e ON d.deptno = e.deptno 
    GROUP BY d.dname;

7. 表与表的自连接

自连接是指将一张表视为两张表进行查询。常见的自连接操作包括:

  • 查询每个员工与其直属领导的名字

    SELECT e1.ename AS employee, e2.ename AS manager 
    FROM emp e1 
    LEFT JOIN emp e2 ON e1.mgr = e2.empno;

8. 表与表的子连接

子连接是指将一个查询结果作为另一个查询的条件。常见的子连接操作包括:

  • 查询公司中谁的薪资高于平均薪资

    SELECT ename, sal 
    FROM emp 
    WHERE sal > (SELECT AVG(sal) FROM emp);
  • 查询谁的薪资高于20部门员工的薪资

    SELECT ename, sal 
    FROM emp 
    WHERE sal > (SELECT AVG(sal) FROM emp WHERE deptno = 20);

9. 表与表的伪表查询

伪表查询是指将多个查询结果作为伪表进行管理。常见的伪表查询操作包括:

  • 查询高于自己部门平均薪资的员工信息

    SELECT e.ename, e.sal, e.deptno 
    FROM emp e 
    JOIN (SELECT deptno, AVG(sal) AS avg_sal FROM emp GROUP BY deptno) AS dept_avg 
    ON e.deptno = dept_avg.deptno 
    WHERE e.sal > dept_avg.avg_sal;

相关文章:

MySQL基础函数使用

目录 简介 1. 单行函数 1.1 字符串函数 1.2 日期函数 1.3 数值函数 1.4 转换函数 1.5 其他函数 2. 多行函数 示例: 3. 数据分组 示例: 4. DQL单表关键字执行顺序 示例: 5. 多表查询 示例: 6. 表与表的外连接 示例…...

解决docker环境下aspose-words转换word成pdf后乱码问题

描述 环境&#xff1a;docker 部署工具&#xff1a;Jenkins 需求&#xff1a;本地上传的word文档需要转换成pdf 问题&#xff1a;转换之后的pdf文档出现小框框&#xff08;乱码&#xff09; 转换成PDF的操作 pom&#xff1a; <dependency><groupId>org.apach…...

C# 生成随机数的方法

C# 提供了一种强大而方便的工具类 Random &#xff0c;用于生成随机数。这里将分类讨论如何通过 C# 实现随机数生成&#xff0c;以及应用于实际情况中的一些具体方案。 一、Random 类概述 Random 类表示一个伪随机数生成器&#xff0c;用于生成满足随机性统计要求的数字序列。…...

ip_done

文章目录 路由结论 IP分片 数据链路层重谈Mac地址MAC帧报头局域网的通信原理MSS&#xff0c;以及MAC帧对上层的影响ARP协议 1.公司是不是这样呢? 类似的要给运营商交钱&#xff0c;构建公司的子网&#xff0c;具有公司级别的入口路由器 2&#xff0e;为什么要这样呢?? IP地…...

3D可视化引擎HOOPS Visualize与HOOPS Luminate Bridge的功能与应用

HOOPS Visualize HPS / HOOPS Luminate Bridge为开发者提供了强大的工具&#xff0c;用于在CAD应用中集成逼真的渲染能力。本文旨在梳理该桥接产品的核心功能、使用方法及应用场景&#xff0c;为用户快速上手并充分利用产品特性提供指导。 桥接产品的核心功能概述 HOOPS Lumi…...

Docder 搭建Redis分片集群 散片插槽 数据分片 故障转移 Java连接

介绍 使多个 Redis 实例共同工作&#xff0c;实现数据的水平扩展。通过将数据分片到多个节点上&#xff0c;Redis 集群能够在不牺牲性能的前提下扩展存储容量和处理能力&#xff0c;从而支持更高并发的请求。Redis 集群不仅支持数据分片&#xff0c;还提供了自动故障转移和高可…...

校园交友app/校园资源共享小程序/校园圈子集合二手物品交易论坛、交友等综合型生活服务社交论坛

多客校园社交圈子系统搭建 校园交友多功能系统源码: 1、更改学校为独立的模块。整体UI改为绿色&#xff0c;青春色&#xff0c;更贴近校园风格。2、圈子归纳到学校去进行运营。每个学校可建立多个圈子。和其他学校圈子互不干扰。3、增加用户绑定学校&#xff0c;以后进入将默认…...

Chaos Mesh云原生的混沌测试平台搭建

Chaos Mesh云原生的混沌测试平台搭建 一.环境准备 ​ 确认已经安装helm&#xff0c;如要查看 Helm 是否已经安装&#xff0c;请执行如下命令&#xff1a; helm version二.使用helm安装 1.添加 Chaos Mesh 仓库 ​ 在 Helm 仓库中添加 Chaos Mesh 仓库&#xff1a; helm re…...

Vue3之组合式API详解

Vue 3引入了一种新的API风格——组合式API&#xff08;Composition API&#xff09;&#xff0c;旨在提升组件的逻辑复用性和可维护性。本文将详细阐述Vue 3中的组合式API&#xff0c;包括其定义、特点、使用场景、优势等&#xff0c;并给出具体的示例代码。 一、定义 组合式…...

大模型的构建与部署(3)——数据标注

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl1. 数据标注的重要性 1.1 增强数据可解释性 数据标注通过为原始数据添加标签或注释,显著增强了数据的可解释性。在机器学习和深度学习领域,模型的训练依赖于大量带标签的数据。这些标签不仅帮助…...

AI发展与LabVIEW程序员就业

人工智能&#xff08;AI&#xff09;技术的快速发展确实对许多行业带来了变革&#xff0c;包括自动化、数据分析、软件开发等领域。对于LabVIEW程序员来说&#xff0c;AI的崛起确实引发了一个值得关注的问题&#xff1a;AI会不会取代他们的工作&#xff0c;导致大量失业&#x…...

本地事务 + 消息队列事务方案设计

Spring Boot 和 RocketMQ 在Spring Boot项目中实现“本地事务 消息队列事务”的方案&#xff0c;可以按照以下步骤实现&#xff1a; 先执行MySQL本地事务操作&#xff08;未提交&#xff09;随后发送消息到消息队列&#xff08;如RocketMQ事务消息&#xff09;等待消息队列确…...

pinctrl子系统学习笔记

一、背景 cpu的gpio引脚可以复用成多个功能&#xff0c;如可以配置成I2C或者普通GPIO模式。配置方式一般是通过写引脚复用的配置寄存器&#xff0c;但是不同芯片厂商配置寄存器格式内容各不相同&#xff0c;设置引脚复用无法做到通用且自由的配置&#xff0c;只能在启动初始化…...

使用vue-element 的计数器inputNumber,传第三个参数

使用vue-element 的计数器inputNumber。 其中的change 事件中&#xff0c;默认自带两个参数&#xff0c;currentValue和oldValue&#xff0c;分别代表改变后的数和改变前的数&#xff0c; 如果想要传第三个参数&#xff0c; change"(currentValue, oldValue) > numCha…...

如何从0构建一个flask项目,直接上实操!!!

项目结构 首先&#xff0c;创建一个项目目录&#xff0c;结构如下&#xff1a; flask_app/ │ ├── app.py # Flask 应用代码 ├── static/ # 存放静态文件&#xff08;如CSS、JS、图片等&#xff09; │ └── style.css # 示例…...

Mongoose连接数据库操作实践

文章目录 介绍特点&#xff1a;Mongoose 使用&#xff1a;创建项目并安装&#xff1a;连接到 MongoDB&#xff1a;定义 Schema&#xff1a;创建模型并操作数据库&#xff1a;创建文档&#xff1a;查询文档&#xff1a;更新文档&#xff1a;删除文档&#xff1a;使用钩子&#x…...

centos 7.9 freeswitch1.10.9环境搭建

亲测版本centos 7.9系统–》 freeswitch1.10.9 一、下载插件 yum install -y git alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel libdb4-devel e2fsprogs-devel erlang flite-devel g722_1-devel gcc-c++ gdbm-devel gnutls-devel ilbc2...

Gitlab服务管理和仓库项目权限管理

Gitlab服务管理 gitlab-ctl start # 启动所有 gitlab 组件&#xff1b; gitlab-ctl stop # 停止所有 gitlab 组件&#xff1b; gitlab-ctl restart # 重启所有 gitlab 组件&#xff1b; gitlab-ctl status …...

LLMs之Llama-3:Llama-3.3的简介、安装和使用方法、案例应用之详细攻略

LLMs之Llama-3&#xff1a;Llama-3.3的简介、安装和使用方法、案例应用之详细攻略 目录 相关文章 LLMs之LLaMA&#xff1a;LLaMA的简介、安装和使用方法、案例应用之详细攻略 LLMs之LLaMA-2&#xff1a;LLaMA 2的简介(技术细节)、安装、使用方法(开源-免费用于研究和商业用途…...

OpenCV函数及其应用

1. 梯度处理的Sobel算子函数 功能 Sobel算子是一种用于边缘检测的离散微分算子&#xff0c;它结合了高斯平滑和微分求导&#xff0c;用于计算图像亮度的空间梯度。 参数 src&#xff1a;输入图像。 dst&#xff1a;输出图像。 ddepth&#xff1a;输出图像的深度。 dx&#xff…...

react为啥不像vue3一样做diff优化(双端diff和最长递增子序列)

React 不是不能做 LIS / 双端 Diff&#xff0c; 而是 React 的架构目标 不追求 DOM 最优&#xff0c;追求调度最优 所以它故意不做 Vue 那套极致 Diff 优化。 一、先给结论&#xff08;面试直接说&#xff09; React 不做极致 Diff 优化&#xff0c;是因为它的架构方向是&…...

Llama-3.2-3B优化指南:Ollama性能调优,让模型跑得更快更稳

Llama-3.2-3B优化指南&#xff1a;Ollama性能调优&#xff0c;让模型跑得更快更稳 1. 为什么需要优化Llama-3.2-3B&#xff1f; Llama-3.2-3B作为一款30亿参数的轻量级大语言模型&#xff0c;在消费级硬件上表现出色。但在实际部署中&#xff0c;很多用户会遇到性能瓶颈&…...

Hackintool终极指南:三步解决黑苹果显卡、音频和USB配置难题

Hackintool终极指南&#xff1a;三步解决黑苹果显卡、音频和USB配置难题 【免费下载链接】Hackintool The Swiss army knife of vanilla Hackintoshing 项目地址: https://gitcode.com/gh_mirrors/ha/Hackintool 还在为黑苹果配置而烦恼吗&#xff1f;显卡驱动不工作、音…...

区块链+AI的致命组合:深扒某DeFi项目的测试黑幕

在数字经济浪潮中&#xff0c;区块链与人工智能&#xff08;AI&#xff09;的融合被视为金融创新的“致命组合”&#xff0c;尤其在去中心化金融&#xff08;DeFi&#xff09;领域&#xff0c;它承诺了前所未有的效率和智能决策能力。然而&#xff0c;这一组合也带来了隐蔽的测…...

ESP32-S3玩转微雪2.8寸触摸屏:从零到LVGL的保姆级避坑指南(ESP-IDF 5.3)

ESP32-S3与微雪2.8寸触摸屏深度适配&#xff1a;LVGL全流程实战手册 刚拿到微雪2.8寸触摸屏开发板的开发者&#xff0c;往往既兴奋又忐忑——这块搭载ESP32-S3芯片、配备8M PSRAM的硬件平台&#xff0c;理论上能流畅运行LVGL图形库&#xff0c;但实际开发中总会遇到各种"坑…...

MatterGen:AI驱动的无机材料生成革命,开启新材料发现新纪元

MatterGen&#xff1a;AI驱动的无机材料生成革命&#xff0c;开启新材料发现新纪元 【免费下载链接】mattergen Official implementation of MatterGen -- a generative model for inorganic materials design across the periodic table that can be fine-tuned to steer the …...

终极解决方案:5分钟完成DOCX到LaTeX的专业转换指南 [特殊字符]

终极解决方案&#xff1a;5分钟完成DOCX到LaTeX的专业转换指南 &#x1f680; 【免费下载链接】docx2tex Converts Microsoft Word docx to LaTeX 项目地址: https://gitcode.com/gh_mirrors/do/docx2tex 还在为Word文档转换LaTeX格式而烦恼吗&#xff1f;docx2tex就是你…...

CVPR 2025新秀OverLoCK上手实测:在COCO数据集上跑目标检测,比MogaNet-B高1% AP是怎么做到的?

OverLoCK实战指南&#xff1a;如何在COCO目标检测任务中超越MogaNet-B 1% AP 计算机视觉领域的主干网络架构正在经历一场静默革命。2025年CVPR最新收录的OverLoCK网络以其创新的"先概览再聚焦"设计理念&#xff0c;在多个视觉任务中展现出惊人的性能突破。本文将带您…...

Python 3.14 JIT架构深度拆解(含官方未发布IR层流程图+Hot Code Path决策树)

第一章&#xff1a;Python 3.14 JIT编译器演进背景与设计哲学Python 长期以来以解释执行和动态灵活性著称&#xff0c;但性能瓶颈在数值计算、实时服务与高吞吐系统中日益凸显。CPython 解释器的字节码执行模型虽稳定可靠&#xff0c;却难以突破单线程 GIL 与逐指令解释带来的固…...

FileConverter:重构文件格式转换流程,实现设计师与教育工作者的效率突破

FileConverter&#xff1a;重构文件格式转换流程&#xff0c;实现设计师与教育工作者的效率突破 【免费下载链接】FileConverter File Converter is a very simple tool which allows you to convert and compress files using the context menu in windows explorer. 项目地…...