【JavaWeb】Day39.MySQL概述——数据库设计-DQL(二)

数据库设计-DQL

聚合函数

聚合函数查询就是纵向查询,它是对一列的值进行计算,然后返回一个结果值。(将一列数据作为一个整体,进行纵向计算)

语法:

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

 注意 : 聚合函数会忽略空值,对NULL值不作为统计。

  • count :按照列去统计有多少行数据。

          在根据指定的列统计的时候,如果这一列中有null的行,该行不会被统计在其中。

  • sum :计算指定列的数值和,如果不是数值类型,那么计算结果为0
  • max :计算指定列的最大值
  • min :计算指定列的最小值
  • avg :计算指定列的平均值

案例1:统计该企业员工数量

~~~mysql
# count(字段)
select count(id) from tb_emp;-- 结果:29
select count(job) from tb_emp;-- 结果:28 (聚合函数对NULL值不做计算)# count(常量)
select count(0) from tb_emp;
select count('A') from tb_emp;# count(*)  推荐此写法(MySQL底层进行了优化)
select count(*) from tb_emp;
~~~

案例2:统计该企业最早入职的员工(使用子嵌套)

案例3:统计该企业最迟入职的员工

案例4:统计该企业员工 ID 的平均值

案例5:统计该企业员工的 ID 之和

分组查询

分组: 按照某一列或者某几列,把相同的数据进行合并输出。

       分组其实就是按列进行分类(指定列下相同的数据归为一类),然后可以对分类完的数据进行合并计算。分组查询通常会使用聚合函数进行计算。

语法:

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

案例1:根据性别分组 , 统计男性和女性员工的数量

select gender, count(*) from tb_emp

group by gender; -- 按照gender字段进行分组(gender字段下相同的数据归为一组)

案例2:查询入职时间在 '2015-01-01' (包含) 以前的员工 , 并对结果根据职位分组 , 获取员工数量大于等于2的职位

注意事项:

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

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

where与having区别:

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

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

排序查询

排序在日常开发中是非常常见的一个操作,有升序排序,也有降序排序。

语法:

select  字段列表  

from   表名  

[where  条件列表]

[group by  分组字段 ]

order  by  字段1  排序方式1 , 字段2  排序方式2 … ;

排序方式:

 ASC :升序(默认值)

 DESC:降序

案例1:根据入职时间, 对员工进行升序排序

注意事项:如果是升序, 可以不指定排序方式ASC

案例2:根据入职时间,对员工进行降序排序

案例3:根据入职时间对公司的员工进行升序排序,入职时间相同,再按照更新时间进行降序排序

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

分页查询

       分页操作在业务系统开发时,也是非常常见的一个功能,日常我们在网站中看到的各种各样的分页条,后台也都需要借助于数据库的分页操作。

分页查询语法:

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

案例1:从起始索引0开始查询员工数据, 每页展示5条记录

案例2:查询 第1页 员工数据, 每页展示5条记录

案例3:查询 第2页 员工数据, 每页展示5条记录

注意事项:

1. 起始索引从0开始。        计算公式 :   起始索引 = (查询页码 - 1)* 每页显示记录数

2. 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT

3. 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit  条数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/804787.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件设计—接口安全设计规范

1.token授权机制 2.https传输加密 3.接口调用防滥用 4.日志审计里监控 5.开发测试环境隔离,脱敏处理 6.数据库运维监控审计 软件项目相关全套精华资料包获取方式①:点我获取 获取方式②:本文末个人名片直接获取。

每日三道面试题之 Java并发编程 (四)

1.什么是线程死锁 线程死锁是并发编程中一个常见问题,它发生在两个或多个线程永久性地阻塞彼此,等待对方释放锁,但没有任何一方先行释放锁的情况下。简单来说,每个线程都持有对方需要的资源而等待对方释放资源,导致所…

高校人事管理系统业务分析

目标用户 大学人事部门,部门、院系、任务 解决问题 人事部门按业务划分了很多科室、数据分散、工作流程杂乱、工作效率低。 主要功能模块 人事综合管理平台、个人自助服务平台、人才招聘管理系统、薪酬管理子系统、职称评审子系统、绩效考核子系统组成。

泛零售行业大会员经营的业务挑战与应对策略

​泛零售企业发展到成规模阶段一定会沉淀大量会员,在当前的市场竞争下,企业的经营重点在关注增量市场的同时,也会聚焦对存量会员的价值深挖,提升会员忠诚度,实现“以客户体验为中心、以数据驱动运营”。 对于多业态、…

R语言处理DNA等位基因不平衡(一)

在生物信息学和基因组学研究中,等位基因不平衡分析是一种重要的方法,用于识别在特定生物过程或疾病状态中可能受到选择压力的基因或基因区域。等位基因不平衡(Allele Imbalance)指的是基因座上两个等位基因表达或存在的比例不等&a…

小程序打开空白的问题处理

小程序打开是空白的,如下: 这个问题都是请求域名的问题: 一、检查服务器域名配置了 https没有,如果没有,解决办法是申请个ssl证书,具体看这里 https://doc.crmeb.com/mer/mer2/4257 二、完成第一步后&#…

基于springboot实现墙绘产品展示交易平台管理系统项目【项目源码+论文说明】

基于springboot实现墙绘产品展示交易平台系统演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本墙绘产品展示交易平台就是在这样的大环境下诞生&#xff…

RTSP/Onvif视频安防监控平台EasyNVR调用接口返回匿名用户名和密码的原因排查

视频安防监控平台EasyNVR可支持设备通过RTSP/Onvif协议接入,并能对接入的视频流进行处理与多端分发,包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等多种格式。平台拓展性强、支持二次开发与集成,可应用在景区、校园、水利、社区、工地等场…

【小程序】常用方法、知识点汇总1

欢迎来到《小5讲堂》 这是《小程序》系列文章,每篇文章将以博主理解的角度展开讲解, 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 前言请求超时Markdown解析逐行显示效果文本变动事件转发…

Python 设计一个监督自己的软件2

们可以为这个日常任务记录和评分系统添加更多功能,使其更加丰富和实用。以下是一些可以考虑的功能: 用户登录和个人资料管理自定义任务和权重每日、每周、每月的任务统计和可视化任务提醒和待办事项列表成就系统和奖励机制社交分享和好友竞争 下面我们来逐步实现这些功能: 用…

【Linux的进程篇章 - 环境变量的理解】

Linux学习笔记---007 Linux之进程优先级、环境变量以及地址空间的理解1、进程优先级1.1、什么是优先级?1.2、为什么要有优先级?1.3、Linux的优先级特点以及查看方式1.4、进程的几个特性 2、环境变量2.1、概念2.2、命令行参数2.2.1、什么是命令行参数&…

自定义类型—结构体

目录 1 . 结构体类型的声明 1.1 结构的声明 1.2 结构体变量的创建与初始化 1.3 结构体的特殊声明 1.4 结构体的自引用 2. 结构体内存对齐 2.1 对齐规则 2.2 为什么存在内存对齐 2.3 修改默认对齐数 3. 结构体传参 4.结构体实现位段 4.1 位段的内存分配 4.3 位段的…

强化学习MPC——(二)

本篇主要介绍马尔科夫决策(MDP)过程,在介绍MDP之前,还需要对MP,MRP过程进行分析。 什么是马尔科夫,说白了就是带遗忘性质,下一个状态S_t1仅与当前状态有关,而与之前的状态无关。 为…

【重磅消息】2024年中国质量协会正式发布六西格玛项目报告编制要求及撰写模板

2024年,中国质量协会正式发布六西格玛系列项目报告编制要求及撰写模板(以下简称模板),模板针对项目报告的项目简介、项目背景、项目选择、项目管理、项目实施、效果总结等几个部分的内容、格式以及撰写注意事项等方面作了详细要求…

Android11 以太网修改静态IP后需要网线插拔一下才能上网

mtk6771 Android11 以太网修改静态IP后需要网线插拔一下才能上网_mtk 11 增加以太网动态/静态ip设置-CSDN博客 [RK3399/RK3328][Android10.0]Ethernet:以太网设置静态ip,重启后无法获取IP的问题「建议收藏」-腾讯云开发者社区-腾讯云 (tencent.com)

【前端捉鬼记】使用nvm切换node版本后再用node -v查看仍然是原来的版本

今天遇到一个诡异的问题,使用nvm切换node版本,明明提示已经切换成功,可是再次查看node版本还是之前的! 尝试了很多办法,比如重新打开一个cmd窗口、切换前执行nvm install version都没成功,直到找到这篇文章…

New Phytologist | 丛枝菌根真菌介导的土壤有机质动态过程的新概念框架

8月2日,中国科学院生态环境研究中心陈保冬团队等合作在著名期刊New Phytologist上发表题为"Soil organic matter dynamics mediated by arbuscular mycorrhizal fungi – an updated conceptual framework"的观点类文章,详述了丛枝菌根真菌介导…

App 测试必备 - 建议所有测试人收藏

移动端App性能测试需要关注多个方面,包括响应时间、稳定性、内存使用、CPU使用率、网络性能、电池消耗以及设备兼容性等。通过综合考虑这些方面,并在不同条件下进行全面的测试,可以确保应用程序在各种情况下都能够提供优质的用户体验&#xf…

QGIS操作:制作速率专题图

1、修改配色色带 双击打开的矢量文件,弹出如下图所示的图层属性界面,如下图所示; 点击左侧 符号化,选择色带的变化方式、符号、颜色渐变等方式; 设置每个色带所表示的数值范围,变化模式等内容&#xff1…

如何在Java中实现多维数组?

目录 1. 多维数组的基础 2. 多维数组的初始化 3. 多维数组的访问 4. 更高维度的数组 5. 多维数组的应用场景 总结 Java中实现多维数组的方法多样,涵盖了从基础的二维数组到更复杂的多维数组动态初始化等。 1. 多维数组的基础 在Java中,多维数组实…