码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数据库-MySQL-基础(5)- DQL


     

    目录

    DQL-聚合函数

    1、介绍

    2、常见聚合函数

    3、语法

    4、案例 

    DQL-分组查询

    1、语法

    2、where 与having区别

    3、案例

    4、注意

    DQL-排序查询

    1、语法

    2、排序方式

    3、案例

    DQL-分页查询

    1、语法

    2、注意

    3、案例

    DQL-执行顺序


    DQL-聚合函数

    1、介绍

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

    2、常见聚合函数

    函数功能
    count统计数量
    max最大值
    min最小值
    avg平均值
    sum求和

    3、语法

    SELECT 聚合函数(字段列表)FROM 表名;


    4、案例 

    注意这个表初始为

    查询start_table 这张表的总数据量

    select  count(*) from start_table;

      结果为6 

      查询具体字段(id)的总数据量

    select  count(id) from start_table;

       结果为6

      注意:null 值不参与聚合函数运算(如果你查询address  出现结果为5)

      统计该表中所有明星 id 平均值

    select  avg(id) from start_table;

     求统计表中最大的id

    select  max(id) from start_table;

     统计所有表中男性id之和

    select  sum(id) from start_table where gender = '男';

     


    DQL-分组查询

    1、语法

    SELECT 字段列表 FROM 表名  [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组过滤后条件]   

    2、where 与having区别

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

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

    3、案例

      根据性别进行分组,统计男性,女性数量 

    select gender,count(*) from start_table group by gender;

     

      根据性别分组,统计男性员工和女性员工的平均 id

    1. select gender,avg(id) from start_table group by gender;

     

    根据性别分组,统计所有地址为安徽或者北京的人的数量,count 要大于等于2

    select gender,count(*) from start_table where address = '安徽' || address = '北京' having count(*)>=2;

    4、注意

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

    ——分组之后查询的字段一般为聚合函数和分组字段,查询其他字段毫无意义

    (比如如果你按照性别分组,但是你在前面查询姓名,查询的姓名只出现一个,这个不代表什么)


    DQL-排序查询

    1、语法

    SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式 1,字段2 排序方式2;

    2、排序方式

    ——ASC:升序(默认值)

    ——DESC: 降序

    注意:如果是多字段排序,当第一个字段相同时,才会根据第二个字段进行排序。

    3、案例

      根据 id 进行降序排序

    select * from start_table order by id DESC ;


    DQL-分页查询

    1、语法

    SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录;


    2、注意

    ——起始索引从0开始,起始索引 = (查询页码  - 1)* 每页显示记录数。

    ——分页查询是数据库的方言,不同数据库有不同的实现,MySQL是LIMIT。

    ——如果查询的是第一页数据,起始索引可以省略,直接写limit 10。

    3、案例

      查询第一页明星数量,每页展示3条记录

    select  *from start_table limit 0,3;
    select  *from start_table limit 3;

     

    查询第二页明星数量,每页展示3条记录 

     注:(2 - 1)*3 = 3 ——(页码- 1)* 页展示记录数 

    select  *from start_table limit 3,3;


     

    DQL-执行顺序

    编写顺序和执行顺序

     

  • 相关阅读:
    华为云云服务器云耀L实例评测 | 在华为云耀L实例上搭建电商店铺管理系统:一次场景体验
    基于Drone+Gogs流水线-全面认识轻量级云原生CI引擎Drone
    vue-生成二维码
    【eBPF-02】入门:基于 BCC 框架的程序进阶
    测试面试 | 头铁硬肝自动化测试,跳槽薪资翻 3 倍(附面试题)
    SDXL v1.0 多种风格提示词集锦
    计算机毕业设计 基于Vue的米家商城系统的设计与实现 Java实战项目 附源码+文档+视频讲解
    docker入门加实战—docker数据卷
    Burp Suite Extension Development Guide
    既生瑜,何生亮?
  • 原文地址:https://blog.csdn.net/qq_64691289/article/details/127116984
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号