`
bingyu
  • 浏览: 42319 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Sql join关键字应用

SQL 
阅读更多

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语句至关重要。此外,虽然不同数据库管理系统...

    SQL SERVER 关键字

    下面我们将深入探讨SQL Server的关键字及其在实际应用中的用法。 1. 数据查询关键字: - SELECT:用于从表中检索数据,是最常用的关键字之一。例如,`SELECT * FROM Customers` 将返回Customers表中的所有记录。 ...

    Editplus编辑Sql高亮显示关键字

    在空格分隔的文本框中,输入SQL的常用关键字,例如"SELECT", "FROM", "WHERE", "JOIN", "GROUP BY", "HAVING", "ORDER BY"等。确保每个关键字前后都有空格,以便EditPlus正确识别它们。 除了关键字,我们还可以设置...

    sql server关键字详解大全(图文)

    在SQL Server中,关键字是构建查询和操作数据库的基础元素,其中`CROSS APPLY`和`OUTER APPLY`是两种特殊的应用运算符,主要用于在查询中处理表值函数和子查询的结果。这些运算符在SQL Server 2005及以上版本中引入...

    如何用hash关键字提高数据库性能

    本文将详细介绍如何通过构建hash关键字来优化SQL Server应用程序,特别是如何利用`hash`技术来改进搜索性能和减少磁盘占用。 #### 二、hash关键字的基础概念 **hash**是一种将输入数据映射到固定大小输出的过程,...

    sql join( inner join, outer join) 分析

    JOIN关键字是SQL查询中的关键部分,它允许我们在不同的表之间建立联系,以获取更丰富的信息。在这个主题中,我们将深入探讨INNER JOIN和OUTER JOIN,它们是JOIN的两种主要类型。 首先,我们来看INNER JOIN。INNER ...

    【SQL】在sql server中 delete时 使用INNER JOIN

    ### SQL Server 中 DELETE 语句结合 INNER JOIN 的应用 #### 背景介绍 在数据库管理与维护过程中,经常会遇到需要删除表中的某些记录的情况。简单地使用 `DELETE` 语句可以删除单个表中的数据,但在多表关联的情况...

    SQL查询相关技术(常用SQL查询技术、比较逻辑运算符查询、SQL关键字查询、表结构与性能、时间与谓词、聚合函数、子查询与连接查询、交叉表、常用数据操作高级应用、试图存储过程和触发器的使用)

    3. **SQL关键字查询**:SQL的关键字如WHERE、GROUP BY、HAVING、ORDER BY、JOIN等用于构建查询结构。WHERE用于设置查询条件,GROUP BY用于数据分组,HAVING用于对分组后的数据进行筛选,ORDER BY用于排序结果,JOIN...

    SQL语句的各个关键字的解析过程详细总结

    本文是我在看了各种资料后手机总结的,会详细的,一步一步的讲述一个sql语句的各个关键字的解析过程,欢迎大家互相学习。SQL语句的解析顺序 简单的说一个sql语句是按照如下的顺序解析的:1. FROM FROM后面的表标识了...

    C#关键字高亮显示+关键字智能提示,内置SQL语法的关键字提醒和高亮显示

    SQL关键字的高亮(如SELECT、FROM、WHERE、JOIN等)可以帮助开发者在嵌入式数据库操作中保持清晰的思路。而SQL智能提示则可以在编写查询时提供列名、表名以及可用的函数和操作符,使得数据库交互更加流畅。 在实际...

    SQL Server帮助文档(全)

    例如,JOIN关键字用于合并多个表的数据,WHERE用于筛选记录,GROUP BY用于分组,HAVING用于条件分组,ORDER BY用于排序,等等。 3. **SQL Server帮助文档**: 完整的帮助文档是开发者和DBA的重要参考资料。它包含...

    标准SQL和transact-sql之比较学习

    另外,T-SQL的JOIN语法略显不同,它允许在JOIN条件中使用比较运算符,而标准SQL通常要求使用ON子句。 函数方面,T-SQL提供了一些特有的函数,如DATEPART、DATEADD和DATEDIFF,这些函数方便地处理日期和时间。而在...

    浅谈Linq to sql 的多表关联与动态条件查询

    在 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关键字显示插件包)

    通过应用这个插件,用户可以在EditPlus3中享受到SQL语句的高亮显示,例如关键字(如SELECT, FROM, WHERE, JOIN等)会被以特定颜色突出,使得代码结构更加清晰。 EditPlus3的特色功能包括: 1. **代码自动完成**:...

    SQL查询语句应用

    本篇将详细讲解SQL查询语句的应用,涵盖多种常用查询方法,以供参考。 1. **基本查询** - **SELECT语句**:SQL的基本查询始于SELECT,它用于从数据库中检索数据。例如,`SELECT * FROM table_name;` 将返回表table...

    SQL学习笔记+记录sql各种应用

    SQL(Structured Query Language)是用于管理和操作关系数据库的语言,它被广泛应用于数据查询、更新、插入和删除等操作。这份“SQL学习笔记+记录sql各种应用”涵盖了SQL的基础概念、语法以及在实际工作中的多种应用...

    dephi SQL格式,if用法,函数的声明及应用,关键字的介绍

    以下将详细介绍SQL格式、IF语句的用法、函数的声明及应用以及关键字的介绍。 1. SQL格式: SQL语句通常由数据操作语句(如SELECT、INSERT、UPDATE、DELETE)、数据定义语句(如CREATE TABLE、ALTER TABLE)和数据...

    informix数据库SQL查询语言及应用

    **Informix数据库SQL查询语言及应用** Informix是一款高效、灵活的关系型数据库管理系统,由IBM公司开发并维护。SQL(Structured Query Language)是用于管理关系数据库的标准语言,它在Informix中的应用至关重要,...

    SQL应用范例宝典(明日科技)_源码

    1. **SQL基础概念**:SQL的基本结构包括SELECT、INSERT、UPDATE、DELETE等关键字,用于查询、插入、更新和删除数据。理解这些基础语句是学习SQL的第一步。 2. **数据查询**:在SQL中,SELECT语句是最常用的部分,它...

Global site tag (gtag.js) - Google Analytics