SQL— DQL语句学习【后端 11】

embedded/2024/10/18 23:23:10/

DQL语句

请添加图片描述

引言

DQL(Data Query Language,即数据查询语言)是SQL(Structured Query Language)中用于从数据库中检索数据的重要部分。在数据库管理中,DQL语句是日常工作中最常用的工具之一。通过DQL,我们能够从数据库中获取所需的信息,实现数据的精准提取。本文将详细介绍DQL的基础语法,包括基本查询、条件查询、聚合查询、分组查询、排序查询、分页查询等核心内容,并结合具体案例进行说明。


基础语法

SELECT语句

SELECT语句是DQL的核心,用于从数据库表中选取数据,其基本语法如下:

sql">SELECT column1, column2, ...  
FROM table_name;

要查询表中的所有列,可以使用星号(*)作为通配符,表示“选取所有列”:

sql">SELECT *  
FROM table_name;

示例:

假设我们有一个employees表,结构如下:

idnamepositionsalarydepartment
1AliceManager6000HR
2BobAnalyst4000Finance
3CarolEngineer5000IT

查询所有员工信息:

sql">SELECT *  
FROM employees;

查询特定列,如员工姓名和职位:

sql">SELECT name, position  
FROM employees;

WHERE子句

WHERE子句用于筛选满足条件的记录。其基本语法为:

sql">SELECT column1, column2, ...  
FROM table_name  
WHERE condition;

条件可以是数值、字符串或日期的比较,也可以通过逻辑运算符(ANDORNOT)组合多个条件。

示例:

查询薪资大于4500的员工信息:

sql">SELECT *  
FROM employees  
WHERE salary > 4500;

查询属于“IT”部门的员工:

sql">SELECT *  
FROM employees  
WHERE department = 'IT';

你还可以组合条件,查询薪资大于4000且职位为“Engineer”的员工:

sql">SELECT *  
FROM employees  
WHERE salary > 4000 AND position = 'Engineer';

基本查询

基本查询是DQL最常见的操作。你只需指定要查询的列和表名即可。

示例:

查询所有学生信息:

sql">SELECT * FROM students;

查询学生的idnameage

sql">SELECT id, name, age FROM students;

条件查询

条件查询通过WHERE子句进行数据过滤,返回满足特定条件的记录。还可以使用INBETWEEN等操作符进行复杂查询。

示例:

查询年龄在18到25岁之间的学生信息:

sql">SELECT *  
FROM students  
WHERE age BETWEEN 18 AND 25;

查询学生所在城市为“New York”或“Los Angeles”的记录:

sql">SELECT *  
FROM students  
WHERE city IN ('New York', 'Los Angeles');

聚合查询

聚合查询通过聚合函数对一组值进行计算,常见的聚合函数包括COUNT()SUM()AVG()MAX()MIN()。这些函数可以帮助你快速获得统计信息。

示例:

查询学生总数:

sql">SELECT COUNT(*)  
FROM students;

计算各城市的学生总数:

sql">SELECT city, COUNT(*)  
FROM students  
GROUP BY city;

查询最高薪资:

sql">SELECT MAX(salary)  
FROM employees;

分组查询

分组查询使用GROUP BY子句,将结果集按一列或多列进行分组。常与聚合函数结合使用,返回每个分组的统计结果。

示例:

按城市分组,查询每个城市的平均学生年龄:

sql">SELECT city, AVG(age) AS avg_age  
FROM students  
GROUP BY city;

分组后可以使用HAVING子句对分组结果进行过滤。例如,查询平均年龄大于20岁的城市:

sql">SELECT city, AVG(age) AS avg_age  
FROM students  
GROUP BY city  
HAVING AVG(age) > 20;

排序查询

ORDER BY子句用于对查询结果按指定列进行排序。可以按升序(ASC)或降序(DESC)排序。

示例:

按年龄升序排列学生信息:

sql">SELECT * FROM students  
ORDER BY age ASC;

按薪资降序排列员工信息:

sql">SELECT * FROM employees  
ORDER BY salary DESC;

你也可以按多列排序,例如,先按部门升序,然后按薪资降序排列:

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

分页查询

分页查询在处理大数据集时尤为重要,避免一次性加载过多数据导致性能问题。在MySQL中,LIMIT子句可以帮助实现分页。

示例:

查询第1页的数据,每页显示5条记录:

sql">SELECT *  
FROM students  
LIMIT 0, 5;

查询第2页的数据,每页显示5条记录:

sql">SELECT *  
FROM students  
LIMIT 5, 5;

如果要查询第n页的数据,可以通过公式(n-1)*每页记录数来确定起始位置。


结论

DQL是数据库查询的核心工具,熟练掌握它能够帮助你从海量数据中高效提取有价值的信息。通过结合基本查询、条件查询、聚合查询、分组查询、排序查询和分页查询,你可以实现对数据的灵活操控。希望本文的讲解和示例能够帮助你更好地理解和运用DQL语句。


http://www.ppmy.cn/embedded/98132.html

相关文章

【C++】stack和queue

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…

vue3中引入插件报ts报错Could not find a declaration file for module

引入第三方组件时,下载了组件还是报ts错误Could not find a declaration file for module 解决办法 1. 下载这个插件的ts库(有的没有ts库就用下面这种方式) 2. 在src下创建一个shims-vue.d.ts文件(简单直接,我用的这种…

密码学之AES算法

文章目录 1. AES简介1.1 AES算法的历史背景1.2 AES算法的应用领域 2. AES加解密流程图2. AES算法原理2.1 AES加密过程2.2 AES解密过程 1. AES简介 1.1 AES算法的历史背景 AES算法,全称为Advanced Encryption Standard(高级加密标准)&#x…

【开源分享】CommLite 跨平台文本UI串口调试助手

文章目录 1. 简介2. 编译3. 使用4. 借鉴&思考参考 1. 简介 CommLite是一款基于CSerialPort的文本UI串口调试助手。 gitee仓库 2. 编译 编译非常简单,按照文档操作即可: $ git clone --depth1 https://github.com/itas109/CommLite.git $ cd Comm…

二分查找-69.x的平方根

题目描述 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。 69. x …

全球最强AI程序员 “Genie” 横空出世

全球最强AI程序员 “Genie” 横空出世 Genie 是什么Genie not just a copilot那么如何训练一名AI工程师呢Genie启动 World’s best AI Software Engineer. Genie is the best AI software engineer in the world by far - achieving a 30% eval score on the industry standard…

浅谈JVM

JVM(Java Virtual Machine,Java虚拟机) JVM是Java程序能够跨平台运行的关键所在。 JVM是一个虚拟的计算机,它模拟了真实计算机的各种硬件功能。其主要作用是加载.class字节码文件,并执行其中的指令。 以下是JVM的一…

【stm32项目】多功能智能家居室内灯光控制系统设计与实现(完整工程资料源码)

多功能智能家居室内灯光控制系统设计与实现 目录: 目录: 前言: 一、项目背景与目标 二、国内外研究现状: 2.1 国内研究现状: 2.2 国外研究现状: 2.3 发展趋势 三、硬件电路设计 3.1 总体概述 3.2 硬件连接总…