心语故事 发表于 2023-7-18 02:49:27

Mysql基础4-数据查询

一、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  , 字段2 ... from 表名;
    对查询结果设置别名
    
 
  4、去重查询

    语法:select distinct 字段列表 from 表名;      
    
 
四、条件查询

  语法:select 字段列表 from 表名 where 条件列表  
 运算符功能>大于>=大于等于</tdtd小于/td/trtrtd=/tdtd小于等于/td/trtrtd 或 !=/tdtd不等于/td/trtrtdbetween ... and .../tdtd在某个范围之间(包含最大值和最小值)/td/trtrtdin(...)/tdtd在in之后的列表中的值,多选一/td/trtrtdlike 占位符/tdtd模糊匹配( "_" 匹配单个字符,"%"匹配任何字符)/td/trtrtdis null/tdtd是null/td/trtrtdand 或者 &&/tdtd并且/td/trtrtdor 或者 ||/tdtd或者/td/trtrtdnot 或者 !/tdtd非/td/tr/tbody/tablep  strong1、查询年龄等于18的所有人的姓名/strong/pp    img src="https://img2023.cnblogs.com/blog/751754/202307/751754-20230717191309631-1428111387.png" alt="" loading="lazy"/pp /pp   strong2、查询年龄小于21的人的姓名 /strong/pp    img src="https://img2023.cnblogs.com/blog/751754/202307/751754-20230717191055148-287643466.png" alt="" loading="lazy"/pp   strong3、查询年龄大于18,小于20的/strong/pp    img src="https://img2023.cnblogs.com/blog/751754/202307/751754-20230717191454569-531436778.png" alt="" loading="lazy"/pp   strong4、查询地址不为空的人的姓名和地址信息 /strong /pp    img src="https://img2023.cnblogs.com/blog/751754/202307/751754-20230717192619027-960345909.png" alt="" loading="lazy"/pp   strong5、查询年龄小于20并且地址在西安的人的姓名和地址/strong/pp    img src="https://img2023.cnblogs.com/blog/751754/202307/751754-20230717193048254-40932912.png" alt="" loading="lazy"/pp   6、查询地址在列表["北京","上海","广州","深圳"]中的人的姓名和地址/pp    img src="https://img2023.cnblogs.com/blog/751754/202307/751754-20230717200826524-1041101358.png" alt="" loading="lazy"/pp /ph3五、聚合函数/h3  strong1、介绍/strongbrpstrong    将一列数据作为一个整体,进行纵向计算/strong/ppstrong  2、常见聚合函数/strong/ppstrong    count:统计数量/strong/ppstrong    max: 最大值/strong/ppstrong    min:最小值/strong/ppstrong    avg:平均值/strong/ppstrong    sum:求和/strong/ppstrong  3、语法/strong/ppstrong    select 聚合函数(字段列表) from 表名;/strong/ppstrong  4、示例/strong/ppstrong    4.1 统计table_test表中一共有多少数据/strong/pp    img src="https://img2023.cnblogs.com/blog/751754/202307/751754-20230717202133927-1756966402.png" alt="" loading="lazy"/pp     strong4.2 统计table_test表中年龄最大的数据/strong/ppstrong    img src="https://img2023.cnblogs.com/blog/751754/202307/751754-20230717202240727-1798858261.png" alt="" loading="lazy"/strong/pp     strong4.3 统计table_test表中年龄最小的数据/strong/pp    img src="https://img2023.cnblogs.com/blog/751754/202307/751754-20230717202427562-243355406.png" alt="" loading="lazy"/pp     strong4.4 统计table_test表中年龄的平均值/strong/pp    img src="https://img2023.cnblogs.com/blog/751754/202307/751754-20230717202517860-1138140723.png" alt="" loading="lazy"/pp     strong4.5 统计table_test表中所有人的年龄之和/strong/pp    img src="https://img2023.cnblogs.com/blog/751754/202307/751754-20230717202631019-1685812382.png" alt="" loading="lazy"/pp    strong4.6 统计北京地区所有员工的年龄之和 /strong/pp    img src="https://img2023.cnblogs.com/blog/751754/202307/751754-20230717203200786-701250176.png" alt="" loading="lazy"/pp     strong注意:在使用聚合函数的时候,所有的null值是不参与运算的,虽然table_test表中有6个数据,但是address列有一个是null,所以统计address字段时是5/strong/pp    img src="https://img2023.cnblogs.com/blog/751754/202307/751754-20230717202843956-1043126304.png" alt="" loading="lazy"/pp /ph3六、分组查询/h3p  strong1、语法:/strong/pp    select 字段列表 from 表名 group by 分组字段名 /pp  strong2、where与having区别/strong/pp    执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组,而having是分组之后对结果进行过滤/pp    判断条件不同:where不能对聚合函数进行判断,而having可以/pp  strong3、示例/strong/pp    3.1 统计不同地区的平均年龄,需要根据address做分组/pp    img src="https://img2023.cnblogs.com/blog/751754/202307/751754-20230717204450001-1827968363.png" alt="" loading="lazy"/pp     3.2 统计各个地区的平均年龄(不统计空地区的),先使用where做条件筛选,然后再分组/pp    img src="https://img2023.cnblogs.com/blog/751754/202307/751754-20230717204617495-352465541.png" alt="" loading="lazy"/pp     3.3 统计各个地区的平均年龄(不统计空地区),并且显示平均年龄要大于19岁的  /pp     img src="https://img2023.cnblogs.com/blog/751754/202307/751754-20230717205146392-129809110.png" width="1000" loading="lazy"/pp     注意:/pp      1、执行顺序:where聚合函数 > having</p>      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执行顺序

   
      
 

来源:https://www.cnblogs.com/Se7eN-HOU/p/17561385.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: Mysql基础4-数据查询