MySQL:开始深入其数据(三)DQL的后续

news2024/9/25 13:20:28

上一章学习mysql语句里的where和join,这一章我们开始分析group by ,having,order by,limit语句。

three,too,one,go!

文章目录

  • 重温select语法
  • having:
  • order by:
  • limit

重温select语法

SELECT [ALL | DISTINCT]
{ * | table.* | [ table.field1 [ as alias1] [, table.field2 [as alias2]][, …]] }
FROM table_name [ as table_ alias ]
[ left|right|inner join table_name2 ] #联合查询
[ WHERE … ] #指定结果需满足的条件
[ GROUP BY …] #指定结果按照哪几个字段来分组
[ HAVING …] #过滤分组的记录必须满足的次要条件
[ ORDER BY… ] #指定查询记录按一个或者多个条件排序
[ LIMIT { [ offset,] row_count | row_count OFFSET offset }] ; #指定查询的记录从哪条至哪条

注意:
[] 括号代表可选的;
{} 括号代表必须的;
# MySQL语句中的注释符,也可以用 \*该处为注释*/

# group by:
group by 是用来对查询结果进行分组的。可以根据一个或多个字段来进行分组,将具有相同字段值的记录归为一组。在使用 group by 时,查询结果中只能出现以下两种情况的字段:
1. 被 group by 的字段
2. 在`聚合函数`中使用的字段(如 sum、avg、count 等)

**例子:**
```sql
-- 以下查询将根据部门对员工进行分组,并统计每个部门的员工数量
SELECT department, COUNT(*) as employee_count
FROM employees
GROUP BY department;
-- 这里的 COUNT(*) 是一个聚合函数,用于统计每个部门的员工数量。

having:

having 是在分组之后对分组结果进行过滤的。having 语句中可以使用聚合函数,对分组结果进行筛选。只有满足 having 条件的分组才会出现在查询结果中。

例子:

-- 以下查询将根据部门对员工进行分组,计算每个部门的平均工资,并筛选出平均工资大于 5000 的部门
SELECT department, AVG(salary) as avg_salary
FROM employees
GROUP BY department
HAVING avg_salary > 5000;
-- 这里的 AVG(salary) 是一个聚合函数,用于计算每个部门的平均工资。

order by:

order by 是用来对查询结果进行排序的,可以按照一个或多个字段进行排序,与升序(asc)和降序(desc)搭配使用,默认为asc,在 order by 中可以使用字段名、表达式或函数。

例子:

-- 以下查询将学生按照年龄降序排列
SELECT name, age
FROM students
ORDER BY age DESC;
-- 这里的 ORDER BY age DESC 表示按照年龄降序排列查询结果。

limit

limit 用于限制查询结果的数量。可以指定查询结果的起始位置和数量。有两种使用方式:

  1. limit row_count:查询结果从第一条开始,返回 row_count 条记录。
  2. limit offset, row_count:查询结果从第 offset+1 条开始,返回 row_count 条记录。
    也就是 limit((当前页码-1)*每页显示条数),每页显示条数

例子:

-- 以下查询将返回前 10 条产品记录
SELECT *
FROM products
LIMIT 10;
-- 这里的 LIMIT 10 表示只返回前 10 条产品记录。

总结:
select语句一般由以下部分组成:

  1. select关键字:用于指定查询操作
  2. 字段列表:可以使用* 查询所有字段,也可以指定要查询的字段列表,可以使用 as 给字段取别名。
  3. from关键字:用于指定要查询的表名。
  4. join关键字:用于指定多个表之间的连接方式,如 left join、right join、inner join等。
  5. where子句:用于指定查询结果的限制条件。
  6. group by 子句:用于指定查询结果按照哪几个字段进行分组。
  7. having子句:用于指定对分组结果进行筛选的条件。
  8. order by子句:用于指定查询结果按照哪个字段排序,可以指定升序(asc)或降序(desc)。
  9. limit子句:用于指定查询结果的数量和起始位置。

建了一个公众号(名字叫音耀),后续会在上面更新一些有用资源和笔记,大家有兴趣的话可以加一下谢谢了。
在这里插入图片描述

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

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

相关文章

[通用] iPad 用于 Windows 扩展屏解决方案 Moonlight + Sunshine + Easy Virtual Display

文章目录 前言推流端 Sunshine 安装设置接收端安装 Moonlight安装虚拟屏幕软件 Easy Virtual Display 前言 上期博客讲了如何利用原生的 NVIDIA’s GameStream 传输协议实现 iPad 当作 Windows 副屏,对于非N卡用户,有一个软件 Sunshine 可以代替 Nvidia…

【详识JAVA语言】面向对象程序三大特性之二:继承

继承 为什么需要继承 Java中使用类对现实世界中实体来进行描述,类经过实例化之后的产物对象,则可以用来表示现实中的实体,但是 现实世界错综复杂,事物之间可能会存在一些关联,那在设计程序是就需要考虑。 比如&…

GO泛型相关

通过引入 类型形参 和 类型实参 这两个概念,我们让一个函数获得了处理多种不同类型数据的能力,这种编程方式被称为 泛型编程。 2. Go的泛型 类型形参 (Type parameter)类型实参(Type argument)类型形参列表( Type parameter list)类型约束(Type constr…

【IEEEE会议征稿】第六届下一代数据驱动网络国际学术会议(NGDN 2024)

第六届下一代数据驱动网络国际学术会议(NGDN 2024) The Sixth International Conference on Next Generation Data-driven Networks 基于前几届在英国埃克塞特 (ISPA 2020) 、中国沈阳 (TrustCom 2021) 和中国武汉(IEEETrustCom-2022)成功举办的经验&a…

048 异常

什么是异常 异常体系结构 异常的继承关系 Error Exception 异常处理机制 try:用{}将可能产生异常的代码包裹catch:与try搭配使用,捕获try包裹代码中抛出的异常并进行后续动作finally:跟在try后,在try和catch之后执行…

使用 Grafana 使用JSON API 请求本地接口 报错 bad gateway(502)解决

一 . 问题: 在用docker部署Grafana 来实现仪表盘的展示,使用到比较多的就是使用JAON API插件调用本地部署的API,比如访问localhost下的 /test_data 接口,一般我们使用的是http://localhost:8080/test_data, 但是在访…

java 使用easyui开发导出excle打开错误

解决: contentType 加字符编码 ;charsetutf-8 就好了

[AutoSar]BSW_Com08 CAN driver 模块介绍及参数配置说明 (一)

目录 关键词平台说明一、缩写和定义二、CAN driver 所在位置三、CAN 模块的主要功能四、功能规格4.1 Driver State Machine4.2 CAN控制器状态机4.3 CAN控制器状态机转换4.3.1 调用function Can_Init 导致的状态转换4.3.2 调用Can_ChangeBaudrate导致的状态转换4.3.3 调用Can_Se…

无穷积分例子

以下几个题容易出错,特意记录一下。 判断积分式的敛散性 ∫ − ∞ ∞ 1 x 2 e 1 x d x \int _{-\infty } ^ {\infty} \frac{1}{x^2} e ^{\frac{1}{x}} dx ∫−∞∞​x21​ex1​dx 要注意瑕点0的处理。无穷积分,一般将积分域按瑕点拆分并分别积分。 判断…

谷粒商城【成神路】-【8】——商品上架

目录 1.数据模型封装 1.es数据模型 2.将es数据模型封装为JAVA bean 3.根据前端发送请求,编写controller 2.模型实现 2.1服务controller 2.2服务service 2.3服务远程调用接口 2.4检索服务controller 2.5检索服务保存到es 2.6库存查询服务 1.数据模型封装 1.es数据模…

Linux多线程服务端编程:使用muduo C++网络库 学习笔记 附录D 关于TCP并发连接的几个思考题与试验

前几天作者在新浪微博上出了两道有关TCP的思考题,引发了一场讨论(http://weibo.com/1701018393/eCuxDrtaONn)。 第一道初级题目是:有一台机器,它有一个IP,上面运行了一个TCP服务程序,程序只侦听…

STM32学习7 按键扫描

STM32学习7 按键扫描 一、实验电路介绍二、按键GPIO初始化三、扫描原理1. GPIO引脚配置2. 状态轮询3. 按键状态检测4. 循环扫描的优缺点优点:缺点: 四、一次扫描与持续扫描五、代码实现1. 头文件定义2. 函数实现3. 主体函数 一、实验电路介绍 本实验使用…

代码随想录算法训练营第七天

● 自己看到题目的第一想法 第454题.四数相加II 方法&#xff1a; 方法一&#xff1a; 暴力法 思路&#xff1a; 注意&#xff1a; 代码&#xff1a; class Solution { public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<i…

ABB眼中AI推动机器人创新的三大方向

文 | BFT机器人 ABB的历史是一部充满革新与进步的史诗&#xff0c;它的机器人篇章始于1974年&#xff0c;那一年它向世界推出了被誉为“全球首个商用全电动机器人”的IRB 6。时隔半个世纪&#xff0c;ABB的机器人产品线已变得无比强大和多元&#xff0c;囊括了先进的工业机械臂…

OpenAI 与开源多语言嵌入模型

原文地址&#xff1a;OpenAI vs Open-Source Multilingual Embedding Models 选择最适合您的数据的模型 2024 年 2 月 25 日 OpenAI最近发布了他们的新一代embedding模型&#xff0c;称为embeddingv3&#xff0c;他们描述是他们性能最好的embedding模型&#xff0c;具有更高…

MySQL8安装切换密码验证方式

一、MySQL8中新增了一种密码验证方式&#xff1a;caching_sha2_password&#xff0c;如果安装时选择了如下方式&#xff1a; 则数据库使用新的caching_sha2_password密码验证方式。 二、如果安装时选择了caching_sha2_password验证方式&#xff0c;而安装后想发回传统的mysql_…

云原生之容器编排实践-ruoyi-cloud项目部署到K8S:Redis7.2.3

背景 前面搭建好了 Kubernetes 集群与私有镜像仓库&#xff0c;终于要进入服务编排的实践环节了。本系列拿 ruoyi-cloud 项目进行练手&#xff0c;按照 MySQL &#xff0c; Nacos &#xff0c; Redis &#xff0c; Nginx &#xff0c; Gateway &#xff0c; Auth &#xff0c;…

Power BI vs Superset BI 调研报告

调研结论 SupersetPower BI价格开源①. Power BI Pro 每人 $10/月($120/年/人) ②. Power BI Premium 每人 $20/月($240/年/人) ③. Power BI Embedded:4C10G $11W/年 权限基于角色的访问控制,支持细粒度的访问: 表级别、库级别、图表级别,看板级别,用户级别 基于角色…

VS Code 的粘性滚动预览 - 类似于 Excel 的冻结首行

VS Code 的粘性滚动预览 - 类似于 Excel 的冻结首行功能&#xff0c;即滚动 UI 显示当前源代码范围。便于在代码行数比较多的时候更好的知道自己所在的位置。粘性滚动UI 显示用户在滚动期间所处的范围&#xff0c;将显示编辑器顶部所在的类/接口/命名空间/函数/方法/构造函数&a…

JavaScript之引用类型

系列文章目录 文章目录 系列文章目录前言一、Object类型二、Array类型三、Date类型四、Function类型五、内置对象 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文…