SQL Server笔记(四)
文献种类:专题技术文献;
开发工具与关键技术: VS、JS
作者:方建恒 ;年级:20级 ;撰写时间: 2022 年 4 月 18日
今天我继续给大家分享一下我总结的一些SQL Server的笔记,
接下来我们来了解一下SQL Server中的表连接,
SQL Server中的表链接包含内连接,左连接,右连接,全外连接和交叉连接,
其中全外连接是SQL Server独有的。
下面我们主要来了解一下常用的几个表连接:
-
内连接:是SQL Server中最常用的表连接方式之一。
它用于查询来自两个或多个相关表的数据。以下为内连接的实例:
首先在 from 子句中指定主表,其次在inner join子句和连接谓词中指定第二个表。
只有连接谓词计算为 true的行才会包含在结果集中。代码如下图所示:
-
左连接:用于查询来自多个表的数据。
它会返回左表中的所有行和右表中的匹配行。当右表中没有匹配的行则返回null。
以下实例中left join子句返回左表中的所有行以及右表中匹配的行或null值。
代码如下图所示:
-
右连接:用于查询来自多个表的数据。它与左连接差不多。
只是它返回的是右表中的所有行和左表中的匹配行。当左表中没有匹配的行则返回null。
以下实例中right join子句返回右表中的所有行以及左表中匹配的行或null值。
代码如下图所示:
-
自连接:用于将表连接到自身(同一个表)。
它主要用于查询分层数据或比较同一个表中的行。自联接使用内连接或左连接子句。
由于使用自联接的查询引用同一个表,因此表别名用于为查询中的表分配不同的名称。
注意:如果在不使用表别名的情况下在查询中多次引用同一个表,则会出现错误。
以下实例为查询“c001”课程比“c002”课程成绩高的所有学生的学号,代码如下图所示:
-
交叉连接:cross join用于连接两个或多个不相关的表。
它会将第一个表中的每一行与第二个表中的每一行连接起来。
换句话说,交叉连接返回的是两个表中行的笛卡尔积。
与内连接或左连接不同,交叉连接不会在连接的表之间建立关系。
假设第一个表有 n 行,第二个表有 m 行,则交叉连接 将产生 n x m 行。
交叉连接在进行查询时一定要注意避免出现笛卡尔值,否则的话会将数据库卡死。
以下为实例,(表一有11行,表二有10行):
以上就是今天分享的部分我的SQL Server的笔记。