MySQL 基础学习(3):排序查询和条件查询

MySQL 查询与条件操作:详解与技巧

在本文中,我们将探讨 MySQL 中的查询操作及其相关功能,包括别名、去重、排序查询和条件查询等,并总结一些最佳实践和注意事项。

一、使用别名(AS)

在查询中,我们可以通过 AS 为列或表达式指定别名,使查询结果更易读。

示例

SELECT chinese + math + english AS total FROM exam_result;

这段语句会计算每位学生的总成绩,并用 total 表示结果列。

注意事项

  1. AS 可以省略,但建议写明以提高可读性。
  2. 别名只影响查询结果的列名,不会更改原始表结构。

二、去重查询

使用 DISTINCT 可以去除查询结果中的重复值。

示例

去除单列重复
SELECT DISTINCT math FROM exam_result;

该语句会返回 math 列中唯一的成绩。

去除多列重复
SELECT DISTINCT name, math FROM exam_result;

在多列去重中,只有在所有列的值都相同时,才会被视为重复。

注意事项

  1. DISTINCT 针对的是结果集,而不是原始表中的数据。
  2. 对于大数据量去重操作,可能会影响查询性能。

三、排序查询

通过 ORDER BY 对查询结果排序,可以指定升序(ASC)或降序(DESC)。

示例

单列排序
SELECT * FROM exam_result ORDER BY math DESC;

该语句会根据 math 列的成绩降序排列。

多列排序
SELECT * FROM exam_result ORDER BY math DESC, chinese ASC;

这会先按 math 降序排列,如果 math 相同,再按 chinese 升序排列。

注意事项

  1. 排序操作不会影响硬盘上的数据顺序,只针对查询结果。
  2. 大数据量排序可能会增加查询时间,建议结合索引优化。

四、条件查询

条件查询通过 WHERE 子句筛选符合特定条件的记录。

基本语法

SELECT 列名 FROM 表名 WHERE 条件;

示例

比较运算符
SELECT name, english FROM exam_result WHERE english < 60;

该语句会筛选出英语成绩小于 60 的学生。

逻辑运算符
  • AND: 所有条件必须满足。
  • OR: 任意一个条件满足即可。
  • NOT: 条件不满足时。
SELECT name FROM exam_result WHERE chinese > 80 AND english > 80;

该语句会筛选出语文和英语成绩都高于 80 的学生。

范围运算符
  • BETWEEN ... AND ...: 指定范围内的值。
SELECT name, chinese FROM exam_result WHERE chinese BETWEEN 80 AND 90;

这会筛选出语文成绩在 80 到 90 之间的学生。

模糊查询
  • LIKE: 用于匹配模式。
SELECT name FROM exam_result WHERE name LIKE '张%';

该语句会返回所有名字以“张”开头的学生。


五、表达式与计算

在查询中,可以使用表达式对列进行计算。

示例

SELECT name, chinese + math + english AS total FROM exam_result;

这会计算每位学生的总成绩,并显示为 total 列。

注意事项

  1. WHERE 子句中无法直接使用别名。例如:

    SELECT name, chinese + math + english AS total FROM exam_result WHERE total > 200;
    

    以上语句会报错。

    解决方法:将表达式直接写入 WHERE 子句:

    SELECT name, chinese + math + english AS total FROM exam_result WHERE chinese + math + english > 200;
    
  2. 避免复杂表达式重复书写,可以通过子查询优化。


六、总结

通过熟练掌握 MySQL 的别名、去重、排序和条件查询操作,你可以更高效地从数据库中提取和分析数据。在使用这些功能时,需要特别注意性能优化和语法细节,以确保查询的准确性和效率。如果你对本文有任何疑问或建议,欢迎留言讨论!

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

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

相关文章

数据结构的队列

一.队列 1.队列&#xff08;Queue&#xff09;的概念就是先进先出。 2.队列的用法&#xff0c;红色框和绿色框为两组&#xff0c;offer为插入元素&#xff0c;poll为删除元素&#xff0c;peek为查看元素红色的也是一样的。 3.LinkedList实现了Deque的接口&#xff0c;Deque又…

1. Java-MarkDown文件创建-工具类

Java-MarkDown文件创建-工具类 1. 思路 根据markdown语法&#xff0c;拼装markdown文本内容 2. 工具类 import java.util.Arrays; import java.util.List;/*** Markdown生成工具类* Author: 20004855* Date: 2021/1/15 16:00*/ public class MarkdownGenerator {private Str…

Go学习:格式化输入输出

目录 1. 输出 2. 输入 1. 输出 常用格式&#xff1a; 格式说明%d整型格式%s字符串格式%c字符格式%f浮点数格式%T操作变量所属类型%v自动匹配格式输出 简单示例代码&#xff1a; package mainimport "fmt"func main() {a : 10b : "abc"c : ad : 3.14/…

回顾:Maven的环境搭建

1、下载apache-maven-3.6.0 **网址:**http://maven.apache.org 然后解压到指定的文件夹&#xff08;记住文件路径&#xff09; 2、配置Maven环境 复制bin文件夹 的路径D:\JavaTool\apache-maven-3.6.0\bin 环境配置成功 3、检查是否配置成功 winR 输入cmd 命令行输入mvn -v…

【以音频软件FFmpeg为例】通过Python脚本将软件路径添加到Windows系统环境变量中的实现与原理分析

在Windows系统中&#xff0c;你可以通过修改环境变量 PATH 来使得 ffmpeg.exe 可在任意路径下直接使用。要通过Python修改环境变量并立即生效&#xff0c;如图&#xff1a; 你可以使用以下代码&#xff1a; import os import winreg as reg# ffmpeg.exe的路径 ffmpeg_path …

解决报错“The layer xxx has never been called and thus has no defined input shape”

解决报错“The layer xxx has never been called and thus has no defined input shape”(这里写自定义目录标题) 报错显示 最近在跑yolo的代码时遇到这样一个错误&#xff0c;显示“the layer {self.name} has never been called”.这个程序闲置了很久&#xff0c;每次一遇到…

UE(UltraEdit) 配置简易C/C++编译运行环境

该类型其他帖子 EmEditor 配置简易C/C 编译运行环境_emeditor 代码运行-CSDN博客 RJ TextEd 配置简易C/C 编译运行环境-CSDN博客 这种配置适合ACM竞赛&#xff0c;即要求不使用现代IDE&#xff0c;又想用一个比较好用、至少支持代码高亮的编辑器。 前提条件 1.Mingw GCC 已…

C# 环境:深入探讨与优化

C# 环境:深入探讨与优化 引言 C#(读作“C sharp”)是一种由微软开发的高级编程语言,主要用于创建Windows桌面和服务器应用程序。自2002年首次发布以来,C#已经成为了开发领域中最受欢迎的语言之一。本文将深入探讨C#的环境配置、开发工具、最佳实践以及性能优化等方面,以…

【Unity】 HTFramework框架(五十九)快速开发编辑器工具(Assembly Viewer + ILSpy)

更新日期&#xff1a;2025年1月23日。 Github源码&#xff1a;[点我获取源码] Gitee源码&#xff1a;[点我获取源码] 索引 开发编辑器工具MouseRayTarget焦点视角Collider线框Assembly Viewer搜索程序集ILSpy反编译程序集搜索GizmosElement类找到Gizmos菜单找到Gizmos窗口分析A…

MV结构下设置Qt表格的代理

目录 预备知识 模型 关联 刷新 示例 代理 模型 界面 结果 完整资料见&#xff1a; 所谓MV结构&#xff0c;是“model-view”&#xff08;模型-视图&#xff09;的简称。也就是说&#xff0c;表格的数据保存在model中&#xff0c;而视图由view实现。在我前面的很多博客…

多模态论文笔记——TECO

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细解读多模态论文TECO&#xff08;Temporally Consistent Transformer&#xff09;&#xff0c;即时间一致变换器&#xff0c;是一种用于视频生成的创新模型&…

css中的animation

css的animation animation是一个综合属性,是animation-name, animation-duration, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, animation-fill-mode, animation-play-state, and animation-timeline这些属性的简写 不过在…

C语言编译过程全面解析

今天是2025年1月26日&#xff0c;农历腊月二十七&#xff0c;一个距离新春佳节仅一步之遥的日子。城市的喧嚣中&#xff0c;年味已悄然弥漫——能在这个时候坚持上班的人&#xff0c;真可称为“牛人”了吧&#xff0c;哈哈。。。。 此刻&#xff0c;我在重新审视那些曾被遗忘的…

PTA乙级1006~1010【c++】

1006 换个格式输出整数 #include <iostream> using namespace std;int main(){int n;cin >> n;int b n / 100;int s n / 10 % 10;int g n % 10;for (int i 0; i < b; i ) cout << B;for (int i 0; i < s; i ) cout << S;for (int i 0; …

乐优商城项目总结

文章目录 项目简介微服务集群1.enreka注册中心2. zuul网关3. 公共工具类4. 商品微服务5. 文件上传微服务6. 搜索微服务7. 页面静态化微服务8. 用户微服务9. 短信微服务10. 认证微服务11. 购物车微服务12. 订单微服务项目最大的收获项目遇到的问题 项目简介 乐优商城是一个全品…

ESP32和STM32在处理中断方面的区别

为了通俗地讲解ESP32和STM32在处理中断方面的区别&#xff0c;我们可以把它们想象成两个不同的“智能管家”系统&#xff0c;各自负责管理一个家庭&#xff08;即嵌入式项目&#xff09;的各种任务。我们将重点放在如何处理突发事件&#xff08;即中断&#xff09;上。 ESP32 …

Yolo11 + OCR 营业执照识别+信息抽取(预期后续改用其他ocr更简单,推理预计使用onnxruntim加速,分c++和python两种方式部署)

目录 一 数据集制作 1 labelimg的安装与使用 2 标注方式 3 数据集制作 二 模型训练 三 使用Yolo11 + OCR 实现“营业执照”信息解析完整方案 1 cutLinesforcode.py 2 getBusinessLicenseContentPart.py 3 getPartWords.py 4 pdfTojpg.py 5 main.py 本项目可用于毕业…

18.Word:数据库培训课程❗【34】

目录 题目 NO1.2.3.4 NO5设置文档内容的格式与样式 NO6 NO7 NO8.9 NO10.11标签邮件合并 题目 NO1.2.3.4 FnF12&#xff1a;打开"Word素材.docx”文件,将其另存为"Word.docx”在考生文件夹下之后到任务9的所有操作均基于此文件&#xff1a;"Word.docx”…

Mysql Resultset 解析记录

Mysql Resultset 解析记录 结果集消息头字段定义结果数据完整spicy文件 结果集消息头 消息头由消息体长度消息序列号消息体组成&#xff1b;消息头长度为3字节&#xff0c;消息序列号长度为1字节。 结果集的消息头消息体内容为结果集的列数。 结果集消息头的spicy1格式如下&a…

sem_init的概念和使用案例-简洁版

sem_init 是 POSIX 系统中用于初始化一个信号量的函数。在多线程编程中&#xff0c;信号量是一种常用于同步线程对共享资源的访问的机制。 概念 信号量是一个整数变量&#xff0c;可以用来控制对共享资源的访问。它通常用于实现线程同步或进程同步&#xff0c;以确保在某一时…