MySQL基础笔记(5)-常用子句分析

MySQL 中 HAVING 子句详解 HAVING 是 MySQL 中用于对分组后的结果进行筛选的子句,它与 GROUP BY 子句配合使用,类似于 WHERE 子句,但作用于分组后的数据而非原始数据。 阅读详情

目录

一、常用的MySql子句

二、建表语句

 三、子句使用

1、WHERE子句

2、GROUP BY语句

 3、ORDER BY 子句

4、HAVING子句


所谓子句,就是在一条查询sql中起到特定功能的关键字段,子句在复杂查询中占据了很重要的位置,比如说分组查询,聚合函数使用后的条件筛选等,都需要用到特定的子句,本篇将介绍常用的MySql子句以及子句分析。


一、常用的MySql子句

常用的MySql子句有四条,分别是WHERE、GROUP BY、ORDER BY 、HAVING

 

二、建表语句

-- /创建雇员表/
CREATE TABLE emp(
empno INT PRIMARY KEY,
ename VARCHAR(50),
job VARCHAR(50),
mgr INT,
hiredate DATE,
sal DECIMAL(7,2),
COMM DECIMAL(7,2),
deptno INT,
CONSTRAINT fk_emp FOREIGN KEY(mgr) REFERENCES emp(empno)
);

-- /插入emp表数据/
INSERT INTO emp VALUES (1009, '曾阿牛', '董事长', NULL, '2001-11-17', 50000, NULL, 10);
INSERT INTO emp VALUES (1004, '刘备', '经理', 1009, '2001-04-02', 29750, NULL, 20);
INSERT INTO emp VALUES (1006, '关羽', '经理', 1009, '2001-05-01', 28500, NULL, 30);
INSERT INTO emp VALUES (1007, '张飞', '经理', 1009, '2001-09-01', 24500, NULL, 10);
INSERT INTO emp VALUES (1008, '诸葛亮', '分析师', 1004, '2007-04-19', 30000, NULL, 20);
INSERT INTO emp VALUES (1013, '庞统', '分析师', 1004, '2001-12-03', 30000, NULL, 20);
INSERT INTO emp VALUES (1002, '黛绮丝', '销售员', 1006, '2001-02-20', 16000, 3000, 30);
INSERT INTO emp VALUES (1003, '殷天正', '销售员', 1006, '2001-02-22', 12500, 5000, 30);
INSERT INTO emp VALUES (1005, '谢逊', '销售员', 1006, '2001-09-28', 12500, 14000, 30);
INSERT INTO emp VALUES (1010, '韦一笑', '销售员', 1006, '2001-09-08', 15000, 0, 30);
INSERT INTO emp VALUES (1012, '程普', '文员', 1006, '2001-12-03', 9500, NULL, 30);
INSERT INTO emp VALUES (1014, '黄盖', '文员', 1007, '2002-01-23', 13000, NULL, 10);
INSERT INTO emp VALUES (1011, '周泰', '文员', 1008, '2007-05-23', 11000, NULL, 20);
INSERT INTO emp VALUES (1001, '甘宁', '文员', 1013, '2000-12-17', 8000, NULL, 20);

 三、子句使用

1、WHERE子句

使用示例

这是一个很常见的子句了,几乎每天sql都会用来做条件筛选,这里就不再演示。

 注意

在一条Sql执行时,数据库系统会首先找到WHERE子句,并判断条件是否成立,并将查询到的结果存储到内存中,成立就返回1,不成立就返回0,当返回1时,才会继续执行WHERE之前的语句,这和后面要说到的HAVING语句有很大不同

 

 

2、GROUP BY语句

使用示例

这是用于分组的语句,常常和聚合函数使用(MySql的函数)它在执行完一段查询后将数据分组,必须放在发挥作用的查询语句之后

-- 查询出每个部门中员工编号大于1005的员工数和部门编号

SELECT e.`deptno` 部门号,COUNT(*) 部门人数
FROM emp  e 
WHERE e.`empno` > 1005 
GROUP BY e.`deptno`

 如果将GROUP BY放在WHERE语句之前,即在没查出来数据之前就进行分组,则会报错

SELECT e.`deptno` 部门号,COUNT(*) 部门人数
FROM emp  e 
GROUP BY e.`deptno`
WHERE e.`empno` > 1005 

 3、ORDER BY 子句

使用示例

该子句常常和聚集函数使用,在查询出结果之后,针对某个字段进行排序,默认为升序,在后面加上DESC后为降序

-- 查询出部门号和其员工数量,按部门号降序排列

SELECT  e.`deptno` ,COUNT(*) 
FROM emp e
GROUP BY e.`deptno`
ORDER BY e.`deptno`
DESC

 注意,ORDER BY 语句常常放在Sql的最后面,在没有分组完成前就通过部门号排序,会出现错误

SELECT  e.`deptno` ,COUNT(*) 
FROM emp e
ORDER BY e.`deptno`
GROUP BY e.`deptno`
DESC

 

4、HAVING子句

使用示例

HAVING子句和WHERE子句十分相似,两者的作用都是用来判断和筛选结果,但是HAVING常常和聚集函数一起使用,但是HAVING子句是在整个主要查询执行完了之后才进行筛选的,而WHERE是在查询前进行筛选判断

-- 查询出员工的平均工资大于8000的部门通过平均工资升序
SELECT  e.`deptno` ,AVG(e.`sal`) avgsal
FROM emp e
GROUP BY e.`deptno`
HAVING avgsal > 8000
ORDER BY avgsal

这条语句就是先查询出了部门号和部门平均工资后再筛选出平均工资大于8000的部门

而这条语句就是先筛选出员工编号大于1005的记录后用于分组

SELECT e.`deptno` 部门号,COUNT(*) 部门人数
FROM emp  e 
WHERE e.`empno` > 1005 
GROUP BY e.`deptno` 
ORDER BY e.`deptno` 
DESC

 

MySQL WHERE 子句、查询和更新 MySQL WHERE子句摘要:WHERE子句用于在SELECT、UPDATE和DELETE语句中过滤数据,仅返回满足条件的记录。基本语法为SELECT 列名 FROM 表名 WHERE 条件,支持多种操作符(=、!=、>、<、>=、<=)和逻辑运算符(AND、OR)。常见用法包括:等值/不等值查询、范围筛选(BETWEEN)、模糊匹配(LIKE)、空值检查(IS NULL)和IN条件查询。通过BINARY关键字可区分大小写,PHP可通过mysqli_query()执行带WHERE的 阅读详情

相关推荐

MySQL LIKE 子句

LIKE子句是MySQL中用于模式匹配的强大工具。通过使用通配符,用户可以灵活地搜索符合特定条件的数据。在实际应用中,LIKE子句经常与WHERE子句结合使用,以过滤和检索数据库中的数据。

xyq2024的博客 751

MySQL学习笔记13——查询五子句

MySQL学习笔记

CCH2024的专栏 598

MySQL常用的子句及其编程示例

以上是MySQL中常用的子句及其编程示例。通过灵活运用这些子句,可以实现对数据库的数据检索、插入、更新和删除等操作,满足不同的业务需求。

2301_79331230的博客 206

大白话聊聊MySQL查询之五子句(知识简单但重要)

在日常开发中,查询数据占很大的比重,在使用 MySQL 数据库进行查询时,我们经常需要通过各种条件和规则来筛选和排序数据。要实现这些功能,就不得不使用以下这些子句:WHERE、ORDER BY、GROUP BY、HAVING 和 LIMIT。那,接下来,我就用简单易懂的语言详细介绍这些子句的作用和用法。

白衣胜雪 818

AI赋能传染病建模:从数据到动力学模型的本地实践指南

这次我们来看一个将 AI 与传染病动力学建模结合的前沿方向。想象一下,你手头有一份流感爆发的病例数据,传统的建模方法可能需要复杂的微分方程和大量的手动调参,而 AI 模型能否直接从数据中“学习”出传播规律,甚至自动跑通整个建模流程?这正是当前研究的热点。根据《Nature》的最新综述,人工智能正在重塑传染病流行病学建模,从参数推断、趋势预测到多源数据融合,AI 技术为解决传统建模中的计算瓶颈和数据难题提供了全新路径。 对于开发者、数据科学家或公共卫生领域的研究者而言,最关心的是:这套方法能不能在本地跑起来?

weixin_29051811的博客 298

GB28181安防平台未授权访问漏洞:原理、复现与修复指南

未授权访问漏洞是Web安全中常见的访问控制缺陷,其本质在于应用在提供对敏感功能或数据的访问前,未能对请求者的身份和权限进行充分验证。从技术原理上看,这类漏洞常源于拦截器配置错误、安全注解遗漏或自定义校验逻辑缺陷,导致本应受保护的API接口被意外暴露。在工程实践中,此类漏洞危害巨大,攻击者无需登录即可直接访问系统核心接口,可能引发敏感信息泄露、权限提升甚至系统接管。尤其在安防监控、物联网管理平台等场景中,一旦涉及用户管理接口(如`/api/user/**`),风险会急剧放大。本文以GB28181视频监控管理平

weixin_30271335的博客 441

MySQL(select语句的7大子句/子查询/事务/用户与权限/数据库设计的三大范式)

事务处理(事务操作)︰保证所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式。当在一个事务中执行多个操作时,要么所有的事务都被提交(commit),那么这些修改就永久地保存下来;要么数据库管理系统将放弃所作的所有修改,整个事务回滚(rollback)到最初状态。事务的ACLD属性原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。一致性(Consistency)事务必须使数据库从一个一致性状态变换到另外一个一致性状态。

qq_48865614的博客 2540

最终篇——SWAT模型的建立

同理,Soil Data也是同样的方法导入,在Soil Database Options的选项中,选择UserSiol,用同样的方法导入土壤类型,进行重分类。打开窗口后,只定义HRU Thresholdes,其余两个不用设置,设定各数据单元的计算率,这里的10%的意思是计算精度,即分成级HRU计算单元太小,小于平均计算单元的10%,我们就不对这HRU单元进行计算(也就是说太破碎的计算单元不进行计算),若选择0%意味着全部进行计算,需要耗费大量的内存和时间,对计算机要求较高,不建议。

m0_72556434的博客 5623

MySQL七大子句

一、在写SQL时是书写顺序,而不是执行顺序。 1)、from: 从哪些表中筛选 2)、on: 关联夺标查询时,去除笛卡尔积 3)、where: 从表中筛选的条件 4)、group by: 分组依据 5)、having:在统计结果中再次筛选 6)、order by: 排序 7)、limit: 分页 二、SQL的执行顺序: from → join → on → where → group by → (分组函数,分组函数中的distinct) → having → select → distinct

weixin_45979310的博客 586

新版MQL语言程序设计:用vscode编写编译调试mt4和mt5程序

使用VScode搭建MT4与MT5开发环境,实现编辑编译调试统一。

超哥量化的博客 6878

STM32 热敏电阻测量温度

1、硬件 STM32F103C8T6、热敏电阻传感器、OLED。 2、热敏电阻传感器的介绍

weixin_54721788的博客 1万+

MySQL的Limit子句

MySQL的Limit子句 Limit子句可以被用于强制 SELECT 语句返回指定的记录数,可以用来分页。 一、Limit子句参数用法 Limit接受一个或两个数字参数。参数必须是一个整数常量。 一个参数:它表示返回最大的记录数。从第一行开始算。 两个参数:参数1是指定第一个返回的记录行的索引+1,参数2是最后返回最大的记录数 //如果只给定一个参数,它表示返回最大的记录行数目。...

csdnluolei 3881

水下机器人仿真平台选型指南:从AirSim到Unity3D的深度对比

本文深入对比了AirSim+UE和Unity3D两大水下机器人仿真平台的核心架构、传感器仿真能力和水下环境建模特点。AirSim+UE凭借高精度物理仿真和丰富传感器支持成为专业研发首选,而Unity3D则以快速开发和灵活扩展见长。文章为研发团队提供了全面的选型指南,帮助优化水下实验的仿真效率与成本。

weixin_29009669的博客 453

MySQL WHERE 子句:数据过滤的艺术

MySQL WHERE 子句是数据过滤的核心技术,本文全面解析其用法和优化技巧。基础部分涵盖比较运算符(=、>、<等)和逻辑运算符(AND、OR、NOT)的组合使用。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 8929

倾斜摄影数据转换为3DTile格式的方法:基于CesiumLab GIS

通过使用CesiumLab GIS,倾斜摄影数据可以方便地转换为3DTile格式,并在CesiumJS等3D地理信息可视化工具中进行展示和分析。一旦成功导入3DTile数据,就可以在CesiumLab GIS中利用其强大的可视化和分析功能进行进一步的处理。转换完成后,可以将生成的3DTile数据导入到CesiumLab GIS中进行可视化和分析。启动CesiumLab GIS应用程序,并按照界面上的指导导入转换后的3DTile数据。脚本将开始执行,并将倾斜摄影数据转换为3DTile格式。

ObDjango的博客 1077

uniapp支付宝/钉钉小程序ref为undefined的解决方案 `uniapp 支付宝小程序 ref undefined` `uniapp 钉钉小程序 组件ref获取失败` `uniapp 支付宝

如果你在uniapp 开发支付宝小程序或钉钉小程序时,遇到ref始终为undefined的问题,十有八九就是没开启 component2。所以记住一句话:👉支付宝/钉钉小程序要想用 ref,必须在里加。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1221

MySQL 基础 ———— SQL语句的执行顺序与 LIMIT 子句

引言 到目前为止,已经总结了常见的SQL子句,包括 SELECT 、FROM、JOIN ...ON、WHERE、GROUP BY、HAVING、ORDER BY。 虽然SQL的书写顺序是固定的,但在MySQL引擎中执行的顺序并不完全和书写顺序一致。除了上述这些子句,下面将会介绍另一个比较常用的子句 LIMIT ,并且总结一下SQL 语句的执行顺序。 一、LIMIT 子句 LIMIT 子句...

Morty的技术乐园 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

MySQL WHERE 子句

MySQL 使用讲解 第02期

南_茗的博客 1397

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

MySQL基础课堂笔记

MySQL基础知识学习笔记整理 数据库的基本概念 MySQL数据库软件 安装 卸载 配置 SQL 数据库的基本概念 1. 数据库的英文单词: DataBase 简称 : DB 2. 什么数据库? * 用于存储和管理数据的仓库。 3. 数据库的特点: 1. 持久化存储数据的。其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用了统一的方式操作数据库...

不怕万人阻挡,只怕自己投降 9655

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Mysql中的where子句

Mysql中的where子句 1、基本使用 在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤。WHERE子句在表名( FROM子句)之后给出。例如: SELECT * FROM book WHERE number=3 结果如下: 这条语句从book表中检索数据,但不返回所有行,只返回number值为3的行。 注意:在同时使用ORDER BY和WHERE子句时

想作会飞的鱼的博客 6735

【MySQL】MySQL 中 WITH 子句详解:从基础到实战示例

WITH 子句是 MySQL 中的一种 SQL 结构,又称为 Common Table Expression (CTE)。

Code Metaverse 1668

mysql limit子句_MySQL LIMIT子句

在本教程中,您将学习如何使用MySQL LIMIT子句来限制SELECT语句返回记录的行数。1. MySQL LIMIT子句简介在SELECT语句中使用LIMIT子句来约束结果集中的行数。LIMIT子句接受一个或两个参数。两个参数的值必须为零或正整数。下面说明了两个参数的LIMIT子句语法:SELECTcolumn1,column2,...FROMtableLIMIT offset , count...

weixin_35601445的博客 567

MySQL自学笔记2--select的5个子句

MySQL自学笔记 使用的MySQL自带命令客户端,其中具体的操作是在自建的数据库下room303表中进行的,表中的列有:id、name、age、email、tel、salary、riqi、class。元组为自己随便添加的一些成员=.=! select子句 五种,包括:where、group ...

chisuochi8348的博客 196

列举MySQL对于Where子句的优化

在MySQL8之前,我们自己额外注意一些查询语句的写法,牺牲了代码的可读性。在MySQL8中,会自动进行类似的优化。可以保持查询的易理解性和可维护性。 这边文章会列举这些优化点。

常备不懈 2481

Mysql查询命令select以及子句分析

查询: (1)where子句 select name from 表名 where 表达式 select name from 表名 where name like 'Nokia%‘;       //再次强调like 模糊匹配只有%和_,分别表示多个个一个,所以正则表达式更强大! (2)group子句 一般用在统计场合。和聚合函数一起用。 select max(shop_

FreeeLinux's blog 1308
上一篇: MySQL基础笔记(4)-子查询
下一篇: MySQL基础笔记(6)-多表查询练习(1)
BoringRong
BoringRong 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 2万+粉丝 386原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoringRong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值