MySQL - 单表查询

news2024/11/17 6:20:32

DQL (数据查询语言)是用来查询数据库表中的记录的操作。在实际的业务系统中,查询操作的频率远远高于增删改。常见的查询操作包括条件查询、排序、分组等。

1. DQL 语法

SELECT 字段列表 FROM 表名列表 [WHERE 条件列表] [GROUP BY 分组字段] 
[HAVING 分组后条件] [ORDER BY 排序字段] [LIMIT 分页参数];

根据不同的需求,可以组合使用这些子句。

2. 基本查询

基本查询指的是不带任何条件的查询操作:

SELECT 字段1, 字段2 FROM 表名;
SELECT * FROM 表名;  -- 查询所有字段,开发中尽量少用
select 字段1 [ as 别名1 ] , 字段2 [ as 别名2 ] from 表名; --设置别名
select distinct 字段列表 from 表名; -- 去除重复记录

3. 条件查询

条件查询通过 WHERE 子句进行筛选,常用运算符包括比较运算符(><=<>LIKE 等)和逻辑运算符(ANDORNOT)。例如:

SELECT * FROM tb_emp WHERE name = '张三';  -- 查询姓名为张三的员工
SELECT * FROM tb_emp WHERE entrydate BETWEEN '2000-01-01' AND '2010-01-01';  -- 查询入职时间在2000-2010年的员工

学习条件查询就是学习条件的构建方式,而在SQL语句当中构造条件的运算符分为两类:

(1)比较运算符

(2)逻辑运算符

4. 聚合函数

前面的查询都是横向查询,就是根据条件一行一行的进行判断,而使用聚合函数查询就是纵向查 询,它是对一列的值进行计算,然后返回一个结果值。(将一列数据作为一个整体,进行纵向计算)

聚合函数用于对一列数据进行统计操作,常用的函数有:

  • COUNT:统计行数

  • SUM:求和

  • AVG:计算平均值

  • MAX:求最大值

  • MIN:求最小值

select 聚合函数(字段列表) from 表名 ;

SELECT COUNT(*) FROM tb_emp;

5. 分组查询

分组其实就是按列进行分类(指定列下相同的数据归为一类),然后可以对分类完的数据进行合并计算。

分组查询通常会使用聚合函数进行计算。

分组查询将数据按某个字段分类,可以结合聚合函数使用。例如,按性别统计员工数量:

SELECT gender, COUNT(*) FROM tb_emp GROUP BY gender;

select 字段列表 from 表名 [where 条件] group by 分组字段名 [having
分组后过滤条件];

注意事项:

分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义

执行顺序:where > 聚合函数 > having

wherehaving区别

(1)执行时机不同

where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。

(2)判断条件不同

where不能对聚合函数进行判断,而having可以。

6. 排序查询

排序查询通过 ORDER BY 子句指定字段升序(ASC)或降序(DESC)排序。例如,按入职时间升序排列:

SELECT * FROM tb_emp ORDER BY entrydate ASC;


select 字段列表
from 表名
[where 条件列表]
[group by 分组字段 ]
order by 字段1 排序方式1 , 字段2 排序方式2 … ;

排序方式: ASC :升序(默认值,可以不写)                 DESC:降序

注意事项:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序

7. 分页查询

分页查询在业务系统中非常常见,MySQL 使用 LIMIT 进行分页:

SELECT * FROM tb_emp LIMIT 0, 5;  -- 查询第1页,每页5条记录
SELECT * FROM tb_emp LIMIT 5, 5;  -- 查询第2页,每页5条记录

select 字段列表 from 表名 limit 起始索引, 查询记录数 ;

注意事项:

1. 起始索引从0开始。 计算公式 : 起始索引 = (查询页码 - 1* 每页显示记录数

2. 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT

3. 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 条数

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

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

相关文章

玩转图像处理:Python与OpenCV实现高效绿幕背景替换

文章目录 前言色度抠图技术&#xff08;Chroma Keying&#xff09;基本原理 数据准备代码实现性能分析代码优化优化后的速度 前言 现阶段绿幕抠图有很多种方式&#xff0c;比如色度抠图&#xff08;Chroma Keying&#xff09;、亮度抠图&#xff08;Luma Keying&#xff09;、色…

探索Python网络世界的利器:Requests-HTML库

文章目录 探索Python网络世界的利器&#xff1a;Requests-HTML库背景&#xff1a;为何选择Requests-HTML&#xff1f;什么是Requests-HTML&#xff1f;如何安装Requests-HTML&#xff1f;5个简单库函数的使用方法3个场景下库的使用示例常见Bug及解决方案总结 探索Python网络世界…

Acwing 质数

1.试除法判定质数 首先回顾一下什么是质数&#xff1f; 对所有大于1的自然数&#xff0c;如果这个数的约数只包含1和它本身&#xff0c;则这个数被称为质数或者素数 试除法&#xff1a;对于一个数n&#xff0c;从2枚举到n-1&#xff0c;若有数能够整除n&#xff0c;则说明除…

C# 泛型使用案例_C# 泛型使用整理

一、系统自带常用的泛型 1.字典&#xff0c;集合 //字典 Dictionary<string, int> dic new Dictionary<string, int>(); //泛型集合 List<int> list new List<int>(); 2.泛型委托&#xff0c;输入参数&#xff0c;输出参数 //泛型 委托---输出参…

nuclei配合burpsuite快速生成POC

nuclei配合burpsuite快速生成POC 简介 Nuclei是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发&#xff0c;具有很强的可配置性、可扩展性和易用性 官网&#xff1a;https://nuclei.projectdiscovery.io Nuclei项目地址&#xff1a;https://github.com/…

生物信息常用编辑器:轻量/强大/可定制/跨平台支持的编辑器之神 - vim

Emacs 被誉为神的编辑器&#xff0c;而 vim 是编辑器之神。本人曾经是 Emacs 的粉丝&#xff0c;不过后来不知不觉&#xff0c;已经是 vim 的重度用户&#xff0c;而 Emacs 却很长时间没用了。 如果你开始在生物信息学中编写代码或处理大量文本数据&#xff0c;选择一个合适的文…

【C语言刷力扣】2079.给植物浇水

题目&#xff1a; 解题思路&#xff1a; 面对每一株植物有两种情况 水够 or 水不够&#xff1a; 水够&#xff1a; result 加1即向前走一步水不够&#xff1a; 走回河边再走回来并向前走一步&#xff0c;走到下一植物 result 2 * i 1 int wateringPlants(int* plants, int…

Cluster Explanation via Polyhedral Descriptions

通过多面体描述进行聚类解释 本文关注聚类描述问题&#xff0c;即在给定数据集及其聚类划分的情况下&#xff0c;解释这些聚类的任务。我们提出了一种新的聚类解释方法&#xff0c;通过在每个聚类周围构建一个多面体&#xff0c;同时最小化最终多面体的复杂性或用于描述的特征…

2024-9-28 QT登录框基础练习

1.头文件 #ifndef LOGINWINDOW_H #define LOGINWINDOW_H#include <QWidget> #include <QPushButton> #include <QLineEdit> #include <QVBoxLayout>class LoginWindow : public QWidget {Q_OBJECTpublic:// 构造函数LoginWindow(QWidget *parent nul…

卸载WSL(Ubuntu),卸载linux

禁用 WSL 功能 打开 Windows 功能&#xff1a; 按下 Windows R 打开运行对话框&#xff0c;输入 optionalfeatures&#xff0c;然后按回车。 禁用 WSL&#xff1a; 在弹出的 Windows 功能窗口中&#xff0c;找到 适用于 Linux 的 Windows 子系统&#xff08;Windows Subsystem…

2024年咸宁中级职称水平测试合格公示

工程系列水测合格549人 农业系列水测合格18人 新闻系列水测合格37人 档案系列水测合格16人 看来每年评工程类职称 人员还是占大多数 关于咸宁初级、中级职称评审更多需要了解的可以留言

.NET 开源的功能强大的人脸识别 API

给大家推荐一款.NET 开源提供了强大的人脸识别 API&#xff0c;工具不仅易于集成&#xff0c;还具备高效处理能力。 本文将介绍一款如何利用这些API&#xff0c;为我们的项目添加智能识别的亮点 GitHub 上拥有 1.2k 星标的 C# 面部识别 API 项目&#xff1a;FaceRecognitionD…

传知代码-基于图神经网络的知识追踪方法(论文复现)

代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 1.论文概述 论文链接提出了一种基于图神经网络的知识追踪方法&#xff0c;称为基于图的知识追踪&#xff08;GKT&#xff09;。将知识结构构建为图&#xff0c;其中节点对应于概念&#xff0c;边对应于它们之间的…

Jupyter Notebook 更换主题

1、安装 Jupyter 主题 pip install jupyterthemes 2、更新 Jupyter 主题 &#xff08;可选&#xff09; pip install --upgrade jupyterthemes 3、查看可用的 Jupyter 主题 jt -l 4、更换 Jupyter 主题 选择你喜欢的主题后&#xff0c;可以使用以下命令来应用它。更换主题后…

个人健康管理小程序(源码+参考文档+定制)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

Python 潮流周刊#71:PyPI 应该摆脱掉它的赞助依赖

△△请给“Python猫”加星标 &#xff0c;以免错过文章推送 本周刊由 Python猫 出品&#xff0c;精心筛选国内外的 250 信息源&#xff0c;为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景&#xff1a;帮助所有读者精进 Python 技术&am…

如何安装和设置 Go 版本的 fabric AI 工作流框架?

痛点 今年 6 月份&#xff0c;我给你介绍了 fabric 这款 AI 工作流工具。 它包裹了大量的优秀提示词&#xff0c;可以处理各种你日常工作、学习和科研中的事务性工作。包括但不限于&#xff1a; 从视频当中提取要点撰写博客给研究评分…… 不少读者看过之后&#xff0c;大呼有用…

代码随想录Day 59|图论Part09,dijkstra(堆优化版)精讲、Bellman_ford算法精讲

提示&#xff1a;DDU&#xff0c;供自己复习使用。欢迎大家前来讨论~ 文章目录 图论part09dijkstra&#xff08;堆优化版&#xff09;精讲图的存储邻接矩阵邻接表 Bellman_ford 算法精讲模拟过程代码总结 图论part09 dijkstra&#xff08;堆优化版&#xff09;精讲 图的存储…