【MySQL】学习连接查询和案例演示

](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center)

🌈个人主页: Aileen_0v0
🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法
💫个人格言:“没有罗马,那就自己创造罗马~”

at someone s disposal 任...处理 '

文章目录

  • `连接查询`
  • `内连接`
    • `隐式内连接`
    • `隐式内连接演示`
    • `显示内连接`
    • `显示内连接演示`
  • `外连接`
    • `左外连接`
    • `左外连接演示`
    • `右外连接`
    • `右外连接演示`
    • `右外连接如何转换为左外连接`

连接查询

内连接

内连接查询的是两张交集的部分。

在这里插入图片描述

隐式内连接

SELECT 字段列表 FROM 表1 ,表2 WHERE 条件...;

隐式内连接演示

-- 内连接演示
-- 1.查询每一个员工的姓名 , 及关联部门的名称 (隐式内连接实现)
-- 表结构:emp , dept
-- 连接条件: emp.dept_id = dept.id
select emp.name , dept.name from emp , dept where emp.dept_id = dept.id ; 

在这里插入图片描述

通过内连接查询连接员工表和部门表,我们从查询结果看到只有16条信息,而最后一条却没有。这是因为我们还没有给最后一个员工分配部门。
-- 我们可以通过取别名简化代码长度
select e.name , d.name from emp e , dept d where e.dept_id = d.id;
⚠️注意:一旦我们给表取完别名以后。就不能通过原来的表名去限定字段。

在这里插入图片描述


显示内连接

SELECT 字段列表 FROM 表1 [ INNER ] JOIN 表2 ON 连接条件...;

显示内连接演示

-- 2.查询每一个员工的姓名 , 及关联部门的名称 (显式内连接实现) --- INNER JOIN ... ON ...
-- 表结构: emp , dept
-- 连接条件: emp.dept_id = dept.id
select e.name , d.name from emp e  inner join dept d on e.dept_id = d.id;

在这里插入图片描述


外连接

左外连接

SELECT 字段列表 FROM 表1 LEFT [ OUTER ] JOIN 表2 ON 条件...;

在这里插入图片描述

左外连接演示

-- 外连接演示
-- 1. 查询emp表的所有数据 , 和对应的部门信息(左外连接)
-- 表结构: emp , dept
-- 连接条件: emp.dept_id = dept.idselect e.* , d.name  from emp e left outer join dept d on e.dept_id = d.id;-- 写法2:可以省略outer
select e.* , d.name from emp e left join dept d on e.dept_id = d.id;

在这里插入图片描述

我们可以看到即使最后一个员工没有部门信息,一样能够查询到null,因为左外连接会包括左表的所有数据,即所有员工表中员工的信息。

右外连接

SELECT 字段列表 FROM 表1 RIGHT [ OUTER ] JOIN 表2 ON 条件...;

在这里插入图片描述

右外连接演示

-- 2. 查询dept表的所有数据 , 和对应的员工信息(右外连接)  - right outer join右外会完全包含右外连接的数据
select d.* , e.*  from emp e right outer join dept d on e.dept_id = d.id;

在这里插入图片描述

右外连接如何转换为左外连接

-- 右外链接 也可以 改成 左外连接
select d.* , e.* from  dept d left outer join emp e on e.dept_id = d.id;

在这里插入图片描述

我们可以看到,通过修改关键字,右外连接也可以修改成左外连接。

](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center)

](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我在使用 Copilot 时遇到了许可证验证错误。

如果使用的是 Copilot,并收到以下错误消息,请按以下步骤进行操作: We encountered a problem validating your Copilot license. For more information, see https://aka.ms/copilotlicensecheck 请确保使用的是正确的帐户 请确保已使用具…

pop链构造 [NISACTF 2022]babyserialize

打开题目 题目源代码如下 <?php include "waf.php"; class NISA{public $fun"show_me_flag";public $txw4ever;public function __wakeup(){if($this->fun"show_me_flag"){hint();}}function __call($from,$val){$this->fun$val[0];…

SD-WAN案例:总部(MPLS)与分支(普通宽带)的互联互通

某制造业企业面临着总部采用MPLS专线而分支机构使用普通宽带的网络互联挑战。这种情况下&#xff0c;如何降低网络成本&#xff0c;提高网络效率成为当前亟需解决的问题。本文将介绍该企业如何通过部署SD-WAN实现互联互通。 网络痛点及需求分析&#xff1a; 该企业主要痛点包括…

Linux系列讲解 —— 【Vim编辑器】在Ubuntu18.04中安装新版Vim

平时用的电脑系统是Ubuntu18.04&#xff0c;使用apt安装VIM的默认版本是8.0。如果想要安装新版的Vim编辑器&#xff0c;只能下载Vim源码后进行编译安装。 目录 1. 下载2. 编译3. 安装4. 遇到的问题4.1 打开vim后&#xff0c;文本开头有乱码现象。4.2 在Vim编辑器中&#xff0c;…

Jquery中的事件与动画

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 本章目标 使用常用简单事件制作网页特效使用鼠标事件制作主导航特效使用hover()方法制作下拉菜单特效使用鼠标事件及动画制作页面特效 一.Jquery事件概述 二.基础事件 鼠标事件 演示案例&…

Easy-Jmeter: 性能测试平台

目录 写在开始1 系统架构2 表结构设计3 测试平台生命周期4 分布式压测5 压力机管理6 用例管理6.1 新增、编辑用例6.2 调试用例6.3 启动测试6.4 动态控量6.5 测试详情6.6 环节日志6.7 实时数据6.8 测试结果 7 测试记录7 用例分析8 系统部署8.1普通部署8.2容器化部署 写在最后 写…

人工智能产生的幻觉问题真的能被看作是创造力的另一种表现形式吗?

OpenAI的首席执行官山姆奥特曼&#xff08;Sam Altman&#xff09;曾声称&#xff0c;人工智能产生的“幻觉”其实未尝不是一件好事&#xff0c;因为实际上GPT的优势正在于其非凡的创造力。 目录 一.幻觉问题的概念 二.幻觉产生的原因 三.幻觉的分类 四.减轻AI的幻觉问题到…

全面介绍HTML的语法!轻松写出网页

文章目录 heading(标题)paragraph(段落)link(超链接)imagemap(映射)table(表格)list(列表)layout(分块)form(表单)更多输入:datalistautocompleteautofocusmultiplenovalidatepatternplaceholderrequired head(首部)titlebaselinkstylemetascriptnoscript iframe HTML&#xff…

外包干了3个月,技术倒退1年。。。

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

缓存一致性问题的解决策略

缓存一致性问题的背景和概念介绍 在一个系统中&#xff0c;我们通常使用数据库来存储数据&#xff0c;以保证数据的持久性。但是&#xff0c;由于数据库的读写速度相对较慢&#xff0c;如果每次请求都直接访问数据库&#xff0c;会降低系统的响应速度。为了提高系统的性能&…

Spring Cloud学习

1、什么是SpringCloud Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序&#xff0c;提供与外部系统的集成。Spring cloud Task&#xff0c;一个生命周期短暂的微服务框架&#xff0c;用于快速构建执行有限数据处理的应用程序。Spring cloud 流应用程…

2.26 Qt day4+5 纯净窗口移动+绘画事件+Qt实现TCP连接服务+Qt实现连接数据库

思维导图 Qt实现TCP连接 服务器端&#xff1a; widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTcpServer>//服务器端类 #include<QTcpSocket>//客户端类 #include<QMessageBox>//消息对话框类 #include<QList>//链…