MySQL数据操作与查询- 连接查询

数据库基础-12-多表查询(内连接、外连接、自连接、联合查询、子查询) 指的是两个表之间的一种特殊连接方式,即将一个表的每条记录与另一个表的每条记录进行组合,得到的所有组合构成的新表。新表的行数为第一个表的行数乘以第二个表的行数,因此,当两个表的数据量较大时,笛卡尔积会产生非常多的组合结果,从而影响查询效率和性能。(在多表查询时,需要消除无效的笛卡尔积)。上面的 SQL 语句将会从 student 表中取得所有的学生记录,同时从 course 表中取得所有的课程记录,然后将这两个结果集进行组合,生成一个新表,其中包含每位学生选修的所有课程的组合结果。 阅读详情
一、引入
1、为什么需要使用连接查询?
查询信息的来源如果来自多张表,则必须对这些表进行连接查询。
2、连接查询的分类
内连接和外连接。
二、内连接
1、概述
将两张表的记录组合在一起,产生一个新的结果。
(1)具体实现:将表1的每一行和表2的每一行进行比较,找出满足条件的组合。
(2)分类:交叉连接(笛卡尔积)、相等连接、自然连接。
2、交叉连接(笛卡尔积)
返回两张表所有的组合情况。
语法:
1 select 字段列表 from 表1,表2
【实例】求出学生表和课程表的笛卡尔积。
【解答】
1 select * from student,course
【说明】
学生表有4条记录,课程表有6条记录,所有的组合方式共有4*6=24种。
3、相等连接
返回满足条件的组合情况。
语法:
1 select 字段列表
2 from 表名1
3 [inner] join 表名2 on 表名1.字段名1=表名2.字段名2
4 where 条件表达式
【说明】
inner可以省略不写。
【实例】查询得到学生的所有成绩。
【解答】
1 select *
2 from student
3 inner join score on student.student_id=score.student_id
【实例】查询得到课程的所有成绩,显示的内容包括:课程号、课程名、成绩
【解答】
1 select c.course_id 课程号,
2 name as 课程名,
3 score 成绩
4 from course c ‐‐ 给course表取个别名c
5 join score sc on c.course_id=sc.course_id
4、自然连接
实现过程:将两张表的所有名称相同的列都将被比较,并且在结果集中把重复的列去掉, 结果集
中两张表中名称相同的列仅出现一次。而普通的内连接并不去掉重复的列。
语法:
1 select 字段列表 from 表名1 natural join 表名2
【实例】使用自然连接将学生表和成绩表连接起来。
【解答】
1 select * from student natural join score
5、三表连接查询
语法:
1 select 字段列表
2 from 表名1
3 join 表名2 on 表名1.字段名1=表名2.字段名2
4 join 表名3 on 表名2.字段名3=表名3.字段名4
5 where 条件表达式
【实例】查询得到每位学生各门课程的成绩。显示内容包括:学号、姓名、课程名、成
绩。
【解答】
1 select s.student_id 学号,
2 s.name 姓名,
3 c.name 课程名,
4 score 成绩
5 from student s
6 join score sc on s.student_id=sc.student_id
7 join course c on c.course_id=sc.course_id
【实例】查询得到修读了“HTML5网页设计”的所有学生信息,显示内容包括:学号、姓
名。
【解答】
1 select s.student_id 学号,
2 s.name 姓名
3 from student s
4 join score sc on s.student_id=sc.student_id
5 join course c on c.course_id=sc.course_id
6 where c.name='HTML5网页设计'
三、外连接
在内连接查询中,只有满足连接条件的记录才能出现在查询结果中。如果希望不满足连接条件
的记录也在查询结果中出现,这时需要使用外连接查询。
分类:左连接和右连接。
1、左外连接(left join)
结果集包括左表的所有记录和右表中满足连接条件的记录,结果集中那些不符合连接条件的来源于
右表的列值为 null。
1 select 字段列表
2 from 表名1
3 left join 表名2 on 表名1.字段名1=表名2.字段名2
【实例】使用“左外连接”查询得到学生的所有成绩。
【解答】
1 select *
2 from student s
3 left join score sc on s.student_id=sc.student_id
2、右外连接(right join)
结果集包括右表的所有记录和左表中满足连接条件的记录,结果集中那些不符合连接条件的来源于
左表的列值为 null。
1 select 字段列表
2 from 表名1
3 right join 表名2 on 表名1.字段名1=表名2.字段名2
【实例】使用“右外连接”查询得到课程的所有成绩。
【解答】
1 select *
2 from score sc
3 right join course c on c.course_id=sc.course_id

 

Mysql数据库内联查询、左连接查询、右连接查询、自连接查询介绍,库和表的相关练习 一.内联查询 1.inner join:只查询键值一致(交叉)的部分 2.演示 二.左连接 1.left join:以左表为标准,查询输出左表中没有的字段信息 2.演示 三.右连接 1.rightjoin:以右表为标准,查询输出右表中没有的字段信息 2.演示 四.自连接 将一张表通过别名虚拟为两张表,查询比较其中的不同字段 五.练习 1.新建/删除库和字段 2.单/多表查询 阅读详情

相关推荐

【PLL】分频器设计权衡:从CMOS到CML的电路实现与优化

本文深入探讨了PLL中分频器的设计权衡,比较了CMOS和CML两种电路实现的优缺点。通过实际案例分析,展示了如何在速度、功耗和噪声之间取得平衡,特别是在5G射频芯片和Wi-Fi 6E等高频应用中的优化实践。文章还提供了混合架构设计和电源噪声协同优化的实用技巧,适合电路设计工程师参考。

weixin_42521843的博客 442

【数据库的连接查询】

连接查询是SQL中常见的一种查询语句,它可以将两个或多个表中的数据关联在一起并返回一个结果集。连接查询分为内连接、外连接和交叉连接。内连接:内连接指的是连接两个表中共有的数据,即在两个表中都存在的数据才能被查询出来。外连接:外连接指的是连接两个表中不完全重叠的数据,即在一个表中存在的数据在另一个表中不存在,或者在两个表中都存在但是某些字段的值不一样的数据。交叉连接:交叉连接又称笛卡尔积,它返回两个表的所有可能组合。这种连接方式使用较少,因为它通常会返回过多的结果,占用过多的计算资源。

weixin_44794485的博客 4494

九齐NY8B062F单片机:12位ADC与4路PWM在智能家居控制中的实战应用

本文详细介绍了九齐NY8B062F单片机在智能家居控制中的实战应用,重点解析其12位ADC高精度传感器数据采集和4路PWM精准驱动技术。通过实际案例展示如何利用该单片机实现温湿度监测、灯光调节及电机控制,并分享低功耗设计与抗干扰方案,为低成本高可靠性的智能家居设备开发提供完整解决方案。

rnn9storyteller的博客 730

数据库-连接查询

数据库连接查询可以进行多表联查,可以同时展示多个表的数据,方便进行查阅。那么连接查询分为多种方式,我们可以根据要求筛选合适的方式进行查询。下面我们来讲解一下怎么进行多表联查。 首先连接查询大致分为3种形式,分别为: 内连接,外连接,交叉连接 1、表格数据 2、详解 (1)内连接 内连接,找的是两个表里共有数据,关键字是inner join on,inner join连接两个表,on是连接字段,如下所示,这两张表分别为b1表,b2表。 b1:(学号,年龄) b2:(学号,成绩) 通过上边这俩表可

qq_39568217的博客 1万+

Cadence OrCAD常见引脚错误排查指南:从原理图到封装的完整解决方案

本文详细解析Cadence OrCAD设计中常见的引脚错误问题,提供从原理图到封装的系统化解决方案。涵盖错误诊断、元件库修复、封装管理及自动化处理技巧,帮助工程师高效解决ORCAP-36022等典型错误,确保设计流程顺畅。

weixin_29294975的博客 255

AI 代码生成工具的质量评估体系

基础需求层包括响应速度(Response Time)和界面友好性(UI Friendliness),期望需求层涵盖智能提示(Smart Suggestions)和个性化配置(Personalization),兴奋需求层则涉及多模态交互(Multimodal Interaction)和代码进化(Code Evolution)。在金融领域,代码审计合规性(Compliance Audit)权重应提升至40%,而在Web开发中,API兼容性(API Compatibility)的权重需达到35%。

2503_92418637的博客 3372

MySQL(八)—— 连接查询

8. 连接查询8.1 distinct8.2 什么是连接查询8.3 连接查询的分类8.4 笛卡尔积现象8.5 内连接8.5.1 等值连接8.5.2 非等值连接8.5.3 自连接8.6 外连接8.6.1 右外连接8.6.2 左外连接8.7 三张表、四张表怎么连接 8. 连接查询 8.1 distinct   distinct:把查询结果去除重复记录。注意:原表数据不会被修改,只是查询结果去重。   distinct只能出现在所有字段的最前方:select distinct job from emp;。   .

大彤小忆的博客 3311

GPU服务器维修全流程:从检测到解锁

《GPU服务器维修维保全流程指南》摘要:本文系统介绍GPU服务器从检测到解锁的完整维修流程。检测环节包含物理检查(氧化层、散热、PCB板)和电子诊断(ECC报错率、电源波动等);核心维修技术涵盖PCB板修复(微孔镀铜、BGA返修)和芯片级维修(成功率78-92%);解锁验证阶段包括性能解锁(VBIOS重写)和72小时稳定性测试。文末提供故障速查表及维保建议,强调定期除尘可降低38%故障率,推荐环境粉尘浓度控制在≤0.3mg/m³。

2401_89353317的博客 891

MySQL的数据操作与查询——连接查询

2019年8月25日 本阶段不需要编程,很多人听过大数据,听过人工智能,听过数据挖掘。但是几乎都有疑问:什么是大数据?什么是人工智能?大数据和人工智能能做什么?等等。这一阶段主要是答疑解惑,让大家明白这些概念,至少在和高端人士茶余饭后谈论大数据和人工智能的时候可以不需要“一脸懵逼”。 如果已经对大数据和人工智能了解很透彻,可以跳过直接进入第一阶段。 ...

weixin_58835941的博客 229

杰理SDK入门教程(一):编译环境的安装和程序下载

本文档提供了杰理SDK在Windows系统下的开发环境配置与代码编译指南。主要内容包括:1) 开发环境安装步骤,需下载Code::Blocks和杰理工具链;2) 编译过程中常见问题的解决方案,如安全警告提示和链接文件缺失问题;3) 代码编译流程说明,包括打开工程、连接开发板、执行编译等步骤。文档特别强调了强制升级模式的操作方法,并指出需避免点击运行/调试按钮。最后提示了杀毒软件可能误报工具链的注意事项。

qq_42014563的博客 2740

基于Simulink的风电系统背靠背变流器解耦控制仿真

本文完成了基于 Simulink 的风电背靠背变流器解耦控制仿真,实现了:✅掌握 dq 解耦控制的数学本质✅构建 MSC + GSC 完整控制链✅验证其在动态、扰动下的卓越性能✅达成高解耦度、低 THD、稳母线三大目标。

xiaoheshang_123的博客 79

MySQL数据操作与查询—外连接查询

1. 外连接查询 在内连接查询中,只有满足连接条件的记录才能出现在查询结果中。但在实际应用中,如果希望不满足连接条件的记录也在查询结果中出现,这时需要使用外连接查询。根据不同的外连接 ...

m0_58834541的博客 739

QT应用编程: 编写低功耗BLE蓝牙调试助手(Android系统APP)

一、环境介绍 QT版本: 5.12.6 编译环境: win10 64位 目标系统: Android 完整工程源码下载地址(包含APK文件):https://download.youkuaiyun.com/download/xiaolong1126626497/19051696 二、功能介绍 本软件是一款BLE蓝牙串口调试助手,支持常规的发送和接收调试,BLE是低功耗类型蓝牙,在智能家居、物联网领域使用较多。BLE低功耗蓝牙一般不能直接使用手机进行连接,手机蓝牙默认都是工作在传统蓝牙模式,无法直接连接BL..

7660

MySQL数据操作与查询 之 连接查询

你还在为MySQL的连接查询而发愁嘛?当你看到这篇文章时,那么恭喜你,弄明白连接查询就只差这一步了,接下来让我们开始

weixin_58877992的博客 1360

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

MySQL数据操作与查询-连接查询

文章目录前言一、什么是连接查询1. 内连接查询1.1 交叉连接(笛卡尔积)1.3 相等连接和自然连接比较二、多表连接查询1.三表查询**语法**:2.简单多表查询**语法**: 前言  在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在 一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带 来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,尔后通过连接进行查询。本文章就是介绍连接查询 一、什么是连接..

weixin_52483085的博客 433

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

MySQL 数据操作与查询笔记:DML、DQL、多表连接与子查询

本篇笔记以增删改查为主线,系统梳理 MySQL 数据操作(DML)与数据查询(DQL)的核心知识。从 INSERT、UPDATE、DELETE 和 TRUNCATE 的区别讲起,详解 SELECT 查询、WHERE 过滤、聚合分组、排序分页及 SQL 执行顺序,再深入多表关系、外键约束和 JOIN 连接,并结合子查询、UNION 联合查询展开实战技巧。文末附命令速查表,帮助夯实 MySQL 操作与查询基础。

m0_73999950的博客 644

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

MySQL数据操作与查询笔记 • 【第7章 连接查询】

全部章节 >>>> 本章目录 7.1 内连接查询 7.1.1 交叉连接(笛卡尔积) 7.1.2 内连接查询概要 7.1.3 内连接案例 7.1.4 自然连接 7.2 多表连接查询 7.2.1 多表连接查询方法 7.2.2 多表连接查询应用 7.2.3 简单多表连接查询 7.3 外连接查询 7.3.1 外连接查询概念 7.3.2 左外连接(LEF...

杨明金的博客 2万+

MySQL数据操作之多表查询——内连接、左连接、右连接、子查询

目录1、数据准备2.多表查询的sql三步法3.内连接 前言:本期咱们学习多表查询的内连接、左连接、右连接。 1、数据准备 -- 创建student库:student create database student default character set utf8 collate utf8_general_ci; /* 创建学生表:students, 学生号为Sid,数据类型为varchar(10),主键, 姓名为name,数据类型为varchar(10), 性别为sex,数据类型为varchar(1),

昔年的博客 2977

MySQL数据操作与查询-内连接

1. 交叉连接(笛卡尔积)Cross join 交叉连接(Cross join),又称“笛卡尔连接(Cartesian join)”或“叉乘(Product)”,它是所有类型的内连接的基础。如果把表视为行记录的集合,那么交叉连接即返回这两个集合的卡迪尔积,返回到结果集合中的数据行数等于第一张表符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。 语法:select*from line CROSS JOIN vehicle等价于:select*from line,vehicle 2.内连接...

m0_58834541的博客 839

MySQL数据操作与查询—连接查询综合运用

一. 连接查询中的分组统计 综合使用连接查询、聚合函数和分组函数可以实现很多复杂的查询要求。下面的案列可以很好体会出连接查询的强大功能。

m0_58834541的博客 419

MySQL数据操作与查询---连接查询

一、内连接: 内连接基于连接请词,它将两张表(如A和B)的列组合在一起,产生新的结果表。具体过程是 将A表的每一行和B表的每一行进行比较,并找出满足连接谓词的组合,当连接谓词被满足, A和B中匹配的行会按列组合(并排组合)成结果集中的一行。 内连接分3种:交叉连接、相等连接和自然连接。 交叉连接(笛卡尔职) 通俗而言,笛卡尔积就是两个集合中的的每一个成员都与对方集合中的任意一个成员有关联。实现 表与表连接。 ...

qq_54081982的博客 477

MySQL数据操作与查询第七章连接查询

<一>内连接查询 查询信息的来源如果来自多张表,则必须对这些表进行连接查询。连接是把不同的表的记录连到一起的zui'ou

m0_58829537的博客 257

MySQL 数据操作与查询 第七章:连接查询

本章重点单词: cross 交叉,inner 内部的,join 连接,结合,left 左边,right 右边,outer 右边

zyz3286328127的博客 173

mysql 数据操作 多表查询 多表连接查询 外链接之左连接 右连接

1.外链接之左连接:优先显示左表全部记录 left join 在内连接的基础上保留左表的记录 即便左表有一条记录和右表没有关系,也把他留下 mysql> select * from employee left join department on employee.dep_id = department.id; +----+------------+--...

weixin_30364147的博客 149

django连接mysql查询获取数据_Django 链接MySQL及数据操作

Django 链接MySQLDjango创建的项目自带的数据库是SQLite3,我们想要链接MySQL的话,需要更改settings.py中的配置1.在MySQL中创建好数据库,Django项目不会创建数据库,只会根据models.py中的模型类创建对应的表2.在项目文件下的settings.py文件中,找到 DATABASES属性,配置MySQL相关参数DATABASES = {'default...

weixin_36040903的博客 2036

mysql 数据操作 多表查询 多表连接查询 全外连接

全外连接:显示左右两个表全部记录 全外连接 在内连接的基础上保留左右两表没有对应关系的记录 full join #注意:mysql不支持全外连接 full JOIN mysql> select * from employee full join department on employee.dep_id = department.id; ERROR...

weixin_30642267的博客 172
上一篇: MySQL数据操作与查询-T5 MySQL函数
下一篇: MySQL数据操作与查询- 聚合函数和分组查询
Jarvis!
博客等级 码龄6年 822粉丝 53原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值