首页 > 数据库 >Mysql基础4-数据查询

Mysql基础4-数据查询

时间:2023-07-17 22:14:08浏览次数:30  
标签:表中 Mysql 查询 分组 表名 列表 数据 select

一、DQL介绍

  DQL全称:Data Query Language(数据查询语言),用来查询数据库中表的记录。

  关键字:select

 

二、DQL语法

  select 字段列表 from 表名列表 where 条件列表 group by 分组字段列表 having 分组后条件列表 order by 排序字段列表 limit 分页参数

  注意:本章节只涉及到单表查询,多表查询会在后面的文章中介绍

 

三、基本查询

  1、原始表数据

    

  2、查询多个字段

    语法:select 字段1,字段2,... from 表名 或者 select * from 表名(查询所有数据)

    查询指定字段

    

  3、设置别名

    语法:select 字段1  [as 别名1], 字段2 [as 别名2] ... from 表名;

    对查询结果设置别名

    

 

  4、去重查询

    语法:select distinct 字段列表 from 表名;      

    

 

四、条件查询

  语法:select 字段列表 from 表名 where 条件列表  

 
运算符 功能
> 大于
>= 大于等于
< 小于
<= 小于等于
<> 或 != 不等于
between ... and ... 在某个范围之间(包含最大值和最小值)
in(...) 在in之后的列表中的值,多选一
like 占位符 模糊匹配( "_" 匹配单个字符,"%"匹配任何字符)
is null 是null
and 或者 && 并且
or 或者 || 或者
not 或者 !

  1、查询年龄等于18的所有人的姓名

    

 

   2、查询年龄小于21的人的姓名 

    

   3、查询年龄大于18,小于20的

    

   4、查询地址不为空的人的姓名和地址信息  

    

   5、查询年龄小于20并且地址在西安的人的姓名和地址

    

   6、查询地址在列表["北京","上海","广州","深圳"]中的人的姓名和地址

    

 

五、聚合函数

  1、介绍

    将一列数据作为一个整体,进行纵向计算

  2、常见聚合函数

    count:统计数量

    max: 最大值

    min:最小值

    avg:平均值

    sum:求和

  3、语法

    select 聚合函数(字段列表) from 表名;

  4、示例

    4.1 统计table_test表中一共有多少数据

    

     4.2 统计table_test表中年龄最大的数据

    

     4.3 统计table_test表中年龄最小的数据

    

     4.4 统计table_test表中年龄的平均值

    

     4.5 统计table_test表中所有人的年龄之和

    

    4.6 统计北京地区所有员工的年龄之和 

    

     注意:在使用聚合函数的时候,所有的null值是不参与运算的,虽然table_test表中有6个数据,但是address列有一个是null,所以统计address字段时是5

    

 

六、分组查询

  1、语法:

    select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件]

  2、where与having区别

    执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组,而having是分组之后对结果进行过滤

    判断条件不同:where不能对聚合函数进行判断,而having可以

  3、示例

    3.1 统计不同地区的平均年龄,需要根据address做分组

    

     3.2 统计各个地区的平均年龄(不统计空地区的),先使用where做条件筛选,然后再分组

    

     3.3 统计各个地区的平均年龄(不统计空地区),并且显示平均年龄要大于19岁的  

     

     注意:

      1、执行顺序:where > 聚合函数 > having

      2、分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段没有意义

 

七、排序查询

  1、语法:

    select 字段列表 from 表名 order by 字段1 排序方式1, 字段2 排序方式2;

  2、排序方式

    ASC:升序(默认)

    DESC:降序

  3、示例

    3.1 table_test表中数据按照年龄升序排列

      

     3.2 table_test 表中数据按照年龄降序排列

      

     3.3 table_test 表中数据按照年龄降序排列,年龄一样的,在继续按照id降序排列

      

 

八、分页查询

  1、语法

    select 字段列表 from 表名 limit 起始索引,查询记录数;

  2、注意

    * 其实索引从0开始,其实索引等于(查询页码-1)* 每页显示的记录数

    * 分页查询是数据库的方言,不同的数据库有不同的实现,mysql中是limit

    * 如果查询的是第一页,起始索引可以省略,直接写为limit 数量

  3、示例

    3.1 查询第一页数据,每页展示5条数据

      

    3.2 查询第二页数据,每页展示5条数据,因为每页的数据是5条,所以第二页的索引其实位置是(2-1)*5 = 5,第三页的起始位置是(3-1)*5=10

      又因为一共只有6条数据,所以第二页只有一条数据可以展示

      

 

 

九、DQL执行顺序

  

 

      

 

标签:表中,Mysql,查询,分组,表名,列表,数据,select
From: https://www.cnblogs.com/Se7eN-HOU/p/17561385.html

相关文章

  • 数据库连接池之c3p0-0.9.1.2,线上偶发APPARENT DEADLOCK,如何解?
    前言本篇其实是承接前面两篇的,都是讲定位线上的c3p0数据库连接池,发生连接泄露的问题。第二篇讲到,可以配置两个参数,来找出是哪里的代码借了连接后没有归还。但是,在我这边的情况是,对于没有归还的连接,借用者的堆栈确实是打印到日志了,但是我在本地模拟的时候,发现其实这些场景是有归......
  • 如何连接远程数据库
    如何连接远程数据库在数据库新建连接,输入远程数据库信息,测试连接提示连接成功后点击确定>确定即可双击ceshi连接,即可查看远端服务器的数据库内容......
  • TCP的Keep-Alive机制:链接存在但是没有数据传输,内核怎么处理
    服务端会定期发送探测报文来检测客户端的存活状态。由三个内核参数控制:首次发送探测报文时间:net.ipv4.tcp_keepalive_time有报文传输时重置探测报文的发送间隔:net.ipv4.tcp_keepalive_intvl探测报文的最大重试次数:net.ipv4.tcp_keepalive_probes#sysctl-a|grep......
  • .NET Core6.0 通过EF的方式如何链接MySQL
    之前一直用的是EF链接SQLServer今天聊一聊EF链接MySQL第一步我们首先创建一个简单的用户实体类 这里呢创建了一个主键为string类型的用户Id和一个用户名称第二步我们创建一个类库里面创建上下文类 但是这里需要注意引用的NuGet包和链接SQLServer的包有个是不一样的这是......
  • linux Mysql 备份与还原
    数据库是企业中非常重要的部分,数据是企业的根本,不可丢失的,需要备份和还原。目录一、数据备份的重要性二、数据库备份类型三、常见的备份方法四、MySQL完全备份五、数据库完全备份分类六、实战案列七、总结   一、数据备份的重要性1.数据备份的重要......
  • java aspose填充数据word生成pdf
    使用AsposeJava填充数据并生成PDF作为一名经验丰富的开发者,你可以通过以下步骤教导刚入行的小白如何使用AsposeJava库来填充数据并生成PDF。下面是整个过程的流程图:步骤描述1加载Word文档模板2创建Document对象3获取Document对象的MailMerge属性4创建包......
  • 前端收到的数据和接口给的数据不一致--踩坑
    后端确认自己传过来的是522880684734283776,但是我这边收到的确实是522880684734283800。原因是:Long类型的数据过长的话会导致精度丢失。解决方案:后端改为string类型传给前端。......
  • java mongodb查询忽略大小写
    实现JavaMongoDB查询忽略大小写概述在使用Java与MongoDB进行数据交互时,有时我们需要执行不区分大小写的查询操作。本文将指导你如何在Java中实现忽略大小写的MongoDB查询。前提条件在开始之前,确保已经安装并配置好了Java开发环境和MongoDB数据库。流程下面是实现JavaMongoD......
  • 2023年Q2京东厨卫大电市场分析报告(京东运营数据分析)
    随着新产品推广和消费需求升级,今年Q2,京东厨卫大电市场的销售额突破百亿,从同环比来看均呈增长趋势。百亿市场中,油烟机、电热水器、燃气热水器这三大品类占据较大份额,这一期,我们重点来看一下京东厨卫大电市场中这3个热门品类的行业销售情况。*数据源于鲸参谋-类目排行【Q2油烟机市场......
  • mysql 更新时where条件缺失导致更新全表问题
    1、问题更新时where条件缺失导致更新全表问题2、错误sqlupdateorderset`status`=1in('XX001','XX002','XX003');错误分析:更新整个order表,并没有限制更新的范围。原因是这个SQL语句在IN子句中没有提供任何条件,导致MySQL将IN子句视为一个包含了所有order_id值的列表。......