深入探索MySQL高阶查询语句的艺术与实践

目录

引言

一、条件查询

(一)比较运算符查询

1.使用匹配符号查询

2.范围查找

(二)逻辑运算符

二、关键字排序

三、分组与聚合函数

四、限制查询

五、别名

(一)设置列别名

(二)设置表别名

(三)as连接语句

总结


引言

在数据库管理和数据分析的世界里,熟练掌握MySQL的高级查询技巧是一项至关重要的技能。本文将带领您深入挖掘MySQL中一些复杂的查询语句,以提升您的数据检索效率和灵活性。

在之前的MySQL基本操作中,介绍了MySQL的基本查询方法,本文主要对查询的一些复杂语句,以及条件的组合用法进行介绍。

一、条件查询

可以根据不同的where条件对数据进行查询

(一)比较运算符查询

常用的比较运算符有一下几种

比较运算符功能
> 或!=大于
>=大于等于
<小于
<=小于等于
=等于
<>或!=不等于
BETWEEN ... AND ...在某个范围之内(含最小、最大值)
IN(..)在in之后的列表中的值
LIKE 占位符模糊匹配( _ :匹配单个字符,%:匹配任意个字符)
IS NULL

是NULL

1.使用匹配符号查询

首先看一下表中的原始数据

分别找出age值等于30、age值大于40、age值小于40的数据

分别找出age值大于等于45、age值小于等于45、age值不等于45的数据

2.范围查找

使用BETWEEN ... AND ...指定查询的值的范围,比如找出age值为30到50之间的数据,包含30与50

使用in进行多个值的匹配,比如想查看age值为30,和值为45的数据

使用like进行模糊匹配

%:表示后面有任意单个、多个、或者空字符

_:表示后面有任意一个字符

找到字段值为空的数据

(二)逻辑运算符

逻辑运算符功能
AND 或 &&并且(多个条件同时成立)
OR 或 ||或者(多个条件任意一个成立)
NOT 或 !非,不是

1.AND,组合条件查询

使用:select 字段 from 表名 where 条件1 and 条件2;

2.多条件查询

使用:select 字段 from 表名 where 条件1 or 条件2;

3.反选查询

使用:select 字段 from 表名 where  !条件 ;

二、关键字排序

可以对字段值进行排序,可以是数字,也可以是字母

基本语法为:select 字段1, 字段2, ... from 表名 [where 条件]order by 排序字段1,排序字段2, ... [asc|desc]

关键字排序方式
asc升序排序,默认排序方式asc 可以省略
desc降序排序,

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

1.按数字排序

2.按字母排序

按字段值的首字母进行排序

3.数据压缩

数据压缩,查看不重复的记录

使用distinct指令过滤重复的信息

三、分组与聚合函数

当我们需要基于某一列或多列数据进行统计时,分组查询和聚合函数就派上了用场,分组的关键字为group by,而group by通常与聚合函数一同使用。常见的聚合函数有以下几种

函数值功能
count统计数量
max最大值
min最小值
avg平均值
sum求和

基本语法为:

select 字段名, 聚合函数(字段名) from 表名 [where 条件]  GROUP BY 字段名;

全表数据为

首先了解一下聚合函数的用法

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

count函数是统计值的总数,只统计表中有值的数量,null不纳入统计范围

使用分组查询数据

第一个示例表示:查询将返回每个(grender)员工的性别。每个性别构成了一个组,函数统计每个组内的员工性别数量。

第二个示例表示:查询将返回每个员工的性别(grender),以及工作地址(workid)。每个工作地址构成了一个组,函数统计每个组内的员工性别数量。

四、限制查询

在MySQL中,LIMIT 关键字用于限制SELECT语句返回的记录数量。

基本用法有两种

select 字段... from 表名 limit 行数;
#查询从第一行开始到指定行数结束的数据select 字段... from 表名 limit 行数1,行个数2;
#查询从行数1的下一行开始查询,到指定行的个数结束的数据
#例如:select 字段... from 表名 limit 3,5;
#从第3行开始,向下查询5行,也就是4、5、6、7、8行的数据

limit一般与order by组合使用,以便在限制记录数量的同时保证排序的准确性

比如查询age(年龄)最大的5位员工

五、别名

在MySQL中,查询别名(Alias)是为表名或列赋予临时名称的一种方式,可以使SQL查询更加简洁易读,尤其是在处理复杂的查询或联接多个表的时候。别名通常在查询中通过AS关键字定义,但AS关键字在大多数情况下是可以省略的。

select 字段名 [as] 别名 from 表名;
#对列设置别名select 表别名.字段名 from 表名 [as] 表别名;
#对表设置别名

(一)设置列别名

通过设置列的别名使数据看起来更有可读性

(二)设置表别名

将表设置别名,用于区分不同表之间的同字段,主要在进行多表联查的时候使用

(三)as连接语句

as可以作为连接语句,将表的数据插入到新的表当中

此方法与之前介绍的克隆表基本一致,对于表的约束无法进行保存

总结

本章主要讲解一些高阶语句中的一些特殊条件的查询方法

比如在生产环境中,进行多表联查时,使用as设置表的别名,对表进行区分,这对数据的查询非常重要,根据不同的环境,使用不同的方法进行数据的查询、分析

通过深入学习并熟练运用MySQL的这些高阶查询语句,您可以更高效、更灵活地管理和查询数据库,从而提升整体的数据管理水平和工作效率。

本文只介绍了一些高阶语句的简单用法,还有MySQL还有诸如窗口函数、CTE(公共表表达式)等更强大的功能。

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

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

相关文章

YoloV5改进策略:Block改进|ECA-Net:用于深度卷积神经网络的高效通道注意力|ECA+压缩膨胀Block实现涨点(独家原创)

摘要 本文使用ECA-Net注意力机制配合压缩膨胀的Block实现涨点。涨点方法是我自己独创的&#xff0c;改进方法简单易用&#xff0c;方便大家用于论文的改进。 论文&#xff1a;《ECA-Net&#xff1a;用于深度卷积神经网络的高效通道注意力》 arxiv.org/pdf/1910.03151.pdf 最…

后端系统开发之——功能完善

原文地址&#xff1a;https://blog.yiming1234.cn/?p830 下面是正文内容&#xff1a; 前言 通过SpringBoot开发用户模块的部分也就差不多要结束了&#xff0c;这一片文章就主要提一些在系统开发中需要注意到的细节部分和功能&#xff0c;也就是剩余的部分。 但是这个专栏只介…

安达发|电子产品制造企业APS生产排程软件

在电子脉动的世界中&#xff0c;时间是芯片上的电流&#xff0c;效率是电路板上的速度。在这个时代&#xff0c;每一微秒都蕴藏着无限可能&#xff0c;每一决策都关乎着企业的生死存亡。APS生产排程软件&#xff0c;是您的电子制造帝国中的智慧大脑&#xff0c;以卓越的创造力&…

Reactor设计模式和Reactor模型

Reactor设计模式 翻译过来就是反应堆&#xff0c;所以Reactor设计模式本质是基于事件驱动。 角色 Handle&#xff08;事件&#xff09;EventHandler&#xff08;事件处理器&#xff09;ConcreteEventHandler&#xff08;具体事件处理器&#xff09;Synchronous Event Demult…

CTR之Session行为序列建模用户兴趣:DSIN

在前面的文章中&#xff0c;DIN模型 在用户行为序列建模中引入注意力机制来强调加权与target item相关的行为&#xff0c;以实现动态的兴趣表征&#xff1b;而DIEN模型 则在DIN的基础上加入时间性信息&#xff0c;使用注意力机制的GRU来挖掘用户兴趣的演变。 而今天的这篇文章…

jspssm_maven项目——KTV点歌系统

目录 背景 技术简介 系统简介 界面预览 背景 随着互联网的广泛渗透和进步&#xff0c;基于网络技术的KTV点歌系统迅速壮大&#xff0c;其发展始终围绕用户的实际需求展开。通过深入洞察用户的需求&#xff0c;开发出高度定制的管理平台&#xff0c;利用网络的便捷性对系统…

8.软件工程

整个章节偏向于记忆、背诵&#xff1b; 主要议题&#xff1a; 软件体系&#xff1a;3层&#xff1b; UML重点&#xff0c;重点记3要素中的关系、图&#xff1b; 1.软件体系结构 分层 优点&#xff1a;利于软件的重复利用&#xff1b; 缺点&#xff1a;以什么方式分层&#…

使用Urllib库创建第一个爬虫程序

Urllib 是 Python 的标准库&#xff0c;它提供了一系列用于处理 URL 的函数和类&#xff0c;包括发送 HTTP 请求、处理 HTTP 响应、解析 URL 等功能。可以使用 urllib 来编写简单的网络爬虫。 request&#xff1a;它是最基本的HTTP请求模块&#xff0c;可以用来模拟发送请求。只…

【JavaScript 漫游】【044】Web Worker

文章简介 本篇文章为【JavaScript 漫游】专栏的第 044 篇文章&#xff0c;对浏览器模型的 Web Worker 相关知识点进行了总结。 概述 JavaScript 语言采用的是单线程模型&#xff0c;也就是说&#xff0c;所有任务只能在一个线程上完成&#xff0c;一次只能做一件事。前面的任…

MySQL 8.0.35 企业版开启审计audit log功能

一、系统环境和要求 在MySQL中&#xff0c;开启日志审计可以记录数据库的操作日志&#xff0c;包括修改、删除、插入等操作。这对于追踪和分析数据库的使用情况以及排查潜在的安全问题非常有帮助。本文将详细介绍如何开启MySQL的日志审计功能。 操作系统&#xff1a;Ubuntu 20…

人工智能 框架 paddlepaddle 飞桨 使用指南 使用例子 线性回归模型demo 1

安装过程&使用指南&线性回归模型 使用例子 本来预想 是安装 到 conda 版本的 11.7的 但是电脑没有gpu 所以 安装过程稍有变动,下面简单讲下 conda create -n paddle_env117 python=3.9 由于想安装11.7版本 py 是3.9 所以虚拟环境名称也是 paddle_env117 activa…

6 Spring-AOP

文章目录 1&#xff0c;AOP简介1.1 什么是AOP?1.2 AOP作用1.3 AOP核心概念 2&#xff0c;AOP入门案例2.1 需求分析2.2 思路分析2.3 环境准备2.4 AOP实现步骤步骤1:添加依赖步骤2:定义接口与实现类步骤3:定义通知类和通知步骤4:定义切入点步骤5:制作切面步骤6:将通知类配给容器…

常用设计模式介绍

前言 简说设计模式。 文章目录 前言一、设计模式的要素1、设计模式解决的问题2、设计模式分类1&#xff09;创建型设计模式2&#xff09;结构型设计模式3&#xff09;行为型设计模式 二、详细介绍1、创建型设计模式1&#xff09;工厂方法模式2&#xff09;抽象工厂模式3&#x…

基于FPGA的光纤通信系统设计

文章目录 光纤通信系统的组成发送端FPGA端口定义状态机设计代码示例 接收端功能模块端口定义状态机设计 光纤通信系统的组成 发送端FPGA 发送控制逻辑、数据编码、校验码生成、缓存控制、时钟控制 端口定义 状态机设计 代码示例 接收端功能模块 接收端控制逻辑、数据解码、…

谈谈伦敦银投资的价值吗?

白银作为贵金属家族中的一员&#xff0c;当然有着其自身的经济价值和投资价值&#xff0c;尤其是在通货膨胀或货币贬值的时候&#xff0c;伦敦银的价格往往会上涨&#xff0c;投资者参与其中就能起到保值增值的作用。 此外&#xff0c;白银还是一种很好的避险资产&#xff0c;…

港大新工作 HiGPT:一个模型,任意关系类型 !

论文标题&#xff1a; HiGPT: Heterogeneous Graph Language Model 论文链接&#xff1a; https://arxiv.org/abs/2402.16024 代码链接&#xff1a; https://github.com/HKUDS/HiGPT 项目网站&#xff1a; https://higpt-hku.github.io/ 1. 导读 异质图在各种领域&#xf…

Linux系统下安装部署Linux管理面板1panel

目录 一 1panel介绍 1、1Panel简介 2、1Panel特点 二、本地环境规划 1、本此实验目的 2、本地环境部署 三、部署1Panel&#xff08;在线安装&#xff09; 1.创建安装目录 2.一键部署1Panel 3.检查1Panel服务运行状态 4.检查1Panel监听端口 四、关闭防火墙和selinux…

zabbix进阶

知识点补充 zabbix server在主机上运行服务&#xff0c;端口号为10050&#xff0c;zabbix agent 在被监控机器上运行&#xff08;源码下载&#xff09;主要完成对cpu&#xff0c;磁盘的信息采集&#xff0c;端口号为10051 zabbix 软件结构组成&#xff1a; 1.Zabbix Web GUI …

leetcode 107.二叉树的层序遍历II

题目 思路 正常层序遍历输出&#xff1a; [[3],[9,20],[15,7]] 这道题要求的输出&#xff1a;[[15,7],[9,20],[3]] 可以观察到&#xff0c;只要我们把原来的结果reverse一下就行了。 代码 //leetcode submit region begin(Prohibit modification and deletion)import java…

HWY-41B无源静态电压继电器 整定范围19-240VAC导轨安装JOSEF约瑟

HWY-31A无辅源静态电压继电器 HWY-32A无辅源静态电压继电器 HWY-33A无辅源静态电压继电器 HWY-34A无辅源静态电压继电器 HWY-35A无辅源静态电压继电器 HWY-31B无辅源静态电压继电器 HWY-32B无辅源静态电压继电器 HWY-33B无辅源静态电压继电器 HWY-34B无辅源静态电压继电器 HW…