SQL零基础入门教程,贼拉详细!贼拉简单! 速通数据库期末考!(八)

FULL OUTER JOIN

除了前面讲到的 INNER JOIN(内连接)、LEFT JOIN(左连接)、RIGHT JOIN(右连接),还有另外一种关联方式,即 FULL OUTER JOIN(全外连接)
FULL OUTER JOIN :左表(table1)和右表(table2)匹配不上的数据行全部都会返回结果。
FULL OUTER JOIN 结合了 LEFT JOIN 和 RIGHT JOIN 的结果。

语法:

SELECT columns
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;

columns:要显示的列名。
table1:左表的名称。
table2:右表的名称。
column_name:表中用于连接的列名。
table1.column_name:表示table1表的column_name字段。

MySQL中不支持 FULL OUTER JOIN,实际应用时也基本用不到,这里也就不多做赘述了。

三表关联

之前我们一直都是两张表进行关联,那么如何进行三张表的关联呢?
那就关联两次就好了,语法:

SELECT columns
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name 
INNER JOIN table3 
ON table1.column_name=table3.column_name;

columns:要显示的列名。
table1:左表的名称。
table2:右表的名称。
column_name:表中用于连接的列名。
table1.column_name:表示table1表的column_name字段。
例如:
将学生数据表,学生成绩表,课程数据表关联,查询每个学生的学生id,学生姓名,课程id,课程名,成绩,班级:

SELECT students.id,name,score.subject_id,subject_name,score,clazz
FROM score 
INNER JOIN subject 
ON score.subject_id = subject.subject_id 
INNER JOIN students 
ON students.id = score.id;

SQL别名

在使用SQL时,有时为了便于理解,提升可读性,可以为表名称或列名称指定别名。比如在结果中将列名显示为中文。

语法:

SELECT column_name AS alias_name
FROM table_name AS alias_name;

column_name:表中的实际列名;
table_name:表的实际表名;
alias_name:自己给表或者列取的别名;

示例:
查询subject表全列,结果以中文列名显示:

SELECT subject_id AS '课程id', subject_name AS '课程名'
FROM subject;

对上面三表关联的SQL语句进行优化,对表名设置别名:

SELECT c.id AS 学生id,
			 c.name AS 学生,
			 a.subject_id AS 课程id,
			 b.subject_name AS 课程名,
		 	 a.score AS 分数,
			 c.clazz AS 班级
FROM score AS a
INNER JOIN subject AS b
ON a.subject_id = b.subject_id 
INNER JOIN students AS c
ON c.id = a.id;


另外,AS可以省略

本专栏将持续更新,对数据库SQL感兴趣的同学可以关注一下,谢谢!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深信服AC设备用户认证

拓扑图 目录 拓扑图 一. 无需认证 思路:创建用户和组,将无需认证策略和用户绑定 1.创建组,组里添加用户 2. 新建不需要认证策略,将不需要认证策略和用户关联 3.验证 二.密码认证 思路:创建用户和组,并…

通过bat脚本控制Oracle服务启动停止

1、将Oracle服务全部设置为手动启动 初始安装Oracle之后服务启动状态: 2、服务功能介绍 3、构建服务启动/停止bat脚本 注意:编码选择ANSI(如果编码不是ANSI运行脚本会显示乱码) echo off :main cls echo 当前Oracle服务状态: for /f &quo…

Swagger(4):Swagger配置

在上一张的项目中创建SwaggerConfig,进行配置文档内容。 1 配置基本信息 Docket:摘要对象,通过对象配置描述文件的信息。 apiInfo:设置描述文件中info。参数类型ApiInfo select():返回ApiSelectorBuilder对象,通过对象调用buil…

Java 某市教育局综合信息管理平台

1) 项目简介 “互联网智慧教育”管理平台,实现全市教育信息系统集中建设和教育数据在云平台的汇集,在全市中小学整体实现电子班牌、家校通等功能,选取部分重点学校进行一卡通系统试点建设,实现智能化门禁、道闸、实体卡等功能…

后端面经学习自测(三)

文章目录 1、ArrayList和Linkedlist区别?2、ArrayList扩容机制?3、ArrayList和Linkedlist分别能做什么场景?4、事务特性?MySQL事务Redis事务Spring事务5、在Spring中事务失效的场景?6、Java泛型?7、泛型擦除…

FPGA_边沿检测电路设计

FPGA_边沿检测电路设计 边沿检测原理图波形图分析实现方法方法一:与逻辑实现方法二:或逻辑实现方法三:与逻辑实现 边沿检测原理图 由状态转移表可以看出,其转换条件中需要检测到下降沿以及上升沿,而边沿检测其原理就是…

1.0 Zookeeper 教程

分类 Zookeeper 教程 ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。 ZooKeeper 的架构通过冗余服务实现高可用性。 Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来&…

团结引擎已全面支持 OpenHarmony 操作系统

Unity 中国宣布与开放原子开源基金会达成平台级战略合作。 据称团结引擎已全面支持 OpenHarmony 操作系统,同时将为 OpenHarmony 生态快速带来更多高品质游戏与实时 3D 内容。Unity 称现在用户可以 “在 OpenHarmony 框架中感受到与安卓和 iOS 同样丝滑的游戏体验”…

分支限界法(1)--旅行商问题

一、概述 有n个城市,旅行者要访问所有n个城市,最终回到起始点,假设起始点给定为1,城市间距离已知,求能够完成旅行的最短距离。题干如下图。 算法:分支限界法,使用队列进行bfs搜索。 二、代码 i…

工程化实战 - 前端AST(进阶)

###脚手架 *快速自动化搭建启动工具 目标: ####第一步:处理依赖 npm i path npm i chalk4.1.0 npm i fs-extra npm i inquirer8.2.2 npm i commander npm i axios npm i download-git-repo //ora easy-table figlet ####第二步:处理工程入口 ####3.加入命令交互 交互好帮手…

<MySQL> 如何合理的设计数据库中的表?数据表设计的三种关系

目录 一、表的设计 二、一对一关系 三、一对多关系 四、多对多关系 一、表的设计 数据库设计就是根据需要创建出符合需求的表。 首先根据需求找到体系中的关键实体对象,通常每个实体对象都会有一个表,表中包含了这个实体的相关属性。 再理清楚实体对…

Linux——进程控制

Linux——进程控制 fork()缺页中断 进程终止进程异常exit_exit进程等待waitwaitpidstatusWIFEXITED 多进程等待阻塞等待和非阻塞等待进程替换单进程的进程替换execlexeclpexecvexecle fork() 我们之前是接触过这个函数的,这个函数我们之前是要来创建子进程的函数&a…

生命科学领域 - FAIR原则和如果使数据FAIR化

2016年,《Scientific Data》发表了《科学数据管理和监督的FAIR指导原则》(FAIR Guiding Principles for scientific data management and stewardship)。文章旨在提供指导方针,以提高数字资产的可发现性、可访问性、互操作性和重用…

一些RLHF的平替汇总

卷友们好,我是rumor。 众所周知,RLHF十分玄学且令人望而却步。我听过有的小道消息说提升很大,也有小道消息说效果不明显,究其根本还是系统链路太长自由度太高,不像SFT一样可以通过数据配比、prompt、有限的超参数来可控…

【论文解读】FFHQ-UV:用于3D面部重建的归一化面部UV纹理数据集

【论文解读】FFHQ-UV 论文地址:https://arxiv.org/pdf/2211.13874.pdf 0. 摘要 我们提出了一个大规模的面部UV纹理数据集,其中包含超过50,000张高质量的纹理UV贴图,这些贴图具有均匀的照明、中性的表情和清洁的面部区域,这些都是…

【数据预处理2】数据预处理——数据标准化

数据标准化 1. 什么是标准化?   数据标准化是一个常用的数据预处理操作,目的是将不同规格的数据转换到统一规格或不同分布的数据转换到某个特定范围,以减少规模、特征、分布差异等对模型的影响。这种操作也叫作无量纲化。   除了用作模型…

【【萌新的SOC学习之 VDMA 彩条显示实验之一】】

萌新的SOC学习之 VDMA 彩条显示实验之一 实验任务 : 本章的实验任务是 PS写彩条数据至 DDR3 内存中 然后通过 VDMA IP核 将彩条数据显示在 RGB LCD 液晶屏上 下面是本次实验的系统框图 VDMA 通过 HP接口 与 PS端的 DDR 存储器 进行交互 因为 VDMA 出来的是 str…

【数据预处理3】数据预处理 - 归一化和标准化

处理数据之前,通常会使用一些转换函数将「特征数据」转换成更适合「算法模型」的特征数据。这个过程,也叫数据预处理。 比如,我们在择偶时,有身高、体重、存款三个特征,身高是180、体重是180、存款是180000&#xff1…

SpringBoot 整合 Freemarker

通过 Freemarker 模版,我们可以将数据渲染成 HTML 网页、电子邮件、配置文件以及源代码等。 Freemarker 不是面向最终用户的,而是一个 Java 类库,我们可以将之作为一个普通的组件嵌入到我们的产品中。 Freemarker 模版后缀为 .ftl(FreeMarke…

python算法例10 整数转换为罗马数字

1. 问题描述 给定一个整数,将其转换为罗马数字,要求返回结果的取值范围为1~3999。 2. 问题示例 4→Ⅳ,12→Ⅻ,21→XⅪ,99→XCIX。 3. 代码实现 def int_to_roman(num):val [1000, 900, 500, 400,100, 90, 50, 40…