`
xq30397022
  • 浏览: 13537 次
  • 性别: Icon_minigender_1
  • 来自: 天津
文章分类
社区版块
存档分类
最新评论

DB2sql中的内外连接

 
阅读更多
有表t1,t2

t1:
C1 C2 C3
-- ---------- --
1rick B0
2smith C0
3john E0

3 条记录已选择。
t2:
C1 C2
-- ----------
A0 sale DEPT
B0 prod DEPT
C0 cout DEPT
D0 mage DEPT

4 条记录已选择。

1.db2的内连接
下面是内连接,内连接和普通的where子句,输出相同,即在两表共有的行才会输出,即也可以用:select * from t1,t2 where t1.c3=t2.c1
内连接没有左右之分.

db2 => select * from t1 inner join t2 on t1.c3=t2.c1

C1 C2 C3 C1 C2
-- ---------- -- -- ----------
1rick B0 B0 prod DEPT
2smith C0 C0 cout DEPT

2 条记录已选择。


2.db2的外连接:外连接分左外连接右外连接,下面我们看看他们的区别:

db2 => select * from t1 left outer join t2 on t1.c3=t2.c1

C1 C2 C3 C1 C2
-- ---------- -- -- ----------
1rick B0 B0 prod DEPT
2smith C0 C0 cout DEPT
3john E0 --

3 条记录已选择。
左连接保留前面表的所有记录,后表中没有的补null.



db2 => select * from t1 right outer join t2 on t1.c3=t2.c1

C1 C2 C3 C1 C2
-- ---------- -- -- ----------
-- -A0 sale DEPT
1rick B0 B0 prod DEPT
2smith C0 C0 cout DEPT
-- -D0 mage DEPT

4 条记录已选择。
左连接保留后表的所有记录,前表中没有的补null.
我们可以把右连接,的表的顺序颠倒一下,并写成左外连接,其结果应该是一样的.
在DB2的内部机制中,会把右外连接重写成左外连接.故我们在写sql语句时尽量使用左外连接.


3.全外连接.
db2 => select * from t1 full outer join t2 on t1.c3=t2.c1
C1 C2 C3 C1 C2
-- ---------- -- -- ----------
-- -A0 sale DEPT
1rick B0 B0 prod DEPT
2smith C0 C0 cout DEPT
-- -D0 mage DEPT
3john E0 --

5 条记录已选择。
全外连接会输出两表的所有的数据,包括内连接和左外连接和右外连接的行.


4.与sybase的区别: sybase的sql语句相应的连接有:
select * from t1,t2 where t1.c3=t2.c1 相当于内连接
select * from t1,t2 where t1.c3 *= t2.c1 相当于左外连接
select * from t1,t2 where t1.c3 =* t2.c1 相当于右外连接


总结:
内连接,全有才有;左外连接,左有就有;右外连接,右有就有;全外连接,全都有.
分享到:
评论

相关推荐

    SqlDbx工具 远程连接db2

    可远程连接db2,非常方便,参考文档http://blog.csdn.net/zht666/article/details/8781332 的第一步,然后安装此exe连接db2.

    DB2 SQL性能调优秘笈

    ### DB2 SQL性能调优秘笈 在数据库领域,IBM DB2因其稳定性和高效性而备受推崇,尤其是在大型企业级应用中。对于DB2数据库管理员(DBA)来说,掌握有效的SQL性能调优技巧至关重要。这不仅能提升系统的响应速度,还...

    DB2SQL性能调优秘笈

    资源名称:DB2 SQL性能调优秘笈资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    DB2数据库SQL注入手册1

    在本手册中,我们将介绍如何在DB2数据库中进行SQL注入攻击的检测和防止。同时,我们还将提供一些实用的SQL语句,用于检测和防止SQL注入攻击。 检测SQL注入 在DB2数据库中,可以使用以下方法来检测SQL注入: 1. ...

    DB2SQL0000-32999

    通过对DB2SQL0000至32999这一系列错误代码的理解,DB2管理员和开发人员可以更好地诊断和解决数据库中的问题。IBM DB2 10.5版本提供了丰富的错误代码支持,覆盖了从基本的数据库操作到高级的数据管理功能。了解这些...

    CF12 DB2 SQL Workshop

    《CF12 DB2 SQL Workshop》是一份IBM官方提供的详细教程,主要针对DB2数据库管理系统中的SQL语言进行深入讲解。本教程分为七个单元,旨在帮助用户掌握SQL在DB2环境中的核心应用,提升数据管理和分析能力。以下是各...

    DB2 SQL Reference.pdf

    **DB2 SQL Reference** 是一个详尽的参考资料文档,主要介绍IBM DB2 Universal Database版本6中的SQL命令及相关功能。该文档是学习和掌握DB2数据库管理系统的必备指南之一,对于数据库管理员(DBA)、开发者以及其他与...

    db2sql速查手册

    ### DB2 SQL速查手册知识点解析 #### 一、引言 《DB2 SQL速查手册》是一本针对DB2数据库管理系统(Database Management System)的SQL语言指南,旨在为使用DB2 for Linux, UNIX和Windows版本的用户提供实用的查询与...

    IBM DB2 SQL Reference

    - **SQL**:强调文档主要聚焦于SQL语言在DB2中的应用。 - **IBM**:指出文档由IBM提供或与IBM产品相关。 #### 部分内容概述 ##### Chapter 1: Introduction - **Who Should Use This Book**:本章介绍了适合阅读...

    DB2_SQL课件

    3. 联接(Join):在DB2 SQL中,联接是将两个或多个表中的行连接起来形成结果集的一种方式。它在SELECT语句中广泛使用,能够支持不同类型的联接操作,如内联接、左外联接、右外联接和全外联接。 4. 数据控制语言(DCL)...

    DB2 SQL 精粹

    《DB2 SQL精粹》是一本深入探讨DB2数据库管理系统中SQL语言的专著,旨在帮助读者全面理解和熟练运用DB2 SQL进行数据管理和分析。DB2是IBM公司开发的一款关系型数据库管理系统,广泛应用于企业级的数据存储和处理,其...

    DB2 SQL 实现行转列,列转行

    DB2 SQL 通过函数(CONCAT/POSSTR/LOCATE)实现行转列,列转行 可以按照标点把多列转换为一行,多行转换为一列

    DB2 SQL语句性能分析方法

    本文将详细介绍如何利用DB2的语句事件监测器(Statement Event Monitor)来了解应用系统中SQL语句的执行情况,从而优化SQL语句性能。 #### 二、语句事件监测器基础介绍 语句事件监测器是一种强大的工具,它可以捕获...

    DB2数据库SQL注入语句

    本文将深入探讨DB2数据库中的SQL注入语句,以及如何通过这些语句来猜解数据库结构和数据。 首先,SQL注入的基础原理是通过在合法的SQL查询语句中嵌入恶意代码,以改变原本的查询逻辑。在给定的示例中,攻击者试图猜...

    DB2 SQL复制详细手册

    1. **设置环境**:确保所有服务器满足DB2 SQL复制的系统需求,包括版本兼容性、网络连接和权限设置。 2. **创建捕获实例**:在源数据库上创建捕获实例,指定要复制的表或模式。 3. **创建传递实例**:配置日志文件的...

    db2 SQL优化

    ### DB2 SQL优化之散列连接技术详解 #### 一、引言 在数据库管理系统(DBMS)中,SQL查询优化是提升数据检索速度的关键技术之一。对于大型企业级数据库如IBM DB2 Universal Database (DB2 UDB),优化SQL查询不仅能够...

    db2 SQL语法和语句块大全

    通过学习和掌握《db2 SQL语法和语句块大全》中介绍的知识点,你可以更有效地管理和操作DB2数据库,提升数据处理的效率和安全性。这不仅是对DB2数据库管理者的必备技能,也是所有数据库专业人士值得深入探索的专业...

Global site tag (gtag.js) - Google Analytics