总结:
内连接:仅仅显示匹配的行
外连接:设法显示不匹配的行,包括左(外)连接、右(外)连接、全(外)连接
左(外)连接:左表的行全显示(右表不存在匹配时填null)
右(外)连接:右表的行全显示(左表不存在匹配时填null)
全(外)连接:左连接和右连接的结果再做合并(union)
SQL:
ANSI的写法
不太好看,但是意义明显。
内连接:join 或 inner join
左(外)连接:left join
右(外)连接:right join
Oracle的写法
是在需要补充填null的一方添加“(+)”,表示用null去匹配另一边“没有匹配”的行。
内连接:什么也不做
左(外)连接:右边填“(+)”
右(外)连接:左边填“(+)”
练习:
--prepare
create global temporary table temp1 (
id number(3), desc1 char(5)
);
create global temporary table temp2 (id number(3), desc2 char(5));
insert into temp1 values (123, 'ABCDE');
insert into temp1 values (456, 'FGHIJ');
insert into temp2 values (456, 'ZZZZZ');
insert into temp2 values (789, 'MMMMM');
Oracle
--left join
select a.id id_a, b.id id_b
from temp1 a,
temp2 b
where a.id(+)
= b.id
--right
join
select a.id id_a, b.id id_b
from temp1 a, temp2 b
where a.id=
b.id(+)
ASNI
--inner join(inner is optional
)
select ta.id id_a, tb.id
id_b
from temp1 ta
inner join
temp2 tb
on ta.id = tb.id
--left join
select ta.id id_a, tb.id id_b
from temp1 ta
lest join
temp2 tb
on ta.id = tb.id
--right join
select ta.id id_a, tb.id id_b
from temp1 ta
right join
temp2 tb
on ta.id = tb.id
--Oracle全外连接(ASIN略)
select a.id id_a, b.id id_b
from temp1 a, temp2 b
where a.id(+) = b.id
union
select a.id id_a, b.id id_b
from temp1 a, temp2 b
where a.id = b.id(+)
分享到:
相关推荐
右外连接与左外连接相反,返回右表的所有行,即使在左表中没有匹配的行。对于左表中没有匹配的行,结果集中的相应列将是NULL。 ```sql SELECT authors.*, publishers.* FROM authors RIGHT JOIN publishers ...
标题“ado数据库连接程序.rar”表明这是一个关于使用ADO进行数据库连接的示例程序,可能是用Visual Basic、VBA或其他支持ADO的语言编写的。对于数据库初学者来说,了解如何使用ADO来连接数据库是非常基础且重要的...
本文将详细讲解如何使用VC++来实现SQL Server和Access数据库的连接,以及相关的编程技术。 首先,对于SQL Server,VC++主要通过ODBC(Open Database Connectivity)或ADO(ActiveX Data Objects)来实现连接。ODBC...
这篇文档将深入解析标题为"PHP评论留言源码(两种数据库连接方式)带数据库_两种连接数据库方式_留言板源码_带数据库文件_appserv_service1"的资源包,该资源包含了一个基本的PHP评论留言系统,它支持两种不同的...
MFC_ADO 连接数据库,附有源代码代码(即mfc项目,可在vc6.0中加载)数据库sql2000的分离文件,还有参考网页文档。你可以直接看到运行效果,还可以按照参考网页自己从新做。我是初学者,方便其他初学者学习
2. **数据库连接**:为了从远程服务器获取数据,需要建立数据库连接。这通常涉及到使用SQL(结构化查询语言)进行查询,并使用如JDBC(Java Database Connectivity)或ODBC(Open Database Connectivity)这样的API...
在VB.NET中建立数据库连接是开发数据库驱动应用程序的基础步骤。Visual Basic .NET (VB.NET) 提供了多种方法来连接到各种类型的数据库,包括SQL Server、MySQL、Oracle等。本实例将详细介绍如何在VB.NET环境下创建...
完整外连接(FULL JOIN 或 FULL OUTER JOIN)则同时包含左外连接和右外连接的所有行,即使在一个表中没有匹配的行,结果也会包含另一表的所有数据,对应列填充NULL。 交叉连接(CROSS JOIN)也称为笛卡尔积,它返回...
- 右外连接(RIGHT OUTER JOIN 或 RIGHT JOIN):与左外连接相反,返回右表的所有行,左表中没有匹配的行同样填充NULL。 - 全外连接(FULL OUTER JOIN 或 FULL JOIN):返回两个表的所有行,无论是否存在匹配。如果...
分为左外连接、右外连接和全外连接。例如,左外连接显示所有供应商信息,即使他们没有销售任何零件: ```sql SELECT s.f_sname, p.f_pname FROM t_supplier s LEFT OUTER JOIN t_sells ss ON s.f_sid = ss.f_sid ...
这里主要涉及三种类型的连接:左连接、右连接和自连接。理解这些连接方式对于有效地管理和查询数据库至关重要。 1. **左连接(Left Join)**: 左连接返回左表(也就是连接操作中指定的第一个表)的所有记录,以及...
这个软件或库的源码可能包含了解析SQL语句、执行查询以及管理数据库连接等功能。 描述中的“连接查询主要分为三种:内连接、外连接、交叉连接”是数据库查询的重要概念。以下是对这些连接类型的具体解释: 1. 内...
db2数据库连接驱动,jcc.11.5.0.0.jar 测试10.5版本的数据库, 可向下兼容,谢谢
labview与数据库的连接,读取,写入,存储
* 数据库连接池特点: * 获取连接时不需要了解连接的名字,连接池内部维护连接的名字 * 支持多线程,保证获取到的连接一定是没有被其他线程正在使用 * 按需创建连接,可以创建多个连接,可以控制连接的数量 * 连接...
MS SQL Server 数据库连接字符串是用于建立与 SQL Server 数据库实例连接的重要配置,包含了多种参数以确保正确和安全地访问数据库。 首先,`Data Source` 或 `Server` 参数指定了要连接的 SQL Server 实例的名称或...
连接oralce数据库 适用于win7 64bit的python2.7
2. **oraociei11.dll、orannzsbb11.dll、oraocci11.dll**:这些是Oracle数据库连接的关键动态链接库文件,分别提供了OCI(Oracle Call Interface)、Net8 Shared Buffer和OCI的接口,使得应用程序能够调用Oracle的...
JDBC_ODBC连接Access数据库,不需要设置数据源 ,超级好的一段代码!