MySQL---表数据高效率查询(简述)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL---表数据高效率查询(简述)

一、聚合查询

       聚合查询有3种方式,聚合函数、GROUP BY子句和HAVING

💖聚合函数

       用于统计总数、计算平均值等操作。

1、count ( )          作用:返回查询到的数据的数量

语法示例:SELECT   count(字段名)   from  数据表名;  

          //查询该数据表中该字段名的含有的数据量

2、sum( )              作用:计算查询到的数据总和

语法示例:SELECT   sum(字段名)   from  数据表名;

       //查询该数据的表中该字段名的数据之和。

3、avg()               作用:计算查询到的数据的平均值

语法示例:SELECT   avg(字段名)   from  数据表名;

         //查询该数据的表中该字段名的所有数据的平均值。

4、max()                 作用:计算查询到的数据的最大值

语法示例:SELECT   max(字段名)   from  数据表名;

       //查询该数据的表中该字段名的所有数据的最大值。

5、min()                作用:计算查询到的数据的最小值

语法示例:SELECT   min(字段名)   from  数据表名;

     //查询该数据的表中该字段名的所有数据的最小值。

💖GROUP BY子句

        GROUP BY 子句可以对指定列进行分组查询,但是需要和聚合函数一起使用才有高效率。

语法格式:select  字段名1,聚合函数名(字段名2).....for table group by 字段名1,字段名2;

示例:select sex,max(salary),min(salary),avg(salary) from emp group by sex;

       //将性别列 分组查询最高工资、最低工资、平均工资。

💖HAVING

       在使用group by子句的情况下,再对结果进行过滤,是不可以使用where语句,得使用having语句。

语法格式:select  字段1,聚合函数名(字段名2).....for table group by 字段名1,字段名2  having 条件;

示例:        //查询年龄高于20的男女最高工资、最低工资、平均工资

select sex,max(salary),min(salary),avg(salary) from emp group by sex having age>20;

二、联合查询

       联合查询分为很多,内连接、外连接、自连接、子连接和合并连接

💖内连接

       连接2个有关联的表,查询所需要的数据

语法格式:

       select *from 表1 join 表2 [ on过滤条件 ] [ where查询条件 ] ;

💖外连接

外连接分:左,右。


1.左外连接,表1完全显示:

 语法格式 :select 字段名 from 表名1 left join 表名2 on 连接条件  [where条件查询];

2.右外连接,表2完全显示:

语法格式:select 字段 from 表名1 right join 表名2 on 连接条件  [where条件查询];

💖自连接

自连接,顾名思义,在同一张表连接自身。

语法格式:select *from 表名 as t1,表名 as t2 where t1.id=t2.id [, ...]

示例:查询分数表中,某个人一门成绩大于另一门的成绩

使用:select * from score as t1,score as t2 where t1.sid=t2.sid and t1.grade<t2.grade;

💖子查询

子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询

分两种,一种单行子查询,另一种多行子查询

  • 单行子查询

  示例:查询和许仙一个班级的学生的所有信息

select * from student where classes_id=(select classes_id from studentwhere name='许仙');

  • 多行子查询

示例:查询和许仙或者奥特曼一个班级的学生的所有信息

select * from student where classes_id  in (select classes_id from studentwhere name='许仙' or name='奥特曼' );

💖合并查询

       为了合并多个select的执行结果,我们需要使用集合操作符union,union all。

  • union

作用:使用于查询两个结果集的并集,会自动去除重复行

示例:查询大于22岁的男性信息

select  * from student where age>20 union select * from student where sex='男‘’;

  • union all

作用:使用于查询两个结果集的并集,不会去除重复行

 


  制作不易,哥哥姐姐们点个赞吧!!!


                                                                                                       --------懒惰的tq02

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3天前
|
存储 关系型数据库 MySQL
mysql数据库查询时用到的分页方法有哪些
【8月更文挑战第16天】在MySQL中,实现分页的主要方法包括:1)使用`LIMIT`子句,简单直接但随页数增加性能下降;2)通过子查询优化`LIMIT`分页,提高大页码时的查询效率;3)利用存储过程封装分页逻辑,便于复用但需额外维护;4)借助MySQL变量实现,可能提供更好的性能但实现较复杂。这些方法各有优缺点,可根据实际需求选择适用方案。
|
1天前
|
存储 关系型数据库 MySQL
MySQL bit类型增加索引后查询结果不正确案例浅析
【8月更文挑战第17天】在MySQL中,`BIT`类型字段在添加索引后可能出现查询结果异常。表现为查询结果与预期不符,如返回错误记录或遗漏部分数据。原因包括索引使用不当、数据存储及比较问题,以及索引创建时未充分考虑`BIT`特性。解决方法涉及正确运用索引、理解`BIT`的存储和比较机制,以及合理创建索引以覆盖各种查询条件。通过`EXPLAIN`分析执行计划可帮助诊断和优化查询。
|
5天前
|
关系型数据库 MySQL 索引
mysql8.0中fulltext不能查询到中文的解决方法
确保MySQL服务器字符集为`utf8mb4`,并设置`ngram_token_size=1`以支持单字搜索。如已更改此参数且存在全文索引,需删除原有索引并重建,使用`WITH PARSER ngram`指定解析器。例如: ``` ALTER TABLE your_table DROP INDEX idx_fulltext, ADD FULLTEXT INDEX idx_fulltext (your_column) WITH PARSER ngram; ```
|
7天前
|
存储 算法 关系型数据库
探索MySQL递归查询,优雅的给树结构分页!
总结起来,对于MySQL中的树结构数据,递归查询结合预排序遍历树算法可以实现优雅的分页,但需要注意性能优化和数据更新的问题。这项技术提供了一种高效处理层级数据的工具,使得开发者可以在复杂的数据结构下实现直观和可靠的数据查询。
18 1
|
13天前
|
存储 SQL 缓存
MySQL查询语句的执行过程
MySQL查询语句的执行过程
|
24天前
|
SQL 缓存 关系型数据库
MySQL 查询索引失效及如何进行索引优化
MySQL 查询索引失效及如何进行索引优化
61 1
|
27天前
|
算法 搜索推荐 NoSQL
面试题MySQL问题之分库分表后的富查询问题处理如何解决
面试题MySQL问题之分库分表后的富查询问题处理如何解决
31 3
|
3天前
|
存储 SQL 关系型数据库
探索MySQL的执行奥秘:从查询执行到数据存储与优化的深入解析
探索MySQL的执行奥秘:从查询执行到数据存储与优化的深入解析
|
27天前
|
JSON NoSQL MongoDB
面试题MySQL问题之想使用Neo4j查询可变数量的关系节点如何解决
面试题MySQL问题之想使用Neo4j查询可变数量的关系节点如何解决
28 1
|
23天前
|
SQL 关系型数据库 MySQL
Mysql 开启慢日志查询及查看慢日志 sql
Mysql 开启慢日志查询及查看慢日志 sql
20 0