SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
Join 和 Key
有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。
数据库中的表可通过键将彼此联系起来。主键(Primary
Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数
据交叉捆绑在一起。
请看 Persons 表:
请注意,"Id_P" 列是 Persons 表中的的主键。这意味着没有两行能够拥有相同的 Id_P。即使两个人的姓名完全相同,Id_P 也可以区分他们。
接下来请看 "Orders" 表:
请注意,"Id_O" 列是 Orders 表中的的主键,同时,"Orders" 表中的 "Id_P" 列用于引用 "Persons"
表中的人,而无需使用他们的确切姓名。
请留意,"Id_P" 列把上面的两个表联系了起来。
不同的 SQL JOIN
下面列出了您可以使用的 JOIN
类型,以及它们之间的差异。
* JOIN: 如果表中有至少一个匹配,则返回行
* LEFT JOIN:
即使右表中没有匹配,也从左表返回所有的行
* RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
* FULL
JOIN: 只要其中一个表中存在匹配,就返回行
SQL INNER JOIN
关键字
在表中存在至少一个匹配时,INNER JOIN 关键字返回行。
INNER JOIN 关键字语法
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
注释:INNER JOIN 与 JOIN 是相同的。
现在,我们希望列出所有人的定购。
您可以使用下面的 SELECT 语句:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
结果集:
INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 "Persons" 中的行在 "Orders" 中没有匹配,就不会列出这些行。
SQL LEFT JOIN 关键字
LEFT
JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
LEFT JOIN
关键字语法
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。
现在,我们希望列出所有的人,以及他们的定购 - 如果有的话。
您可以使用下面的 SELECT 语句:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
结果集:
LEFT JOIN 关键字会从左表 (Persons) 那里返回所有的行,即使在右表 (Orders) 中没有匹配的行。
SQL RIGHT JOIN 关键字
RIGHT JOIN 关键字会右表
(table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
RIGHT JOIN 关键字语法
SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
注释:在某些数据库中, RIGHT JOIN 称为 RIGHT OUTER JOIN。
现在,我们希望列出所有的定单,以及定购它们的人 -
如果有的话。
您可以使用下面的 SELECT 语句:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
结果集:
RIGHT JOIN 关键字会从右表 (Orders) 那里返回所有的行,即使在左表 (Persons) 中没有匹配的行。
SQL FULL JOIN 关键字
只要其中某个表存在匹配,FULL JOIN
关键字就会返回行。
FULL JOIN 关键字语法
SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name
注释:在某些数据库中, FULL JOIN 称为 FULL OUTER JOIN。
现在,我们希望列出所有的人,以及他们的定单,以及所有的定单,以及定购它们的人。
您可以使用下面的 SELECT 语句:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
结果集:
FULL JOIN 关键字会从左表 (Persons) 和右表 (Orders) 那里返回所有的行。如果 "Persons" 中的行在表 "Orders"
中没有匹配,或者如果 "Orders" 中的行在表 "Persons" 中没有匹配,这些行同样会列出。
(转自http://www.w3school.com.cn)
- 大小: 19.1 KB
- 大小: 16.6 KB
- 大小: 18 KB
- 大小: 20 KB
- 大小: 20.5 KB
- 大小: 22.6 KB
分享到:
相关推荐
综上所述,SQL关键字涵盖了从数据定义、数据操纵到数据控制的各个方面,每个关键字都有其独特的功能和应用场景。掌握这些关键字的含义和用法对于编写高效、正确的SQL语句至关重要。此外,虽然不同数据库管理系统...
下面我们将深入探讨SQL Server的关键字及其在实际应用中的用法。 1. 数据查询关键字: - SELECT:用于从表中检索数据,是最常用的关键字之一。例如,`SELECT * FROM Customers` 将返回Customers表中的所有记录。 ...
在空格分隔的文本框中,输入SQL的常用关键字,例如"SELECT", "FROM", "WHERE", "JOIN", "GROUP BY", "HAVING", "ORDER BY"等。确保每个关键字前后都有空格,以便EditPlus正确识别它们。 除了关键字,我们还可以设置...
在SQL Server中,关键字是构建查询和操作数据库的基础元素,其中`CROSS APPLY`和`OUTER APPLY`是两种特殊的应用运算符,主要用于在查询中处理表值函数和子查询的结果。这些运算符在SQL Server 2005及以上版本中引入...
本文将详细介绍如何通过构建hash关键字来优化SQL Server应用程序,特别是如何利用`hash`技术来改进搜索性能和减少磁盘占用。 #### 二、hash关键字的基础概念 **hash**是一种将输入数据映射到固定大小输出的过程,...
JOIN关键字是SQL查询中的关键部分,它允许我们在不同的表之间建立联系,以获取更丰富的信息。在这个主题中,我们将深入探讨INNER JOIN和OUTER JOIN,它们是JOIN的两种主要类型。 首先,我们来看INNER JOIN。INNER ...
### SQL Server 中 DELETE 语句结合 INNER JOIN 的应用 #### 背景介绍 在数据库管理与维护过程中,经常会遇到需要删除表中的某些记录的情况。简单地使用 `DELETE` 语句可以删除单个表中的数据,但在多表关联的情况...
3. **SQL关键字查询**:SQL的关键字如WHERE、GROUP BY、HAVING、ORDER BY、JOIN等用于构建查询结构。WHERE用于设置查询条件,GROUP BY用于数据分组,HAVING用于对分组后的数据进行筛选,ORDER BY用于排序结果,JOIN...
本文是我在看了各种资料后手机总结的,会详细的,一步一步的讲述一个sql语句的各个关键字的解析过程,欢迎大家互相学习。SQL语句的解析顺序 简单的说一个sql语句是按照如下的顺序解析的:1. FROM FROM后面的表标识了...
SQL关键字的高亮(如SELECT、FROM、WHERE、JOIN等)可以帮助开发者在嵌入式数据库操作中保持清晰的思路。而SQL智能提示则可以在编写查询时提供列名、表名以及可用的函数和操作符,使得数据库交互更加流畅。 在实际...
例如,JOIN关键字用于合并多个表的数据,WHERE用于筛选记录,GROUP BY用于分组,HAVING用于条件分组,ORDER BY用于排序,等等。 3. **SQL Server帮助文档**: 完整的帮助文档是开发者和DBA的重要参考资料。它包含...
另外,T-SQL的JOIN语法略显不同,它允许在JOIN条件中使用比较运算符,而标准SQL通常要求使用ON子句。 函数方面,T-SQL提供了一些特有的函数,如DATEPART、DATEADD和DATEDIFF,这些函数方便地处理日期和时间。而在...
在 Linq to sql 中,我们可以使用 join 关键字来实现多表关联。例如: ``` var q = from ar in db.Articles join c in db.Categories on ar.ParentId equals c.Id join sc in db.Categories on ar.SubId equals ...
通过应用这个插件,用户可以在EditPlus3中享受到SQL语句的高亮显示,例如关键字(如SELECT, FROM, WHERE, JOIN等)会被以特定颜色突出,使得代码结构更加清晰。 EditPlus3的特色功能包括: 1. **代码自动完成**:...
本篇将详细讲解SQL查询语句的应用,涵盖多种常用查询方法,以供参考。 1. **基本查询** - **SELECT语句**:SQL的基本查询始于SELECT,它用于从数据库中检索数据。例如,`SELECT * FROM table_name;` 将返回表table...
SQL(Structured Query Language)是用于管理和操作关系数据库的语言,它被广泛应用于数据查询、更新、插入和删除等操作。这份“SQL学习笔记+记录sql各种应用”涵盖了SQL的基础概念、语法以及在实际工作中的多种应用...
以下将详细介绍SQL格式、IF语句的用法、函数的声明及应用以及关键字的介绍。 1. SQL格式: SQL语句通常由数据操作语句(如SELECT、INSERT、UPDATE、DELETE)、数据定义语句(如CREATE TABLE、ALTER TABLE)和数据...
**Informix数据库SQL查询语言及应用** Informix是一款高效、灵活的关系型数据库管理系统,由IBM公司开发并维护。SQL(Structured Query Language)是用于管理关系数据库的标准语言,它在Informix中的应用至关重要,...
1. **SQL基础概念**:SQL的基本结构包括SELECT、INSERT、UPDATE、DELETE等关键字,用于查询、插入、更新和删除数据。理解这些基础语句是学习SQL的第一步。 2. **数据查询**:在SQL中,SELECT语句是最常用的部分,它...