MySQL-DQL(基本、条件、分组、排序、分页)详细版

news/2025/3/9 13:35:09/文章来源:https://www.cnblogs.com/m877087643/p/18760634

在MySQL数据库中,数据查询语言(DQL)是用于检索数据库中数据的SQL语句的集合。它常用的语句是 SELECT。以下是使用 SELECT语句进行基本查询、条件查询、分组、排序和分页操作的详细解析。

基本查询

基本查询是最简单的查询,通常用于检索一个或多个表的全部或部分列。例如:

SELECT * FROM employees;
 
 

这条语句检索 employees表中的所有记录及其所有列。

如果只需要获取特定的列,可以指定列名:

SELECT employee_id, name, department FROM employees;
 
 

这会返回 employee_idname和 department列。

条件查询

在基本查询的基础上,我们可以添加 WHERE子句来指定条件,从而精确过滤数据:

SELECT * FROM employees WHERE department = 'Sales';
 
 

这个语句将只返回销售部门(Sales)的员工记录。

更复杂的条件可以使用AND、OR和NOT逻辑运算符组合起来:

SELECT * FROM employees WHERE department = 'Sales' AND salary > 5000;
 
 

这会返回销售部门中工资超过5000的员工记录。

分组查询

当需要对数据进行聚合时(例如,计算平均工资、最高工资),我们会用到 GROUP BY子句:

SELECT department, AVG(salary) AS average_salary FROM employees GROUP BY department;
 
 

此语句按部门对员工的工资进行分组,并计算每个部门的平均工资。

排序查询

为了对结果集进行排序,ORDER BY子句被执行。它可以根据一个或多个列的升序或降序来排序数据:

SELECT * FROM employees ORDER BY salary DESC;
 
 

上述语句按工资从高到低的顺序返回员工记录。

也可以按多个列排序:

SELECT * FROM employees ORDER BY department ASC, salary DESC;
 
 

这会首先按部门名称升序排序,如果部门名称相同,则按工资降序排序。

分页查询

在处理大量数据时,我们经常需要对结果进行分页。LIMIT子句可以限制结果集的大小,而 OFFSET可以指定从哪条记录开始取数据:

SELECT * FROM employees LIMIT 10 OFFSET 30;
 
 

这将返回从第31条记录开始的10条记录。这用于实现分页功能,其中每页显示10条记录,并且是第4页的数据。

结合使用

在实际应用中,这些子句经常被组合起来,以执行更复杂的查询。例如,你可能想找出每个部门工资最高的10名员工,并按工资降序排列:

SELECT department, name, salary
FROM (SELECT department, name, salary,RANK() OVER (PARTITION BY department ORDER BY salary DESC) as rankFROM employees
) as ranked
WHERE rank <= 10
ORDER BY department, salary DESC;
 
 

这个查询首先对每个部门的员工根据工资进行排序,并赋予它们一个秩序。外层查询随后选择每个部门工资最高的10名员工。

通过这些查询方法,你可以高效地检索、分析和组织MySQL数据库中的数据,以满足各种应用需求。实践中,理解这些SQL语句的基础知识以及它们如何组合起来进行复杂的数据操作是至关重要的。

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

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

相关文章

.net core/IIS/Kestrel 大文件上传大小设置

MultipartBodyLengthLimit 设置每个多部分正文的长度限制。 分析超出此限制的窗体部分时,会引发 InvalidDataException。 默认值为 134,217,728 (128 MB)。 使用 MultipartBodyLengthLimit 中的 Startup.ConfigureServices 设置自定义此限制:public void ConfigureServices(I…

RHEL8操作系统安装方法

目录第一步:打开VMware软件,创建我们的虚拟机(也就是创建一台虚拟的电脑)第二步 载入rhel8版本的iso文件,进行操作系统的安装 第一步:打开VMware软件,创建我们的虚拟机(也就是创建一台虚拟的电脑)说明:这里使用的是NAT网络模式,可以上网,这三种网络的模式讲解可以看…

关于USB声卡导致windows无法自动关闭屏幕或休眠的案例

问题描述:本人买了一台漫步者S880MKII使用自带的type-C线插到笔记本上后,win11系统的超时息屏和超时睡眠功能失效。解决方法:打开设备管理器(图1) 找到以下输出设备,点击事件查看到类似“VID_20B1”信息的设备 (图2) 禁用设备(图3)至此,睡眠功能恢复正常。 注:有副…

P1219 [USACO1.5] 八皇后 Checker Challenge

题目描述 一个如下的 $6 \times 6$ 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列 $2\ 4\ 6\ 1\ 3\ 5$ 来描述,第 $i$ 个数字表示在第 $i$ 行的相应位置有一个棋子,…

专业代加工公司预览-芯晨微纳(河南)光电科技有限公司

一提“代加工”,很多人不自觉的会有几个误区,认为代工就是粗制滥造、没有技术创新,夹缝中求生存。 实际上,代加工也属于技术密集型、设备密集型产业,能为各种企业解决“无设备、无技术、无资金、与工人”等诸多问题,配合企业完成各种验证和测试,称得上企业的最大帮手。 …

JavaWeb学习(八)

JavaWeb学习(八):Web后端开发 —— Spring 目录JavaWeb学习(八):Web后端开发 —— Spring概念SpringBootWeb 快速入门 本文为个人学习记录,内容学习自 黑马程序员概念Spring 是全世界最流行的 Java 框架,它使得 Java 程序更快、更方便、更安全 Spring 提供了多个子项目…

P3629 [APIO2010] 巡逻

P3629 [APIO2010] 巡逻 看题解大佬们都用数学推理求两遍直径的方法,然而萌新并不会这么高级的方式,只能大力分讨了。 思路 对于 \(k=1\) 的情况,加上一条边时,树上出现了一条环且长为 \(S\),环上的原路径都可以少走一遍,再算上新路径要走一遍。此时答案为 \(2 \times (n-…

python——常用函数map、lambda

lambda:英文含义是,希腊字母表第11个字母 https://baijiahao.baidu.com/s?id=1781168343754714555&wfr=spider&for=pc

全面的C#/.NET/.NET Core面试宝典(永久免费)

前言C#/.NET/.NET Core相关技术常见面试题汇总,不仅仅为了面试而学习,更多的是查漏补缺、扩充知识面和大家共同学习、携手进步。该知识库主要由自己平时学习和工作实践总结、网上优秀文章资料收集(这一部分一定会标明来源)和社区小伙伴提供三部分组成。 面试宝典获取方式因…

20241909 2024-2025-2《网络攻防实践》第2次作业

@目录1. 知识点梳理与总结1.1实验要求1.2知识点总结2. 实验过程2.1 实验环境2.2 详细实验过程2.2.1查询baidu.com2.2.2 查询某一好友的IP地址,地理位置2.2.3 使用nmap开源软件对靶机环境进行扫描,回答以下问题并给出操作命令。2.2.4 使用Nessus开源软件对靶机环境进行扫描,回…

dify跨域问题

在本地电脑上,通过vmware安装dify使用时,没有遇到这个问题。 部署dify之后,在添加模型的API-key的时候,一直添加不上,没有反应。打开控制台报错截图如下:报错信息 - Access to fetch at https://marketplace.dify.ai/api/v1/plugins/search/advanced from origin http://…

Program1

实验1 实验1代码 p1: #include<stdlib.h>int main() {printf(" o \n");printf("<H>\n");printf("I I\n");printf(" o \n");printf("<H>\n");printf("I I\n");system("pause");retur…