④【数据查询】MySQL查询语句,拿来即用。

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: ④【数据查询】MySQL查询语句,拿来即用。


④【数据查询】MySQL查询语句,拿来即用。


1. 语法编写顺序 以及 执行顺序

DQL - 语法(编写顺序)

SELECT
  字段列表
FROM
  表名列表
WHERE
  条件列表
GROUP BY
  分组字段列表
HAVING
  分组后条件列表
ORDER BY
  排序字段列表 排序规则
LIMIT
  分页参数


执行顺序

FROM
  表名列表
WHERE
  条件列表
GROUP BY
  分组字段列表
HAVING
  分组后条件列表
SELECT
  字段列表
ORDER BY
  排序字段列表 排序规则
LIMIT
  分页参数
  • 查询表 ==> 分组前条件过滤 ==> 分组 ==> 分组后条件过滤 ==> 获取哪些字段 ==> 按照字段排序 ==> 分页显示




2. 基本查询

DQL - 基本查询

  • 基本查询
  • ①查询多个字段
SELECT 字段1,字段2,字段3... FROM 表名;
SELECT * FROM 表名;

  • ②设置别名
SELECT 字段1[AS 别名1],字段2[AS 别名2]... FROM 表名;

  • ③去除重复记录(DISTINCT关键字)
SELECT DISTINCT 字段1,字段2,字段3... FROM 表名;
SELECT DISTINCT * FROM 表名;




3. 条件查询

DQL - 条件查询

  • ①根据条件查询字段
SELECT 字段列表 FROM 表名 WHERE 条件;

  • 条件:
  • ①比较运算符:
  • >:大于
  • >=:大于等于
  • <:小于
  • <=:小于等于
  • =:等于
  • <>!=:不等于
  • BETWEEN...AND...:在某个范围以内(含最小、最大值)
  • IN(...):IN(…)括号内列表中的值,多选一
  • LIKE '占位符':模糊匹配(_匹配单个字符,%匹配任意个字符)
  • IS NULL:是NULL
  • ②逻辑运算符:
  • AND&&:并且(多个条件同时成立)
  • OR||:或者(多个条件任意一个成立)
  • NOT!:非,不是




4. 聚合函数

聚合函数

  • count():统计数量
  • max():求最大值
  • min():求最小值
  • avg():求平均值
  • sum():求和
  • 注意:null值不参与所有聚合函数的运算。

  • 使用聚合函数查询:
SELECT 聚合函数(字段列表) FROM 表名;
-- 演示:
-- 员工表,表名:emp
-- 统计emp员工表的员工数量
SELECT COUNT(*) FROM emp;
-- 统计员工的平均年龄,字段age表示年龄
SELECT AVG(age) FROM emp;
-- 统计员工的最大年龄
SELECT MAX(age) FROM emp;
-- 统计员工的最小年龄
SELECT MIN(age) FROM emp;
-- 统计广东地区员工的年龄之和
-- 地区字段:workaddress
SELECT SUM(age) FROM emp WHERE workaddress = '广东';




5. 分组查询

DQL - 分组查询

  • 分组查询数据:
SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];

  • WHEREHAVING 区别:
  • 执行时机不同:where是分组之前进行过滤,不满足where的条件,不参与分组;而having是分组之后对结果进行过滤。
  • 判断条件不同:where不能使用聚合函数进行操作,而having可以
-- 演示
-- 根据性别分组,统计男性员工和女性员工的数量
-- 性别字段:sex
SELECT sex,COUNT(*) 
FROM emp 
GROUP BY sex;
-- 根据性别分组,统计男性员工和女性员工的平均年龄
-- 性别字段:sex;年龄字段:age
SELECT sex,AVG(age) 
FROM emp 
GROUP BY sex;
-- 查询年龄小于45岁的员工,根据工作地址分组,获取员工数量大于3的工作地址
SELECT workaddress,COUNT(*) 
WHERE age < 45
GROUP BY workaddress
HAVING COUNT(*) > 3;




6. 排序查询

DQL - 排序查询

  • 查询并排序
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序规则1,字段2 排序规则2;

  • 排序规则:
  • ASC —— 升序(默认值)
  • DESC —— 降序
  • 若不指定排序规则,默认按照升序排序。
  • 如果指定了多个排序字段,排序的数据只有当第一个字段值相同时,才会根据第二个字段进行排序。




7. 分页查询

DQL - 分页查询

  • 对查询进行分页:
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;

  • 注意:
  • ①起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示的查询记录数
  • ②分页查询在不同的数据库中实现方式不同,MySQL是LIMIT
  • ③如果查询的是第一页数据,可以省略起始索引,直接LIMIT 10





相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
缓存 关系型数据库 MySQL
MySQL索引策略与查询性能调优实战
在实际应用中,需要根据具体的业务需求和查询模式,综合运用索引策略和查询性能调优方法,不断地测试和优化,以提高MySQL数据库的查询性能。
197 66
|
14天前
|
存储 Oracle 关系型数据库
索引在手,查询无忧:MySQL索引简介
MySQL 是一款广泛使用的关系型数据库管理系统,在2024年5月的DB-Engines排名中得分1084,仅次于Oracle。本文介绍MySQL索引的工作原理和类型,包括B+Tree、Hash、Full-text索引,以及主键、唯一、普通索引等,帮助开发者优化查询性能。索引类似于图书馆的分类系统,能快速定位数据行,极大提高检索效率。
48 8
|
17天前
|
SQL 关系型数据库 MySQL
MySQL 窗口函数详解:分析性查询的强大工具
MySQL 窗口函数从 8.0 版本开始支持,提供了一种灵活的方式处理 SQL 查询中的数据。无需分组即可对行集进行分析,常用于计算排名、累计和、移动平均值等。基本语法包括 `function_name([arguments]) OVER ([PARTITION BY columns] [ORDER BY columns] [frame_clause])`,常见函数有 `ROW_NUMBER()`, `RANK()`, `DENSE_RANK()`, `SUM()`, `AVG()` 等。窗口框架定义了计算聚合值时应包含的行。适用于复杂数据操作和分析报告。
59 11
|
20天前
|
存储 关系型数据库 MySQL
mysql怎么查询longblob类型数据的大小
通过本文的介绍,希望您能深入理解如何查询MySQL中 `LONG BLOB`类型数据的大小,并结合优化技术提升查询性能,以满足实际业务需求。
81 6
|
8天前
|
SQL Oracle 关系型数据库
【MySQL】——数据查询_进阶操作(超详细)!!
聚合查询,联合查询,内外连接,子查询,合并查询爽歪歪
|
2月前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
68 9
|
2月前
|
缓存 监控 关系型数据库
如何优化MySQL查询速度?
如何优化MySQL查询速度?【10月更文挑战第31天】
136 3
|
2月前
|
SQL NoSQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(5)作者——LJS[含MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页等详解步骤及常见报错问题所对应的解决方法]
MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页、INSERT INTO SELECT / FROM查询结合精例等详解步骤及常见报错问题所对应的解决方法
|
2月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
346 1
|
3月前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
236 6