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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 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





相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
存储 关系型数据库 MySQL
提高MySQL查询性能的方法有很多
提高MySQL查询性能的方法有很多
156 7
|
1月前
|
存储 关系型数据库 MySQL
提高MySQL的查询性能
提高MySQL的查询性能
67 4
|
9天前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
39 9
|
11天前
|
缓存 监控 关系型数据库
如何优化MySQL查询速度?
如何优化MySQL查询速度?【10月更文挑战第31天】
36 3
|
16天前
|
SQL NoSQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(5)作者——LJS[含MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页等详解步骤及常见报错问题所对应的解决方法]
MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页、INSERT INTO SELECT / FROM查询结合精例等详解步骤及常见报错问题所对应的解决方法
|
15天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
77 1
|
21天前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
|
21天前
|
NoSQL 关系型数据库 MySQL
MySQL与Redis协同作战:优化百万数据查询的实战经验
【10月更文挑战第13天】 在处理大规模数据集时,传统的关系型数据库如MySQL可能会遇到性能瓶颈。为了提升数据处理的效率,我们可以结合使用MySQL和Redis,利用两者的优势来优化数据查询。本文将分享一次实战经验,探讨如何通过MySQL与Redis的协同工作来优化百万级数据统计。
48 5
|
18天前
|
SQL 关系型数据库 MySQL
定时任务频繁插入数据导致锁表问题 -> 查询mysql进程
定时任务频繁插入数据导致锁表问题 -> 查询mysql进程
37 1
|
16天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
47 0