外连接主要包括左连接、右连接和完整外部连接。
1)左连接:Left Join 或 Left Outer Join
左连接的结果集包括LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值(Null)。
我们看对应的SQL语句:
Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish
From Student
Left JOINBorrowBook
On Student.StudentID = BorrowBook.StudentID
运行的结果如下:
StudentName StudentAge BorrowBookName BorrowBookPublish
---------------------------------------------------------------------------------
张三 25 主义政治经济学 电子工业出版社
李四 26 ***思想概论 高等教育出版社
王五 27 理论 人民邮电出版社
赵六 28 大学生思想道德修养 中国铁道出版社
无名氏 27 NULL NULL
(所影响的行数为 5 行)
可以看到的是,它查询的结果是以左表Student为主,Student对应的StudentID在右表BorrowBook如果不存在的话,就会用NULL值来代替。
2) 右连接:Right Join 或 Right Outer Join
右连接和左连接相反,它将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值(Null)。
我们看对应的SQL语句
Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish
From Student
Right JOINBorrowBook
On Student.StudentID = BorrowBook.StudentID
运行的结果如下:
StudentName StudentAge BorrowBookName BorrowBookPublish
----------------------------------------------------------------------------------------------------------------------
张三 25 主义政治经济学 电子工业出版社
李四 26 ***思想概论 高等教育出版社
王五 27 理论 人民邮电出版社
赵六 28 大学生思想道德修养 中国铁道出版社
NULL NULL C语言程序设计 高等教育出版社
(所影响的行数为 5 行)
可以看到的是,它查询的结果是以右表BorrowBook为主,BorrowBook对应的StudentID在左表Student如果不存在的话,就会用NULL值来代替。
3) 完整外部联接:Full Join 或 Full Outer Join
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
我们看对应的SQL语句
Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish
From Student
FULL OUTERJOIN BorrowBook
On Student.StudentID = BorrowBook.StudentID
结果如下:
StudentName StudentAge BorrowBookName BorrowBookPublish ----------------------------------------------------------------------------------------------------------------------
NULL NULL C语言程序设计 高等教育出版社
张三 25 主义政治经济学 电子工业出版社
李四 26 ***思想概论 高等教育出版社
王五 27 理论 人民邮电出版社
赵六 28 大学生思想道德修养 中国铁道出版社
无名氏 27 NULL NULL
(所影响的行数为 6 行)
可以看到的是,它查询的结果除了把相对应完全匹配的记录查出来以后,还会把左连接及右连接两种情形都包括,对应的值用NULL值来代替。
交叉连接
交叉连接(CROSS JOIN),就是指不带W H E R E子句的查询。在数学上,就是表的笛卡尔积。也就是它查询出来的记录数行为两个表的乘积,对应记录也就是为表A*表B。
我们看对应的SQL语句
Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish
From StudentCross JoinBorrowBook
运行的结果如下:
StudentName StudentAge BorrowBookName BorrowBookPublish
---------------------------------------------------------------------------------
张三 25 主义政治经济学 电子工业出版社
李四 26 主义政治经济学 电子工业出版社
王五 27 主义政治经济学 电子工业出版社
赵六 28 主义政治经济学 电子工业出版社
无名氏 27 主义政治经济学 电子工业出版社
张三 25 ***思想概论 高等教育出版社
李四 26 ***思想概论 高等教育出版社
王五 27 ***思想概论 高等教育出版社
赵六 28 ***思想概论 高等教育出版社
无名氏 27 ***思想概论 高等教育出版社
张三 25 理论 人民邮电出版社
李四 26 理论 人民邮电出版社
王五 27 理论 人民邮电出版社
赵六 28 理论 人民邮电出版社
无名氏 27 理论 人民邮电出版社
张三 25 大学生思想道德修养 中国铁道出版社
李四 26 大学生思想道德修养 中国铁道出版社
王五 27 大学生思想道德修养 中国铁道出版社
赵六 28 大学生思想道德修养 中国铁道出版社
无名氏 27 大学生思想道德修养 中国铁道出版社
张三 25 C语言程序设计 高等教育出版社
李四 26 C语言程序设计 高等教育出版社
王五 27 C语言程序设计 高等教育出版社
赵六 28 C语言程序设计 高等教育出版社
无名氏 27 C语言程序设计 高等教育出版社
(所影响的行数为 25 行)
可以看到的是,它把表Student中的每一行和BorrowBook中的每一条记录都进行关联,返回的记录数为5*5=25行,即笛卡尔积,它执行的语句也就等效于
Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish
From Student,BorrowBook
分享到:
相关推荐
4. 使用配置好的连接进行SQL查询、数据库对象浏览或其他数据库操作。 关于NETWORK文件,通常在Oracle环境中指的是网络配置文件,如tnsnames.ora。这个文件定义了Oracle数据库的服务名,包含服务器的主机名、端口和...
以下是关于SQL连接的不同类型及其详细解释: 1. **内连接(Inner Join)**: 内连接返回两个表中存在匹配的行。这通常通过在`FROM`子句中指定`JOIN`或`INNER JOIN`来实现,比较两个表中的共同列,只返回那些列值...
SQL 连接的四种类型:左外连接、右外连接、全连接、内连接 在 SQL 中,连接(JOIN)是一种非常重要的概念,它允许我们从多个表中检索数据。连接可以分为四种类型:左外连接、右外连接、全连接和内连接。每种连接都...
"SQL连接类型详解" SQL连接是数据库管理系统中的一种基本操作,用于将多个表格中的数据组合成一个新的表格。根据连接的方式和结果,SQL连接可以分为内连接、左连接、右连接、全连接和交叉连接等多种类型。 内连接 ...
标题 "kettle 连接sqlserver 驱动" 涉及到的是在数据集成工具 Pentaho Data Integration(简称 Kettle 或 PDI)中,如何配置和使用 SQL Server 数据库的连接。Kettle 是一个强大的ETL(Extract, Transform, Load)...
在这个主题中,我们将深入探讨SQL Server 2005中不同类型的连接查询,包括内连接、外连接和自连接,并通过实际示例来理解它们的工作原理。 首先,我们来看内连接(Inner Join)。内连接返回两个表中匹配记录的结果...
SQL中的连接操作是数据库查询中不可或缺的部分,它们用于合并来自两个或更多表的数据。主要的连接类型包括内连接(INNER JOIN)和外连接(OUTER JOIN),每种都有其特定的用途和效果。 1. **内连接(INNER JOIN)**...
"Merge Join" Step就是其中之一,它允许用户实现类似SQL中的各种类型关联查询,包括INNER JOIN、LEFT JOIN、RIGHT JOIN以及FULL JOIN。 INNER JOIN是SQL中的一种基本联接类型,它返回两个表中存在匹配的记录。在...
### PB11.5连接SQL数据库方法总结 在软件开发过程中,有效地与数据库进行交互是至关重要的一步。本文将详细介绍PB11.5(PowerBuilder 11.5)连接SQL数据库的四种常见方法:使用SNC SQL Native Client、OLE DB、ADO...
SQL Server支持多种联接类型,如内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全外连接(FULL OUTER JOIN),用于在多个表之间提取数据。例如,当需要从销售订单表和客户表中获取订单信息及其对应的...
本文主要讲解了SQL中的内连接(INNER JOIN)和外连接(OUTER JOIN),包括左连接(LEFT JOIN)、右连接(RIGHT JOIN)以及完整外部联接(FULL JOIN)。 1. **内连接(INNER JOIN)** 内连接是SQL中最基本的连接...
2. **减少子查询**:有时,左连接可能会嵌套在子查询中,这会导致性能下降。尝试将子查询转换为联接,可以减少查询的复杂度,从而提高执行速度。 3. **选择正确的JOIN类型**:根据业务需求,有时可以考虑用其他JOIN...
2. **子查询与联接**:讲解如何使用子查询进行嵌套查询,以及各种类型的联接操作,如内连接(INNER JOIN)、外连接(LEFT JOIN、RIGHT JOIN、FULL JOIN)和交叉连接(CROSS JOIN)。 3. **集合操作**:可能涉及到...
2. 联接查询:包括内连接(INNER JOIN)、外连接(LEFT JOIN、RIGHT JOIN、FULL JOIN)等,用于处理多表之间的复杂关系。 3. 分页查询:利用LIMIT和OFFSET关键字实现数据的分页展示。例如: ```sql SELECT * FROM...
1. **联接查询**: - 内连接(INNER JOIN):返回两个表中匹配的行。 ```sql SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id; ``` - 左连接(LEFT JOIN):返回所有左表的行,即使在右表中...
"查询.doc"可能提供了更具体的查询挑战,如多表查询、子查询、联接操作以及复杂的条件过滤。 通过学习和实践这些内容,用户能够熟练掌握SQL Server查询分析器的使用,并提升SQL编程技能,从而更好地管理和操作SQL ...
以上只是SQL查询语句的一部分知识点,实际的“SQL查询语句大全”可能会包含更复杂的查询技术,如窗口函数、游标、自连接、并行查询优化等。学习和掌握SQL,能够帮助我们高效地管理和处理大量数据,是提升工作效率的...
2. **SQL查询编辑器**:该工具内置了一个高级的SQL编辑器,支持SQL语法高亮、自动完成和错误检查,提高了编写和执行SQL语句的效率。对于复杂的多表查询和联接操作,SqlDbx提供了直观的界面支持。 3. **数据浏览和...
标题中的"SQL数据库SQL查询题目"表明这是一组与SQL语言和数据库查询相关的练习或测试。SQL(结构化查询语言)是用于管理关系数据库的标准语言,包括数据查询、更新、插入和删除等操作。在描述中提到的"1、查询“001...
SQL的几种连接:内连接、左联接、右连接、全连接、交叉连接