【MySQL进阶之路】数据的查询

目录

建表

全列查询

指定列查询

查询表达式

指定别名

结果去重

WHERE 条件查询

模糊查询

结果排序

筛选分页结果

不同子句的执行顺序


个人主页:东洛的克莱斯韦克-CSDN博客

建表

CREATE TABLE grades(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL COMMENT '同学姓名',
chinese float DEFAULT 0.0 COMMENT '语文成绩',
math float DEFAULT 0.0 COMMENT '数学成绩',
english float DEFAULT 0.0 COMMENT '英语成绩'
);

插入数据

insert into grades values(1,'李明',24,88,31),(2,'李华',89,48,71),(4,'刘洺关',87,99,58),(5,'张嘉译',45,77,92),(6,'孙志涛',93,57,88),(7,'张三丰',58,87,23),(8,'王水',99,99,98);
insert into grades values(9,'周明',45,88,93),(10,'张三', 0,0,0),(20,'张昊', 23,56,17);

全列查询

通常情况下不建议使用 * 进行全列查询

1,查询的列越多,意味着需要传输的数据量越大

2,可能会影响到索引的使用

select * from 表名;
select * from grades;

指定列查询

 select 列名 from 表名;
 select name ,math from grades;

列名之间要有 , 号隔开

查询表达式

示例一

select name, math, 10 from grades;

示例二

select name, english + 100 from grades;

示例三

select name, math + english from grades;

指定别名

select 原名称 as 别名 from 表名;
select 原名称 别名 from 表名;
select name, math+english as '数学和英语成绩' from grades;

结果去重

select distinct 列名 from 表名;
select distinct math from grades;

WHERE 条件查询

运算符说明
>大于
>=大于等于
<小于
<=小于等于
=等于
NULL 不安全例如 NULL=NULL 的结果是 NULL
<=>等于(NULL 安全)
!=不等于
<>不等于
BETWEEN a0 AND a1范围匹配,[a0,a1],如果 a0 <= value <= a1,返回 TRUE(1)
IN (option, ...)如果是 option 中的任意一个,返回 TRUE(1)
IS NULL是 NULL
IS NOT NULL不是 NULL
LIKE模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符
逻辑运算符
AND多个条件必须都为 TRUE(1),结果才是 TRUE(1)
OR任意一个条件为 TRUE(1),结果为 TRUE(1)
NOT条件为 TRUE(1),结果为 FALSE(0)

示例

查询英语成绩小于60的人

select name,english from grades where english<60;

查询语文成绩在80到90之间的人,用and逻辑条件链接

select name, chinese from grades where chinese>80 and chinese<90;

数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩,用 in() 条件

select name,chinese from grades where math in(58,59,98,99);

模糊查询

% 匹配任意多个(包括 0 个)任意字符

select name from grades where name like '张%';

_ 匹配严格的一个任意字符

select name from grades where name like '张_';

select name from grades where name like '张__';

WHERE 条件中比较运算符两侧都是字段,语文成绩好于英语成绩的同学

select name, chinese, english from grades where chinese > english;

结果排序

ORDER BY 子句的查询, ASC 为升序(从小到大) DESC 为降序(从大到小) 默认为 ASC

同学及数学成绩,按数学成绩升序显示

select name, math from grades order by math asc;

多字段排序,排序优先级随书写顺序,查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示

select * from grades order by math desc, english desc, chinese desc;

ORDER BY 中可以使用表达式,查询同学及总分,由高到低

select name, chinese+math+english as '总成绩' from grades order  by chinese+math+english  desc;

ORDER BY 子句中可以使用列别名

select name, chinese+math+english as '总成绩' from grades order  by '总成绩'  desc;

结合 WHERE 子句 和 ORDER BY 子句,查询姓张的同学数学成绩,结果按数学成绩由高到低显示

select name, math '数学成绩' from grades where name like '张%' order by math desc;

筛选分页结果

起始下标为 0 -- 从 s 开始,筛选 n 条结果

SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n

从 0 开始,筛选 n 条结果

SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n; 

 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用

SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;

对未知表进行查询时,最好加一条 LIMIT 1,避免因为表中数据过大,查询全表数据导致数据库卡死

不同子句的执行顺序

顺序子句/操作描述
1FROM查询执行的起点,根据FROM子句中指定的表(或视图)和可能的连接条件来检索数据。
2WHERE应用WHERE子句中的条件来过滤掉FROM子句结果中的行,发生在任何聚合操作之前。
3GROUP BY (如果存在)将剩余的行根据GROUP BY子句中指定的列进行分组。
4聚合函数对每个组(或整个结果集,如果没有GROUP BY)应用聚合函数,如COUNT(), SUM(), AVG()等。
5HAVING (如果存在)过滤分组后的结果,类似于WHERE子句,但HAVING在分组和聚合之后应用,可以引用聚合函数的结果。
6SELECT根据SELECT子句中的列名、表达式和聚合函数来构造最终的输出列。
7DISTINCT (如果使用了)去除结果集中的重复行。
8ORDER BY根据ORDER BY子句中的列名或表达式对结果集进行排序,发生在查询处理的最后阶段,仅影响最终结果的显示顺序。
9LIMIT 和 OFFSET (如果存在)限制返回给客户端的行数,LIMIT指定最大返回行数,OFFSET指定在开始返回行之前要跳过的行数。这些子句在查询处理的最后阶段应用。

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

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

相关文章

前端技巧——复杂表格在html当中的实现

应用场景 有时候我们的表格比较复杂&#xff0c;表头可能到处割裂&#xff0c;我们还需要写代码去完成这个样式&#xff0c;所以学会在原生html处理复杂的表格还是比较重要的。 下面我们来看这一张图&#xff1a; 我们可以看到有些表头项的规格不太一样&#xff0c;有1*1 2*…

雅菲奥朗 FinOps 认证培训:开启企业云财务管理转型之路

前言&#xff1a; 在当今快速变化的商业环境中&#xff0c;企业面临着前所未有的IT财务挑战。随着云计算和数字化转型的推进&#xff0c;传统的财务管理方式已经不能满足“企业上云”的需求。FinOps&#xff0c;即“云财务管理”应运而生&#xff0c;成为帮助企业实现IT财务流…

虚幻引擎游戏开发 | 程序化生成道具位置 Randomize Height

当地图上有无数个收集物【如水晶】&#xff0c;一键随机化高度 应用前 应用后 这时候水晶的高度是离散型地在0和110两个数中平均概率地选择。 如果要有权重地分布高度&#xff0c;减少高位水晶的比例&#xff08;由于过多连续跳跃会让玩家无聊和难以持续专注&#xff09;可以加…

R语言统计分析——回归中的异常观测值

参考资料&#xff1a;R语言实战【第2版】 一个全面的回归分析要覆盖对异常值的分析&#xff0c;包括离群点、高杠杆点和强影响点。这些数据点需要更深入的研究&#xff0c;因为它们在一定程度上与其他观点不同&#xff0c;可能对结果产生较大的负面影响。 1、离群点 离群点是指…

[ACL 2024] Revisiting Knowledge Distillation for Autoregressive Language Models

Contents IntroductionMethodRethinking Knowledge Distillation for Autoregressive LMsImproving Knowledge Distillation with Adaptive Teaching Modes ExperimentsReferences Introduction 作者提出 Autoregressive KD with Adaptive Teaching Modes (ATKD)&#xff0c;通…

java之类和对象的介绍

1.面向对象和面向过程的概念&#xff1a; 面向对象&#xff1a;面向对象是解决问题的一种思想&#xff0c;主要依靠对象之间的交互完成一件事。 面向过程&#xff1a;注重完成一件事情的过程&#xff0c;后续代码维护扩展较为麻烦。 以洗衣服为例&#xff0c;面向对象为传统…

vue3基础ref,reactive,toRef ,toRefs 使用和理解

文章目录 一. ref基本用法在模板中使用ref 与 reactive 的区别使用场景 二. reactive基本用法在模板中使用reactive 与 ref 的区别使用场景性能优化 三. toRef基本用法示例在组件中的应用主要用途对比 ref 和 toRef 四. toRefs基本用法示例在组件中的应用主要用途对比 ref 和 t…

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(一)---UnrealCV获取深度+分割图像

前言 本系列教程旨在使用UE5配置一个具备激光雷达深度摄像机的仿真小车&#xff0c;并使用通过跨平台的方式进行ROS2和UE5仿真的通讯&#xff0c;达到小车自主导航的目的。本教程使用的环境&#xff1a; ubuntu 22.04 ros2 humblewindows11 UE5.4.3python8 本系列教程将涉及以…

二叉树中的奇偶树问题

目录 一题目&#xff1a; 二思路汇总&#xff1a; 1.二叉树层序遍历&#xff1a; 1.1题目介绍&#xff1a; 1.2 解答代码&#xff08;c版&#xff09;&#xff1a; 1.3 解答代码&#xff08;c版&#xff09;&#xff1a; 1.4 小结一下&#xff1a; 2.奇偶树分析&#xf…

推荐一个开源的kafka可视化客户端GUI工具(Kafka King)

大佬的博客地址&#xff1a; https://blog.ysboke.cn/posts/tools/kafka-king Github地址&#xff1a; https://github.com/Bronya0/Kafka-King Kafka-King功能清单 查看集群节点列表&#xff08;完成&#xff09;支持PLAINTEXT、SASL PLAINTEXT用户名密码认证&#xff08;完…

Python 如何创建和解析 XML 文件

XML&#xff08;可扩展标记语言&#xff09;是一种广泛使用的标记语言&#xff0c;主要用于存储和传输数据。它具有结构化、层次化的特点&#xff0c;常被用作数据交换格式。Python 提供了多种工具和库来处理 XML 文件&#xff0c;包括创建、解析和操作 XML 文档。 一、XML 简…

qt-13 进度条(模态和非模态)

进度条-模态和非模态 progressdlg.hprogressdlg.cppmain.cpp运行图模态非模态 progressdlg.h #ifndef PROGRESSDLG_H #define PROGRESSDLG_H#include <QDialog> #include <QLabel> #include <QLineEdit> #include <QProgressBar> #include <QCombo…

人物形象设计:塑造独特角色的指南

引言 人物形象设计是一种创意过程&#xff0c;它利用强大的设计工具&#xff0c;通过视觉和叙述元素塑造角色的外在特征和内在性格。这种设计不仅赋予角色以生命&#xff0c;还帮助观众或读者在心理层面上与角色建立联系。人物形象设计的重要性在于它能够增强故事的吸引力和说…

p8 Run的流程和Docker原理

docker run的运行原理图 docker是怎么工作的&#xff1f; docker是一个cs的一个结构的系统docker的守护进程运行在宿主机上面通过socket进行访问 其实就是看下面的这个图&#xff0c;通过客户端的命令来操作docker的守护进程然后启动一些容器&#xff0c;默认容器是不启动的 …

网络基础概念【网络】

文章目录 网络协议协议分层 OSI七层模型TCP/IP五层&#xff08;或四层&#xff09;模型同局域网的两台主机通信数据包封装和解包分用&#xff08;数据段&#xff0c;数据报&#xff0c;数据帧&#xff09;网络中的地址管理 网络协议 协议分层 网络协议栈设计成层状结构&#…

【学习笔记】Day 20

一、进度概述 1、机器学习常识12-18&#xff0c;以及相关代码复现 二、详情 12、SVM&#xff08;support vector machines&#xff0c;支持向量机&#xff09; 实际上&#xff0c;支持向量机是一种二分类模型&#xff0c;它将实例的特征向量映射为空间中的一些点&#xff0c;…

如何将CSDN文章导出为pdf文件

第一步&#xff1a; 打开想要导出的页面&#xff0c;空白处点击鼠标右键⇒点击“检查”或“check”&#xff0c;或直接在页面按F12键。 第二步&#xff1a; 复制以下代码粘贴到控制台&#xff0c;并按回车。 若提示让输入“允许粘贴”或“allow pasting”&#xff0c;按提示…

百度地图路书实现历史轨迹回放、轨迹回放进度、聚合点、自定义弹框和实时监控视频、多路视频轮巡播放

前言 分享一个刚做完项目集成技术&#xff0c;一个车辆行驶轨迹监控、行车视频监控、对特种车辆安全监管平台&#xff0c;今年政府单位有很多监管平台项目&#xff0c;例如&#xff1a;渣土车监控、租出车监管、危害气体运输车监管等平台&#xff0c;这些平台都有车辆行驶轨迹…

Linux基础知识学习(五)

1. 用户组管理 每个用户都有一个用户组&#xff0c;系统可以对一个用户组中的所有用户进行集中管理&#xff08;开发、测试、运维、root&#xff09;。不同Linux 系统对用户组的规定有所不同&#xff0c;如Linux下的用户属于与它同名的用户组&#xff0c;这个用户组在创建用户…

QT聊天室基于Tcp

server.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget),server(new QTcpServer(this)) // 给服务器指针对象实例化空间{ui->setupUi(this); }Widget::~Widget() {delete ui; }…