MySql操作进阶

news2024/9/17 8:36:28

目录

1.多表联查

1.1内连接

1.2左连接和右连接

1.3自连接

2.子查询

3.合并查询

1.多表联查

多表联查实际上就是对多张表中的数据合并在一起进行查询,具体合并多张表中的数据方式为:取笛卡尔积的方式进行合并。

但仅是以笛卡尔积的方式合并表较为单薄,且很多时候无法做更进一步操作,例如对两个较大表合并后的结果进行查询。这些情况是我们不愿意看到的,因此对于多表联合的方式,我们存在内连接,左连接和右连接,以及全连接的方式。

1.1内连接

内连接的关键字是inner join,用于返回两个表中匹配的行。只有在连接条件成立的情况下,才会返回数据;若是连接无法建立,则会直接丢弃这些数据。

我们先创建两张表格t1和t2,并向里面插入数据据内容,效果如下:

 

然后使用内连接将二者连接,得到结果如下:

我们会发现只有但二者id相同时,才会将其连接在一起,这也正是内连接的具体效果。

1.2左连接和右连接

左连接的关键字是left join,用于返回左表中的所有行,并返回右表中匹配的行。如果没有匹配的行,右表中的列将包含NULL值。

左表作为基表,会将左表中的内容全部包含,然后合并和右表相同的内容,若不存在则填充NULL内容。

右连接的关键字是right join,作用与左连接相反,用于返回右表中的所有行,并返回左表中匹配的行。如果没有匹配的行,左表中的列将包含NULL值。

右连接则是相反。因为左右连接具有相反的特性,所以我们将其统称为外连接。

1.3自连接

自连接是一种特殊的SQL查询技术,用于将同一张表中的不同行进行关联。自连接通常用于解决与同一表中的数据相关的查询问。自连接一般是用的连接方式是内连接,也就是使用inner join关键字将自己和自己重新连接。

具体的自连接效果如下:

自连接会将本身内容进行复用,其中需要注意的内容是:在使用自连接过程中,必须对同一张表使用as关键字起别名,这样才可以在实现自连接。因为从本质上而言,连接仍是两表及以上的操作,所以需要以起别名的方式来将一张表当作两张表来看待。

2.子查询

在MySQL当中,子查询是指select嵌套使用的情况,具体作用是一个sql语句的查询过滤条件,是基于另一条查询语句的结果进行的。

我们给出实例,查询“不想毕业”同学的同班同学,其具体的sql语句应如下:

select * from student where class_id=(select id from student where name='不想毕业');

先查询到不想毕业同学的具体学号id结果,再将其作为过滤条件,查询得到存在该id的班级同学内容。 

不过,需要注意的是,当子查询语句只有一条结果的时候,可以使用=进行判定,将结果当作条件来进行使用。但如果子查询结果具有多个的时候,则需要使用in(exists)来进行集合判断,判断指定字段是否在集合中。

3.合并查询

合并查询实际上是将两条语句的查询结果合并到一起进行返回,并且要求两条语句的查询结果字段需要保持一致,才可以进行合并。

MySQL的合并查询包括UNION、UNION ALL、INTERSECT和EXCEPT(或MINUS)这四个操作符。

UNION:将两个或多个SELECT语句的结果集合并成一个结果集,去除重复的行。

例如:

SELECT name FROM customers WHERE city = 'New York'
UNION
SELECT name FROM customers WHERE city = 'Los Angeles'

这个查询将返回城市为“New York”或“Los Angeles”的客户名字列表,去除重复的行。

UNION ALL:将两个或多个SELECT语句的结果集合并成一个结果集,不去除重复的行。

例如:

SELECT name FROM customers WHERE city = 'New York'
UNION ALL
SELECT name FROM customers WHERE city = 'Los Angeles'

这个查询将返回城市为“New York”或“Los Angeles”的客户名字列表,不去除重复的行。

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

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

相关文章

网络安全进阶学习第九课——SQL注入介绍

文章目录 一、什么是注入二、什么是SQL注入三、SQL注入产生的原因四、SQL注入的危害五、SQL注入在渗透中的利用1、绕过登录验证:使用万能密码登录网站后台等。2、获取敏感数据3、文件系统操作4、注册表操作5、执行系统命令 六、如何挖掘SQL注入1、SQL注入漏洞分类按…

无涯教程-Lua - Arrays(数组)

数组是对象的有序排列,可以是包含行集合的一维数组,也可以是包含多行和多列的多维数组。 在Lua中,数组是使用带有整数的索引表实现的。数组的大小不是固定的,并且可以根据无涯教程的要求(取决于内存限制)来增长。 一维数组 一维…

WEB应用程序数据库防守篇之预防SQL漏洞注入

前言: 国内目前几乎市面上所有的web应用程序都使用关系型数据库来存储用户的数据信息,可以这么说,数据库是一个项目,一个互联网公司乃至国家最重要的数据中心。如果数据库被入侵成功,所引发的后果将是灾难性,无法想象…

JavaSE 【类和对象】(3)(重点:代码块、对象的打印)

目录 一、代码块 1.静态代码块 2.构造代码块/实例代码块 3.总结 代码块执行的顺序: 1.静态代码块 2.构造代码块(实例代码块) 3.执行对应的构造方法 其中:静态的只执行一次 二、 对象的打印 有一个快速打印的方法&#x…

scrapy框架简单实现豆瓣评分爬取案例

豆瓣网址:https://movie.douban.com/top250 1.创建scrapy框架 scrapy startproject 项目名(scrapy_test_one)创建好以后的目录是这样的 2.创建spider文件 在spiders目录下创建一个spider_one.py文件,可以随意命名,该文件主要是让我们进行数…

MaxPatrol SIEM 增加了一套检测供应链攻击的专业技术

我们为 MaxPatrol SIEM 信息安全事件监控系统增加了一套新的专业技术。 该产品可帮助企业防范与供应链攻击相关的威胁。 此类攻击正成为攻击者的首要目标:它们以软件开发商和供应商为目标,网络犯罪分子通过他们的产品进入最终目标的基础设施。 因此&a…

【数据结构】——线性表的相关习题

目录 题型一(顺序表的存储结构)题型二(链表的判空)题型三(单链表的建立)题型四(顺序表、单链表的插入删除) 题型一(顺序表的存储结构) 1、线性表的顺序存储结…

Framework开发的热度从未下降~

近几日,统计局也发布了就业相关数据,全国失业青年达600多万,面对此数据,我们能想到的是实际的失业人数肯定会比公布的数据要多很多,尤其是表示 “一周工作一小时以上” 也纳入了就业范围。 反观有一批Android开发在如此…

JavaWeb之HTML基础篇(一)

系列文章目录 HTML基础篇(一) 文章目录 系列文章目录HTML基础篇(一)[TOC](文章目录) 前言一、HTML简介1.1介绍1.2HTML文件的书写规范1.3 HTML标签介绍1.4 HTML常见的标签 二、CSS的简介2.1css技术介绍2.2 CSS与HTML结合的三种方式…

org.springframework.beans.factory.aot.BeanRegistrationExcludeFilter-若依二开报错(已解决)

阿丹-问题描述: 今天在复制已经拆解过后的若依system模块删除掉中间的一些东西之后,出现了一个问题。已启动就报错。报错截图如下。 问题解析: 身边不少二开若依的小伙伴都遇到了这个问题。 这个异常是因为在启动应用程序时,Sprin…

杜教筛的小结

总所周知,杜教筛是一个可以快速求积性函数前缀和的工具,为了快速理解杜教筛,自己给自己写了一个文章快速理解。 它可以在O(n2/3)的复杂度快速求出某个积性函数的前缀和。 例如,我们想要知道 f f f函数的前缀和,我们可…

selenium官网文档阅读总结(day 2)

1.selenium元素定位方法 1.1selenium命令 当我们使用chormdriver打开网页后,接下来就要用python操作元素,模拟用户会作出的操作,这些操作元素的方法就是命令。比如 (1) click:点击(按钮,单选框&#xff…

STM32(HAL)多串口进行重定向(printf函数发送数据)

目录 1、简介 2.1 基础配置 2.1.1 SYS配置 2.1.2 RCC配置 2.2 串口外设配置 2.3 项目生成 3、KEIL端程序整合 4、效果测试 1、简介 在HAL库中,常用的printf函数是无法使用的。本文通过重映射实现在HAL库多个串口可进行类似printf函数的操作。 2.1 基础配置 2.…

《向量数据库指南》——腾讯云向量数据库Tencent Cloud Vector DB正式上线公测!提供10亿级向量检索能力

8月1日,腾讯云向量数据库(Tencent Cloud Vector DB)已正式上线公测。在腾讯云官网上搜索“向量数据库”,就可以正式体验该产品。 腾讯云向量数据库不仅能为大模型提供外部知识库,提高大模型回答的准确性,还可广泛应用于推荐系统、文本图像检索、自然语言处理等 AI 领域。…

【ARM Coresight 系列文章 2.3 - Coresight 寄存器】

文章目录 Coresight 寄存器介绍1.1 ITCTRL,integration mode control register1.2 CLAIM寄存器1.3 DEVAFF(Device Affinity Registers)1.4 LSR and LAR1.5 AUTHSTATUS(Authentication Status Register) Coresight 寄存器介绍 Coresight 对于每个 coresight 组件&am…

Python 进阶(七):高级文件操作(shutil 模块)

❤️ 博客主页:水滴技术 🌸 订阅专栏:Python 入门核心技术 🚀 支持水滴:点赞👍 收藏⭐ 留言💬 文章目录 1. 简介2. 常用函数2.1 复制文件2.2 复制目录2.3 移动文件或目录2.4 删除文件或目录2.…

【C++】STL——list的模拟实现、构造函数、迭代器类的实现、运算符重载、增删查改

文章目录 1.模拟实现list1.1构造函数1.2迭代器类的实现1.3运算符重载1.4增删查改 1.模拟实现list list使用文章 1.1构造函数 析构函数 在定义了一个类模板list时。我们让该类模板包含了一个内部结构体_list_node,用于表示链表的节点。该结构体包含了指向前一个节点…

构建容错软件系统的艺术

现在,我们生活在由软件系统推动的世界中。这些系统深入到我们日常生活的各个方面,其连续、可靠的性能不再是奢侈,而是必需。现在,企业比以往任何时候都更需要保证他们的系统可用、可靠,并具有弹性。这种需求由满足客户…

使用Freemarker模版导出xls文件使用excel打开提示文件损坏

本文是通过一步步的还原事件的发生并解决的一个过程记录,如果想知道如何解决的可以直接跳转文章末尾结论部分 提示一下,关注一下 Table 标签中的 ss:ExpandedRowCount 属性 解决的问题 在项目中使用freemarker的xml模板导出xls格式的Excel文件时&#xf…

哪些行业需要连接云专线?

在诸多行业之中,有一些行业对数据安全性要求高、业务需要实时性、业务需求复杂,往往需要建立起私密、高速、安全的传输通道,云专线是他们经常采用的方案。具体来讲,都有哪些行业需要连接云专线呢?请见下方。 1、金融行…