MySQL数据库(三)

news2024/11/26 2:30:59

前言

聚合查询、分组查询、联合查询是数据库知识中最重要的一部分,是将表的行与行之间进行运算。

784852ccb4d64958ac228cde40c72314.jpeg (1440×1080)

目录

前言

一、聚合查询

(一)聚合函数

1、count 

2、sum

3、avg

4、max

5、min

二、分组查询

(一)group by

(二)指定条件筛选

1、分组前筛选,使用where条件

2、分组后筛选,使用having条件

3、同时分组前和分组后筛选

三、联合查询(多表查询)

(一)内连接

(二)外连接

1、左外连接

2、右外连接

3、外连接多个表

(三)自连接

(四)子查询

(五)合并查询 union

四、新增和查询联合

结语


一、聚合查询

(一)聚合函数

函数与括号之间不能有空格

1、count 

查询到的数据的数量,null不会计入结果

select count(列名) from 表名;

同时,也可以使用全列查询:

select count(*) from 表名;

2、sum

查询到的数据的总和,null不会计入结果、不是数字没有意义,不能进行全列查询

select sum(列名) from 表名;

3、avg

查询到的数据的平均值,不是数字没有意义,不能进行全列查询

select avg(列名) from 表名;

4、max

查询到的数据的最大值,不是数字没有意义,不能进行全列查询

select max(列名) from 表名;

5、min

查询到的数据的最小值,不是数字没有意义,不能进行全列查询

select min(列名) from 表名;

二、分组查询

(一)group by

指定一个列,把列里面相同的值分为一组进行查询

列如:

 同时,select 指定的列,要么是带有聚合函数的要么是group by 指定的列不能是一个非聚合非group by 的列,否则查询结果无意义。

(二)指定条件筛选

1、分组前筛选,使用where条件

2、分组后筛选,使用having条件

3、同时分组前和分组后筛选

三、联合查询(多表查询)

联合查询是将多个表结合起来,列如有表emp、表staff,有如下信息:

 将该两个表进行笛卡尔积,得到:

 此时,列数是两个表的列数之和,行数是两个表的行数之积。

(一)内连接

select *from 表1,表2;

也可以在结合两表时,加一些条件限制表的内容:

select *from 表1,表2 where 条件;

也可以使用join on 表达式,列如:

select *from 表1 join 表2 on 条件;

针对多个表时:

select *from 表1 join 表2 on 条件 join 表3 on 条件;

(二)外连接

可查询数据不是一一对应的若干表,无数据时用null填充

1、左外连接

select *from 表1 left join 表2 on 条件;

以表1为准,表1中所有的数据体现出现

2、右外连接

select *from 表1 right join 表2 on 条件;

以表2为准,表2中所有的数据体现出现

3、外连接多个表

select *from 表1 left/right join 表2 on 条件 left/right join 表3 on 条件;

(三)自连接

自连接就是自己和自己连接,本质就是把行关系转为列关系

自连接需要指定表的别名!!

select *from 表1 as a,表2 as b;

(四)子查询

把多条查询语句合并成一条

列如:

(五)合并查询 union

把两条查询结果合并在一起

select *from 表名 where 条件1 union select *from 表名 where 条件2;

union all 不会去重;    union 会自动去重

四、新增和查询联合

把查询结果作为新增的数据

查询结果的数据类型必须和插入表的数据类型匹配(个数、类型)

insert into 表1(列名,列名..) select 列名,列名.. from 表2;

将表2中的数据复制到表1当中。

也可以写成:

insert into 表1 select *from 表2;

结语

SQL查询中各个关键字的执行先后顺序:

from > on > join > where > group by > with > having > select > distinct > order by > limit

这篇博客如果对你有帮助,给博主一个免费的点赞以示鼓励,欢迎各位🔎点赞👍评论收藏⭐,谢谢!!!

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

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

相关文章

Docker架构

目录 Docker总架构图Docker ClientDocker DaemonDocker ServerDocker EngineJob Docker RegistryGraphDriverGraphDriverNetworkDriverExecDriver LibcontainerDocker Container Docker可以帮助用户在容器内部快速自动化部署应用,并利用Linux内核特性命名空间&#…

微软将推出更多Edge特有功能,与Chrome展开竞争

微软在 2018 年宣布将推出基于 Chromium 构建的 Edge 浏览器,并于 2020 年 1 月推出了新版 Edge。如今时隔三年,根据统计 Edge 全平台的市场占有率仅为 4.23%,如果只考虑桌面端的话,Edge 的市场占有率则是 10.98%,这两…

系统设计蓝图 / 备忘单

开发一个强大、可扩展和高效的系统可能会令人望而却步。然而,了解关键概念和组件可以使这个过程更可管理。在本博客文章中,我们将探讨系统设计的关键概念和组件,如DNS、负载均衡、API网关等,以及一个简明的备忘单,可以…

inux运维面试题(二)之系统管理类面试题

Linux运维面试题(二)之系统管理类面试题 1.权限优化1.1 简述Linux权限划分原则文件基本权限默认权限特殊权限sudo授权文件系统属性权限 解答 2.备份策略2.1需要备份的内容备份策略备份频率备份存储位置 2.2网站服务器每天产生的日志数量较大,…

LLM - 读取 Lora 模型进行文本生成

目录 一.引言 二.Lora 模型文本生成 1.模型读取 1.1 AutoModelForCausalLM.from_pretrained 1.2 PeftModel.from_pretrained 2.文本生成 2.1 Tokenizer 2.2 model.generate 3.输出实践 三.总结 一.引言 前面介绍了使用 Baichuan7B 从样本生成到 Lora 模型微调和存储…

磁盘擦写次数计算

1.让机器能有外网 2,安装工具 sudo apt-get install smartmontools 3,输入查询命令 sudo smartctl -x /dev/sda |egrep Device Model|User Capacity|Sector Size|173|Logical Sectors Written|Percentage Used Endurance Indicator 4,计算擦写次数 计算方法:25…

hadoop启动无法启动datanode或者namenode

首先进入hadoop安装目录下例如: 再进入dfs目录下,没有出现在hdfs-site.xml配置的data或者name cd data/current vim VERSION 打开VERSION文件复制:clusterID下的内容 将内容复制到name中的VERSION。再进行重启Hadoop

常见的前端安全以及常规安全策略

1、CSRF:跨站请求伪造(Cross-site request forgery); 原理: (1) 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A; (2&#xff…

mapping文件目录生成修改

参考文章: gradle编译完成Copy mapping文件 - 简书 (jianshu.com) 第一步:在app的build.gradle中做如下配置: android {android.applicationVariants.all {variant ->def buildType variant.buildType.nametasks.all {def mappingDir …

米尔基于STM32MP135核心板,助力充电桩发展

随着电动车的普及和人们环保意识的增强,充电桩作为电动车充电设备的重要一环,充电桩行业正迅速发展,消费市场的大量应用也造就市场的需求量不断增长。因此,产品的功能、可靠性、安全性等要求也变得尤为重要,而采用传统…

Leetcode---353周赛

周赛题目 2769. 找出最大的可达成数字 2770. 达到末尾下标所需的最大跳跃次数 2771. 构造最长非递减子数组 2772. 使数组中的所有元素都等于零 一、找出最大的可达成数字 这题就是简单的不能在简单的简单题, 题目意思是:给你一个数num和操作数t&…

智能分析网关V2有抓拍告警但无法推送到EasyCVR,是什么原因?

我们在此前的文章中也介绍了关于智能分析网关V2接入EasyCVR平台的操作步骤,感兴趣的用户可以查看这篇文章:在EasyCVR新版本v3.3中,如何正确接入智能分析网关V2? 智能分析网关V2是基于边缘AI计算技术,可对前端摄像头采…

机器学习 day27(反向传播)

导数 函数在某点的导数为该点处的斜率,用height / width表示,可以看作当w增加ε,J(w,b)增加k倍的ε,则k为该点的导数 反向传播 tensorflow使用反向传播来自动计算神经网络模型中的导数

中国区域地面气象要素驱动数据集(1979-2018)

中国区域地面气象要素驱动数据集(1979-2018) 摘要 中国区域地面气象要素驱动数据集,包括近地面气温、近地面气压、近地面空气比湿、近地面全风速、地面向下短波辐射、地面向下长波辐射、地面降水率共7个要素。数据为NETCDF格式,时…

Redis_非关系型数据库

一、 Redis介绍 1.NoSQL 也叫Not Only SQL(不仅仅是SQL, 不用 sql语言操作的数据库), 一般指非关系型数据库 关系型数据库: 以数据库表为单位存储,表与表之间存在某种关系 非关系型数据库: 数据与数据之间没有关系, 数据就是以键值对的形式存储, 通过键获取到值 在互联网发展中…

cjson的内存泄漏案例

1、当我们使用下面这些创建json对象时,需要用cJSON_Delete();释放,(当然,释放父JSON对象后,子JSON对象也会被释放) 2、多次释放同一内存空间 在recv_write_property函数中的data,在Equipment_re…

Unity游戏源码分享-Unity5.4.1打砖块游戏Breakout_Game_Starter_Kit

Unity5.4.1打砖块游戏Breakout_Game_Starter_Kit 童年的回忆 项目地址:https://download.csdn.net/download/Highning0007/88042779Unity游戏源码分享-

ViDeNN: Deep Blind Video Denoising

ViDeNN: Deep Blind Video Denoising 摘要 We propose ViDeNN: a CNN for Video Denoising without prior knowledge on the noise distribution (blind denoising). The CNN architecture uses a combination of spatial and temporal filtering, learning to spatially deno…

【Java 泛型方法】泛型方法的定义和使用,泛型的通配符和泛型的上下限,泛型的注意事项

博主&#xff1a;_LJaXi Or 東方幻想郷 专栏&#xff1a; Java | 从跨平台到跨行业 开发工具&#xff1a;IntelliJ IDEA Java 泛型方法 泛型方法 ❓需求| 泛型的通配符 | 上限 | 下限 |泛型擦除 ⛔基本数据类型问题 泛型方法 ❓ [修饰符] <类型变量, 类型变量...> [返回…

内容过多,超出部分以省略号“...”显示

效果图如图所示&#xff1a; 1.第一种实现方法&#xff0c;使用纯css实现&#xff08;ps&#xff1a;此方式必须给元素设置宽度&#xff0c;否则可能无效果&#xff09;&#xff0c;代码如下&#xff1a; html代码 <!-- 超过长度&#xff0c;用省略号实现&#xff0c;css的…