SQL Join 示例17 Mar 2025 | 6 分钟阅读 SQL JOIN用户可以实现 SQL Join 来合并来自两个或多个表的数据。在关系数据库管理系统中,所有数据都是相互关联的。数据可能存储在不同的表中,但以某种方式相关。表中的不同字段由具有关系值的实体组成。数据甚至可以分散到数据库中的多个表中。 如果用户需要同时从多个表中收集数据,那么用户可以实现一个简单的 Join 子句来执行数据检索。Join 子句将合并来自不同表的字段,这些字段将基于每个表中共同的数据值进行关联。 Join 子句可以根据 Join 谓词来实现。谓词在 WHERE 子句中指定。谓词可以被视为表在合并数据值之前必须满足的条件。 例如,在对不同表相同列中的值执行相等性测试时。这些值可能存在于名称不同的字段中。这也将被视为 Join 谓词。用户可以在 Join 谓词中实现不同的运算符。它包括 BETWEEN、LIKE、NOT 和比较运算符,如 <、>、<>、<=、>=、!=。 SQL 支持不同类型的 Join。Join 的类型可以根据数据在表之间的合并方式进行划分。Join 的类型如下: 内连接 (Inner Join): 内连接返回两个或多个表中字段的数据值的交集。它首先比较第一个表中字段的数据值与第二个表中存在的数据值。然后它配对行,并检查这两行是否满足 Join 谓词中指定的条件。它合并记录。它也被称为默认 Join。 外连接 (Outer Join): 它是内连接的对立面。它返回所有记录,即使一个表中的记录在另一个表中没有对应项。外连接可以进一步分为三个子类别。这些类别如下:
SQL 中 Join 的语法在两个表中实现 Join 子句的语法如下: 例如, 考虑用户在本地数据库中有两个表的情况。数据库包含学生和课程的记录。不同的学生被分配了不同的课程。第一个表是 Students 表,其中包含学院所有学生的个人详细信息。它包含 S_ID、S_Name、S_Age、S_City 字段。
实现以下 SQL 查询以在数据库中创建上述表。 为了确保上述表已成功插入数据库,请通过实现以下查询来查看表。 第二个表包含与课程相关的信息。Course 表中的字段是 C_ID、C_Name、SE_ID 和 CT_Name。
实现以下 SQL 命令来创建 Courses 表。 实现以下 SQL 查询来查看 Courses 表。 为了合并 Student 和 Course 表的数据,我们将使用 Join 关键字和 SELECT 子句在两个表上实现必要的 Join 操作。Join 这些表的查询如下: 实现上述 SQL 查询后,您将得到以下结果: 输出 ![]() 上述结果与用户通过检索 Students 和 Courses 表中的所有字段所能检索到的结果相似。JOIN 关键字已将两个表的记录合并到一个表格表示中。 用户可以通过实现 SELECT 查询来检索相同的信息,从而实现相同的操作。 输出 ![]() Join 的类型及其示例用户可以实现两种主要的 Join 类型。这两种类型是:
内连接 (Inner Join) 示例Inner Join 一种常见的 Join 类型,它使用户能够基于标准列合并两个表。这意味着第一个表中的所有列都与第二个表中的所有列进行比较。它合并满足条件的所有列。 让我们考虑一个 Customers 表,其中包含 CustomerID、CustomerName 和 City。
现在创建第二个表,Orders 表,它将存储 OrderID、CustomerID、Product 和订购产品的数量。该表如下所示:
实现以下查询来创建上述表并实现内连接。 输出 ![]() 外连接 (Outer Join) 示例Outer Join 外连接允许用户在结果中获得一个或两个表的所有记录。SQL 中有三种类型的外连接。这三种类型包括左外连接、右外连接和全外连接。 我们将使用上述表来实现外连接。实现外连接的查询如下: 这将产生以下结果: ![]() 自连接 (Self Join) 示例Self Join 顾名思义,它允许用户合并表。考虑一种情况,您拥有员工记录和他们的经理 ID。由于经理也是员工,因此他们的记录也存在于同一表中。
输出 ![]() 下一个主题SQL 不等于 |
我们请求您订阅我们的新闻通讯以获取最新更新。