【MYSQL表的增删改查(进阶)】

MYSQL表的增删改查(进阶)

  • 一、新增
  • 二、查询
      • 2.1 聚合查询
        • 2.1.1 聚合函数
            • count()
            • sum()
            • AVG()
            • MAX(),MIN()
            • GROUP_CONCAT()
        • 2.1.2 GROUP BY 子句
        • 2.1.3 HAVING 子句
      • 2.2 联合查询
        • 2.2.1 内连接
        • 2.2.2 外连接
            • 左外连接:
            • 右外连接:
        • 2.2.3 自连接
        • 2.2.4 子查询
            • 单行查询:返回一行子查询记录
            • 多行查询:返回多行记录的子查询
            • **关键字:[NOT]EXISTS**
            • from子句使用子查询生成临时表
        • 2.2.5 合并查询
            • UNION
            • UNION ALL

此篇博客希望对你有所帮助,不懂的或有错误的也可在评论区留言,错误必评论必回!!!

一、新增

语法:

insert into 表名[(字段1,字段2,...)]select(字段1,字段2,...)from 表名;

示例:
创建一个student表(id, name, sex, age, email);
在这里插入图片描述
创建一个test表(id, name, sex, age, email);并且给student表中插入两组数据,通过新增,把student表中的数据复制到test表中。
在这里插入图片描述

二、查询

2.1 聚合查询

2.1.1 聚合函数

常见的有以下六种:
在这里插入图片描述

count()

count()用来统计表中的行数。

select count(*) from 表名;//推荐大家使用这种方式,这种写法是SQL标准中规定的
select count(常数) from 表名;//这种方式也可以统计出表中的行数

在这里插入图片描述
也可以指定某一列进行统计。

select count(列名) from 表名;

在这里插入图片描述
count(列名),如果说列中有NULL值,则不会被统计在内!、
在这里插入图片描述

sum()

sum(列名)求和,把查询结果中所有行中的指定列进行相加
注意:列中的数据类型必须是数值型,不能是日期或字符…。如果不是对非数值类型的列进行计算,会得到警告信息。

select sum(列名) from 表名;

在这里插入图片描述

1.之前我们提起过,NULL与任何值运行的结果都是NULL。但通过这里发现,sum()求和NULL 值不参与运算。
2.这里的结果是在一个临时表中,结果不受表中字段长度约束。

AVG()

对所有行的指定列进行平均值运算。
在这里插入图片描述

MAX(),MIN()

求所有行中指定列的最大值,最小值

查出数学的最大值和最小值:

在这里插入图片描述

同一列可以使用不同的聚合函数

在这里插入图片描述

不同的一列可以使用不同的聚合函数

在这里插入图片描述

GROUP_CONCAT()

将来自多个记录的列值连接成一个字符串结果。通常与GROUP BY语句一起使用,以将多个行的值合并为一个逗号分隔的字符串。
示例:这里创建了一个employees表,其中包含员工的 id、department_id 和 name。并且给employees表中存储四组数据。
在这里插入图片描述
我们想要获取每个部门中所有员工的名字列表,可以使用 GROUP_CONCAT() 如下:
在这里插入图片描述
如果我们还想要按名字排序,并改变分隔符为分号(;),我们可以这样做:
在这里插入图片描述
注意事项:

1.GROUP_CONCAT() 默认的结果长度受到 group_concat_max_len 系统变量的限制,其默认值是 1024。如果你预期会有大量的数据被合并,可能需要调整这个值。
2.如果你在一个没有 GROUP BY 语句和其他聚合函数的查询中仅使用 GROUP_CONCAT(),MySQL 可能会将整个结果集视为一个大的组,并尝试将所有行的相关列值连接成一个单一的字符串。这通常不是预期的行为,因为它可能会导致生成一个非常长的字符串,特别是当查询结果集很大时。

2.1.2 GROUP BY 子句

GROUP BY 子句:SELECT中使用GROUP BY 子句可以对指定列进行分组查询。然后,对于每个组,它会计算聚合函数的值。如果查询中没有指定聚合函数,但使用了 GROUP BY,则每个组将只返回一行,通常是分组列的值(尽管这取决于选择的列和数据库的具体实现)。

语法:

select 列名(分组的列名),聚合函数(列名)...from 表名 group by 列名(分组的列名),列名(分组的列名);

示例:假设我们有一个名为 sales 的表,包含列 year, product_id, 和 amount。
在这里插入图片描述

然后我们根据product_id进行分组,查看一下它的销售总额。
在这里插入图片描述
group by 后面可以跟order by子句
在这里插入图片描述

2.1.3 HAVING 子句

GROUP BY 子句进行分组之后,需要对分组结果进行条件过滤时,不能使用WHERE 语句,而需要使用HAVING;
示例:这里为了大家更方便简单观察到,这里我又插入了6组数据。
在这里插入图片描述
这里我们需要通过HAVING子句过滤掉销售量小于800的产品。
在这里插入图片描述

2.2 联合查询

联合查询(也称为联结查询或JOIN查询)是一种通过两个或多个表中的列之间的关系来查询、组合或合并表中的数据的方法。联合查询是SQL中一个非常强大的功能,它允许你根据需要在不同的表中检索相关信息。

联合查询是如何执行的?

1.取多张表的笛卡尔积。
在这里插入图片描述
举例:创建一张class表,包含列id,name;创建一张student表,包含列class_id,name,sex。
c
在这里插入图片描述

并且分别给两张表中插入数据!
生成笛卡尔积:
在这里插入图片描述

2.通过连接条件过滤掉无效数据

在这里插入图片描述
3.能通过指定列查询,来精简结果集
在这里插入图片描述

2.2.1 内连接

内连接(INNER JOIN)是SQL查询中使用的一种连接类型,用于返回两个或多个表中符合连接条件的记录。内连接仅返回那些在连接条件上有匹配的行。如果在一个表中有行在另一个表中没有匹配的连接条件,那么这些行就不会出现在查询结果中。

语法:

select 字段 from1 as 别名1 [inner] join 表名2 as 别名2 on 连接条件 and 其他条件;//标准的内连接写法
select 字段 from1 as 别名1 , 表名2 as 别名2 where 连接条件 and 其他条件;

示例:查询班级编号,班级名称,学生姓名
在这里插入图片描述
注意:当你使用别名时,那么select 后面的字段也必须是别名.字段名,否则则无法识别;

2.2.2 外连接

外连接分为左外连接和右外连接。如果联合查询,左侧的表完全显示我们就说是左外连接,右侧的表完全显示我们就说是右外连接。

语法:
左外连接:表1全显示

select 字段名 from 表名1 left join 表名2 on 连接条件;

右外连接:表2全显示

select 字段名 from 表名1 right join 表名2 on 连接条件;

示例:假设class表为表1,student表为表2。
在这里插入图片描述

左外连接:

在这里插入图片描述

右外连接:

在这里插入图片描述

外连接:通过right和left确认基准表,没有与基准表匹配的记录,用null填充。

2.2.3 自连接

自连接(Self-Join)是一种特殊的连接查询,它指的是表与其自身进行连接。自连接通常用于查询表中存在层次或递归关系的数据。

案例:查询比‘雨欣’数学成绩高的学生。
在这里插入图片描述

1.去笛卡尔积
在这里插入图片描述

2.观察结果集,确认条件
在这里插入图片描述
也可以用join on 语句进行自连接查询

 select * from score s1 join score s2 on s1.name='雨欣' and s1.math<s2.math;
2.2.4 子查询

子查询是指嵌入在其他sql语句中select语句,也叫嵌套查询。由于嵌套查询没有固定的限制,多层嵌套的效率是不可控的,所以谨慎使用。

在这里插入图片描述

单行查询:返回一行子查询记录

案例:查询数学成绩为69,语文成绩为66的学生的信息。
在这里插入图片描述

多行查询:返回多行记录的子查询

返回一个集合,使用关键字IN
在这里插入图片描述

关键字:[NOT]EXISTS
select * from where exists(select * from 表名);

解释:exists后面括号中的查询语句,如果有结果返回,则执行外层查询,如果返回值为空,则不执行外层查询。

在这里插入图片描述

from子句使用子查询生成临时表

在from子句中使用子查询:子查询语句出现from子句中,这里要用到数据查询的技巧,把一个子查询当成一个临时表来使用。

在这里插入图片描述

2.2.5 合并查询

合并查询通常指的是将多个查询的结果集合并成一个结果集。这可以通过 UNION 或 UNION ALL 操作符来实现。使用 UNION 或 UNION ALL 时,前后查询的结果集中,字段需要一致。

UNION

UNION 操作符用于合并两个或多个 SELECT 语句的结果集,并自动去除重复的记录,只保留唯一的记录。每个 SELECT语句必须拥有相同数量的列,且对应列的数据类型也必须兼容。

在单表中可以去用逻辑运算符去连接不同的查询条件;但多表中,就没办法用逻辑运算符,如果最终结果从多表中获取的,必须要用UNION来进行合并。
案例:自动去除结果集中的重复行!
在这里插入图片描述
列名不匹配,返回的结果值就是错误的,这种查询就是没有意义的!
在这里插入图片描述

UNION ALL

与 UNION 类似,UNION ALL 也用于合并两个或多个 SELECT 语句的结果集,但它会包含所有的重复记录。也就是说,它不会去除任何重复的行。这通常在你需要包含所有行,包括重复行时非常有用。

案例:不会去除结果集中的重复行!
在这里插入图片描述

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

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

相关文章

Elasticsearch集群的运维与管理

【1】安装启动ES 集群 &#xff08;1.1&#xff09;集群架构规划 OS  ES versionIpnode.nameRolecluster.namees basedirCentOS Linux release 7.8.2003 (Core)elasticsearch-7.14.1 192.168.175.132:9200 cluster&#xff1a;192.168.175.132:9301 node_1 node.mastertrue …

C++—string类接口与用法大总结(其中涉及STL基础)

目录 1.string类的本质 2.string类的构造 1.普通构造 2.功能型构造 1.拷贝构造功能型 2.带参构造功能型 3.其余构造 3.operator[] 4.迭代器&#xff08;iterator&#xff09; 1.概念 2.改变string对象本身 3.正向迭代器&#xff08;iterator&#xff09; 4.反向迭代…

BLE 协议之链路层

目录 一、前言二、状态和角色三、Air Interface Packets1、Preamble 字段2、Access Address 字段2.1 静态地址2.2 私有地址 3、PDU 字段3.1 Advertising Channel PDU3.1.1 Header 字段3.1.2 Payload 字段 3.2 Data Channel PDU3.2.1 Header 字段3.2.2 Payload 字段 4、CRC 字段…

YOLO交通目标识别数据集(红绿灯-汽车-自行车-卡车等)

YOLO交通目标识别 数据集 模型 ui界面 ✓图片数量15000&#xff0c;xml和txt标签都有&#xff1b; ✓class&#xff1a;biker&#xff0c;car&#xff0c;pedestrian&#xff0c;trafficLight&#xff0c;trafficLight-Green&#xff0c;trafficLight-GreenLeft&#xff0c; t…

OpenCV特征检测(3)计算图像中每个像素处的特征值和特征向量函数cornerEigenValsAndVecs()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 计算图像块的特征值和特征向量用于角点检测。 对于每一个像素 p &#xff0c;函数 cornerEigenValsAndVecs 考虑一个 blockSize blockSize 的邻…

Ferret-UI——于移动用户界面的多模态大规模语言模型

概述 论文地址&#xff1a;https://arxiv.org/abs/2404.05719 移动应用程序已成为我们日常生活中不可或缺的工具&#xff0c;涉及信息搜索、预订和娱乐等多个领域。我们通常会目测屏幕&#xff0c;然后根据自己的目的执行必要的操作。将这一过程自动化可以让用户更轻松地实现…

【秋招笔试-支持在线评测-试读版】9.19小米秋招(已改编)-三语言题解

&#x1f36d; 大家好这里是 春秋招笔试突围&#xff0c;一起备战大厂笔试 &#x1f4bb; ACM金牌团队&#x1f3c5;️ | 多次AK大厂笔试 &#xff5c; 大厂实习经历 ✨ 本系列打算持续跟新 春秋招笔试题 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; 和 手里的小花花…

阿贝云评测:免费虚拟主机和免费云服务器体验分享

最近我有幸体验了阿贝云提供的免费虚拟主机和免费云服务器&#xff0c;在这里分享一下我的使用体验。首先我想说的是&#xff0c;阿贝云的服务真的很不错。他们提供的免费虚拟主机性能稳定&#xff0c;速度快&#xff0c;对于刚开始建站的小伙伴来说是一个很好的选择。免费云服…

阿里发布史上最大规模开源全家桶!千问2.5系列发布

实话说&#xff0c;我一直没想明白阿里为什么会在大模型这个赛道&#xff0c;成为中国版的Meta。 扎克伯格被问及为什么要做开源大模型时说&#xff0c;“我们的商业模式并不是靠卖模型赚钱“。显然&#xff0c;Meta没有云平台产品&#xff0c;就算要卖模型赚钱&#xff0c;效…

前端vue-单选按钮的实现

要把name“sex”和value"男" 和 要把name“sex”和value"女"写上&#xff0c;然后在各自的标签内部写上v-model绑定属性。data中定义v-model的绑定值&#xff0c;后面的值是默认选中的男或者女性。

B站前端错误监控实践

前言 从23年开始&#xff0c;我们团队开始前端错误监控方向的开发。经历了一些列的迭代和发展&#xff0c;从监控SDK、上报、数据治理、看板集成、APM自研可视化初步完成了一条完整且适合B站前端监控。 截止目前(2024.08.01)&#xff0c;前端监控在B站85%以上的业务线&#xf…

Percona发布开源DBaaS平台;阿里云RDS发布全球多活数据库(GAD);Redshift支持自然语言生成SQL

重要更新 1. 云栖大会于本周四/五在杭州举行&#xff0c;周五上午云栖主论坛阿里云数据库负责人李飞飞将发表《从数据到智能&#xff1a;DataAI驱动的云原生数据库》演讲&#xff0c;另外&#xff0c;还有多场次的数据库专场&#xff0c;感兴趣的可以现场或在线观看&#xff1a…

前端vue-自己封装组件并使用三步走

在components下&#xff0c;创建.vue文件&#xff0c;里面正常写样式什么的&#xff0c;在需要引用的文件内先在script标签内引入在components下创建的组件&#xff0c;再导出处使用&#xff0c;再在templete标签内直接使用自己封装的组件。

SQL - 基础语法

SQL作为一种操作命令集, 以其丰富的功能受到业内人士的广泛欢迎, 成为提升数据库操作效率的保障。SQL Server数据库的应用&#xff0c;能够有效提升数据请求与返回的速度&#xff0c;有效应对复杂任务的处理&#xff0c;是提升工作效率的关键。 由于SQL Servers数据库管理系统…

【学术会议:中国杭州,机器学习和计算机应用面临的新的挑战问题和研究方向】第五届机器学习与计算机应用国际学术会议(ICMLCA 2024)

您的学术研究值得被更多人看到&#xff01; 在这里&#xff0c;我为您提供精准的会议推荐&#xff0c;包括水利土木工程、计算机科学、地球科学、机械自动化、材料与制造技术、经管金融、人文社科等主流学科相关领域的国际会议。快速的稿件录用和高效的检索服务将确保您的研究…

平价头戴式蓝牙耳机有哪些?四款公认平价性能超强品牌机型推荐

在追求高品质音乐体验的同时&#xff0c;许多消费者希望找到价格亲民的头戴式蓝牙耳机&#xff0c;市场上不乏性能卓越、价格实惠的产品&#xff0c;它们凭借出色的音质、舒适的佩戴体验和可靠的续航能力赢得了用户的青睐&#xff0c;那么在众多的头戴式蓝牙耳机内&#xff0c;…

Android 空气质量刻度

效果 attrs.xml <attr name"textSpace" format"dimension|reference" /><attr name"barSpace" format"dimension|reference" /><attr name"scaleHeight" format"dimension|reference" /><at…

在 Windows 上运行 Vue 项目时解决 ‘NODE_OPTIONS‘ 错误

在 Windows 上运行 Vue 项目时解决 ‘NODE_OPTIONS’ 错误 在 Windows 系统上启动 Vue 项目时&#xff0c;遭遇报错。具体报错信息如下&#xff1a; ‘NODE_OPTIONS‘ 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。这个错误通常意味着 Windows 系统无法识…

SimpleAISearch:C# + DuckDuckGo 实现简单的AI搜索

最近AI搜索很火爆&#xff0c;有Perplexity、秘塔AI、MindSearch、Perplexica、memfree、khoj等等。 在使用大语言模型的过程中&#xff0c;或许你也遇到了这种局限&#xff0c;就是无法获取网上最新的信息&#xff0c;导致回答的内容不是基于最新的信息&#xff0c;为了解决这…

企业微信redirect_uri 与配置的授权完成回调域名不一致

这有几个前提 你先排除下 1、第三方方应用的使用配置里&#xff0c;这一排域名&#xff0c;一定要和你的回调域名一致 2、官方的设置授权配置里》 https://developer.work.weixin.qq.com/document/path/90602 在你还没上线的第三方应用前&#xff01;&#xff01;&#xff0…