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感兴趣的同学可以关注一下,谢谢!

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

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

相关文章

C/C++数据结构之堆栈(Stack):理解、实现与运用

当我们讨论堆栈时,我们首先需要了解它的概念和基本原理。堆栈是一种后进先出(Last In, First Out,LIFO)的数据结构,它的操作主要包括压栈(Push)和弹栈(Pop),以…

webpack 中,filename 和 chunkFilename 的区别

filename filename 是一个很常见的配置,就是对应于 entry 里面的输入文件,经过webpack打包后输出文件的文件名。比如说经过下面的配置,生成出来的文件名为 index.min.js。 chunkFilename chunkFilename 指未被列在 entry 中,却…

Java 教育局民办教育信息服务与监管平台

1) 项目背景 按照《中华人民共和国民办教育促进法》和《中华人民共和国政府信息公开条例》的相关规定,为满足学生和家长、社会各界获取权威信息的需求,着力解决服务老百姓最后一公里问题,达到宣传民办教育和引导家长择校的效果&#xff0…

LeetCo

题目描述如下: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M …

leetcoe刷题日志-6N字形变换

将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下: 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串&#…

世微 降压恒流驱动IC 景观亮化洗墙灯舞台灯汽车灯LED照明 AP5199S

1. 特性 支持高辉调光,调光比 平均电流工作模式 高效率:最高可达 95% 输出电流可调范围 60mA~12A 最大工作频率 1MHz 恒流精度≤3% 支持 PWM 封装:SOP8 2. 应用领域 景观亮化洗墙灯 舞台调光效果灯 汽车照明 3. 说明 AP5199S…

读像火箭科学家一样思考笔记02_与不确定性共舞(下)

1. 万有理论 1.1. 相对论 1.1.1. 适用于体积非常大的物体 1.2. 量子力学 1.2.1. 适用于非常小的物体 1.2.2. 在量子力学诞生之前,物理学一直强调的是因果关系,即做这件事,就会得到那个结果 1.2.3. 量子力学讲的似乎是:当我们…

RobotFramework之如何使用数据驱动(十二)

学习目录 引言 数据驱动是什么? 非驱动方式测试案例 通过添加Template模板的方式,实现数据驱动 将参数放在变量文件中,实现数据驱动 引言 大家平时在写接口或者UI自动化用例的时候,是否遇到这种情况: 写了很多条…

关于Android音效播放,【备忘】

主要还是希望开箱即用。所以才有了这篇&#xff0c;也是备忘。 以下代码适合Android5.0版本以后 private SoundPool soundPool;//特效播放private Map<String,Integer> soundPoolMap;// Builder buildernew SoundPool.Builder();builder.setMaxStreams(4);///最大…

(Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、部分程序&#xff1a; 四、完整程序数据说明文档下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于Matalb平…

TURN 协议

TURN 地址分配 抓包过程 TURN 连接建立 这里指的是 Client 收到对端从 TURN 分配的 IP 和 端口 &#xff0c;和对端的 TURN 和 IP 绑定的过程 CreatePermission Request 等消息&#xff0c;都会携带有对端的 TURN 和 IP 抓包过程

【数据结构】图的存储结构(邻接矩阵)

一.邻接矩阵 1.图的特点 任何两个顶点之间都可能存在边&#xff0c;无法通过存储位置表示这种任意的逻辑关系。 图无法采用顺序存储结构。 2.如何存储图&#xff1f; 将顶点与边分开存储。 3.邻接矩阵&#xff08;数组表示法&#xff09; 基本思想&#xff1a; 用一个一维数…