首页 > 数据库 >mysql笔记8(多表查询)

mysql笔记8(多表查询)

时间:2024-09-15 14:20:20浏览次数:10  
标签:join 公共 natural 笔记 查询 mysql 多表 连接 字段名

文章目录

1. union联合查询

① 联合查询:用union把两个查询语句结合在一起
② 两个查询语句,字段及其数据类型一不一样无所谓,但是字段个数必须一致

在这里插入图片描述

可能会用到去重操作

如果两张表查询的字段名一样,可能会用到distinct去重操作(但是从下面的结果来看,union联合好像自动去重了)
在这里插入图片描述
在这里插入图片描述

2. inner join 内连接

select 字段名,字段名 from 主表 inner join 从表 inner join 从表 on 主表.公共字段=从表.公共字段=从表.公共字段
作用:联合查询
注意:一定要确认主从关系、建立公共字段。可以不使用外键
举例理解(score里的stuId来自student表里id):
在这里插入图片描述
在这里插入图片描述
(上述score表里没有jerry的成绩(ta缺考了),所以联合查询的结果也没ta)
在这里插入图片描述
(三张表联合查询)

3. left join 左连接

以左表为基准
怎么理解?
在这里插入图片描述
在这里插入图片描述
以左边为基准,就算右边那张表里没有2号学生的信息,查询结果依然显示2号学生

4. right join 右连接

以右表为基准
怎么理解?
在这里插入图片描述
在这里插入图片描述
以右边为基准,就算左边那张表里没有学号为12的学生信息,查询结果依然显示12号学生

5. cross join 交叉连接

select 字段名 from 表名 cross 表名;
默认返回一个笛卡尔积
在这里插入图片描述
加上where 表名.公共字段=表名.公共字段后,返回值类似于内连接
在这里插入图片描述

6. natural join 自然连接

① natural join其实默认是自然内连接,根据同名字段连接两张表。
② 好处:不用写两边公共的字段名,但是必须保证两边公共字段名一致
在这里插入图片描述

natural left join 自然左连接

在这里插入图片描述

natural right join 自然右连接

在这里插入图片描述

自然连接的两张表没有同名字段怎么办?

返回笛卡尔积
在这里插入图片描述

7. using 当两张表字段名都相同时,指定连接字段

情境:t1和t3有两个公共字段 id 和 name,这两张表自然连接会产生什么结果?-- 返回一张空表
在这里插入图片描述
怎么办?
在这里插入图片描述

8. 哪个连接实用?

        出于对代码可读性的考虑,基本不会用到自然连接和using

9. 内容出处

mysql

标签:join,公共,natural,笔记,查询,mysql,多表,连接,字段名
From: https://blog.csdn.net/m0_62024160/article/details/142219198

相关文章

  • CMake构建学习笔记16-使用VS进行CMake项目的开发D4
    目录*1.概论2.详论2.1创建工程2.2加载工程2.3配置文件:飞数机场2.4工程配置2.5调试执行3.项目案例4.总结1.概论在之前的系列博文中,我们学习了如何构建第三方的依赖库,也学习了如何去组建自己的CMake项目,尤其是学习了CMake的核心配置文件CMakeLists.txt如......
  • 学习笔记——MMSR 自适应多模态融合的序列推荐
    AdaptiveMulti-ModalitiesFusioninSequentialRecommendation Systems前几天当我在阅读这篇论文的时候,在网上找到的相关资料很少,所以当时我读这篇论文的时候特别痛苦,精读了两天半.....所以现在我将自己学习笔记分享出来,给后面需要的小伙伴借鉴借鉴。我目前也是处于学习的......
  • Mysql 面试题总结
    1.Mysql数据库,隔离级别有哪几个?在MySQL数据库中,事务的隔离级别决定了一个事务在执行期间对其他事务可见的数据变化情况。MySQL支持SQL标准定义的四种隔离级别,从低到高依次为:读未提交(READUNCOMMITTED)在该隔离级别下,事务中的修改即使没有提交,对其他事务也是可见的。......
  • 如何解决MySQL + 字段锁表问题|如何优化MySQL DDL操作以减少锁表时间|深入理解MySQL的On
    在日常的数据库操作中,MySQL数据库的表结构修改是不可避免的操作之一。例如,添加新字段是常见的需求之一。然而,在生产环境中对表结构进行更改时,特别是在大数据量的表中,容易出现锁表问题,导致业务系统的性能下降甚至完全卡顿。MySQL在进行表结构修改时会加表级锁,从而影响到其他的查询和......
  • WordBN字远笔记!更新1.2.2版本|Markdown编辑器新增高亮功能,界面新增深色模式
    WordBN字远笔记1.2.2版本更新描述WordBN字远笔记在1.2.2版本中进行了多项重要的更新与改进,旨在提升用户的编辑体验和视觉舒适度。以下是本次更新的两大亮点:Markdown编辑器新增高亮功能以及界面新增深色模式。1.Markdown编辑器新增高亮功能在1.2.2版本中,WordBN字远笔记的M......
  • 线性代数笔记1
    一.行列式1.行列式定义\(\left|\begin{matrix}a_{11}&a_{12}&...&a_{1n}\\a_{21}&a_{22}&...&a_{2n}\\...&...&...&...\\a_{n1}&a_{n2}&...&a_{nn}\end{matrix}\right|\)将此称为\(n\)阶行列式设\......
  • MySQL索引
    2.1索引概述2.1.1介绍索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。在无索引情况下,就需要从第一......
  • GitLab CI_CD 从入门到实战笔记
    第1章认识GitLabCI/CD1.3GitLabCI/CD的几个基本概念GitLabCI/CD由以下两部分构成。(1)运行流水线的环境。它是由GitLabRunner提供的,这是一个由GitLab开发的开源软件包,要搭建GitLabCI/CD就必须安装它,因为它是流水线的运行环境。(2)定义流水线内容的.gitlab-ci.yml文......
  • Mysql高级篇(中)—— 索引优化
    Mysql高级篇(中)——索引优化一、索引分析案例案例1:单表查询案例2:两表连接查询案例3:三表连接查询二、避免索引失效常见索引失效场景简述场景1场景2场景3场景4场景5场景6三、索引优化文字版示例版一、索引分析案例使用EXPLAIN分析SQL查询性能是数据......
  • Can't connect to local MySQL server through socket
    mysql-urootERROR2002(HY000):Can'tconnecttolocalMySQLserverthroughsocket'/tmp/mysql.sock'(2)这是mysql登录时找不到套接字的问题。首先需要明白的是,Linux端的mysqlserver启动时会开启一个socket,Linux上的MySQL的客户端在不使用IP连接时mysqlserver时,默认......