大家好,今天遇到了在db2中 两个数据库之间的两个表的联合查询

我知道oracle中有dblink,可是不知到db2的两个数据库联合查询怎么处理
我找了类似于
比如两个数据库: db1,db2
用户名
密码
select * from db1.用户名.密码,db2.用户名.密码 where db1.NM=db2.NM
可是这样不好用啊
请各位帮忙谢谢

DB2有联邦数据库的,你可以查一下。

1.要看目录数据库请用:
db2 list db directory
这些信息应该是放系统表中.(既不是什么注册表.也不是什么文件,具体请查.我也不清楚(类比oracle 猜的)).

2.oracle 有dblink .有透明网关.
db2 有联合数据库:(如果不同数据库记得装驱动都是db2就不用了.)

使用DB2联合数据库,您可以使用一条SQL语句查询多个数据源中的数据。奇妙的是,这些数据源可以多种多样:即可以是多种关系数据库系统,也可以是非关系数据库系统,比如Microsoft Excel
、xml等。本文将首先探讨多个关系数据库之间的联合访问。
我们不如先来动手配置一个简单的联合数据库实例来培养一下您的成就感,这样可以为您理解联合数据库所设计的概念及繁多的参数选项增加一点信心。我一向喜欢这种文章风格,我相信很多人也会喜欢的。
要进行下面的试验,您必须先安装DB2 v8.2 ESE (Enterprise Server Edition) for Windows。DB2的安装不是本文的讨论范围。
假如您的DB2已经安装好了,那就开始吧。
1) 使用windows管理员权限的用户登陆windows,笔者用的是Administrator。
2) 为了完成下面的演示,您还需要另外一个windows用户,笔者使用安装DB2的时候自动创建的db2admin用户。您当然也可以使用其他windows用户。
3) 确保您已经创建了至少一个可用的实例。笔者使用缺省创建的DB2实例。您可以通过在命令窗口运行DB2START命令来启动这个实例
4) 在DB2命令窗口运行DB2 GET DBM CFG 来查看当前实例的配置参数,并确保FEDERATED参数设置为YES,您可以通过运行DB2 UPDATE DBM CFG USING FEDERATED YES来设置这个参数。修改这个参数后,必须重新启动实例才会生效(DB2STOP/DB2START)
5) 却保您已经创建了DB2样本数据库SAMPLE,如果您还没有创建,可以通过在DB2命令行窗口运行db2sampl命令来创建它。此样本数据库包含了一些样本表和数据,使用这个数据库作演示可以使我们节省一点时间。
6) 创建另外一个数据库,笔者使用名字TESTDB:
   DB2 CREATE DB TESTDB
7) 运行DB2CE命令打开DB2命令编辑器,并在这儿完成下面的步骤。
8) 连接到sample数据库,并创建DRDA包装器(WRAPPER).
   CONNECT TO SAMPLE;
   CREATE WRAPPER DRDA;
   
9) 创建服务器(SERVER)
CREATE SERVER TESTDB TYPE DB2/UDB VERSION '8.2' WRAPPER "DRDA" AUTHID "db2admin" PASSWORD "db2admin" OPTIONS( ADD DBNAME 'TESTDB', PASSWORD 'Y');
10) 创建用户映射
CREATE USER MAPPING FOR "ADMINISTRATOR" SERVER "TESTDB" OPTIONS ( ADD REMOTE_AUTHID 'db2admin', ADD  REMOTE_PASSWORD 'db2admin') ;
11) 使用db2admin用户连接到TESTDB数据库、创建表WORKITEM、并插入样本数据。
CONNECT TO TESTDB USER db2admin USING db2admin;
CREATE TABLE WORKITEM (
ITEMNO CHAR(4) NOT NULL,
ITEMNAME VARCHAR(50) NOT NULL,
EMPNO CHAR(6),
PRIMARY KEY (ITEMNO)
);
INSERT INTO WORKITEM(ITEMNO,ITEMNAME,EMPNO) VALUES ('0001','测试程序模块1','000010');
INSERT INTO WORKITEM(ITEMNO,ITEMNAME,EMPNO) VALUES ('0002','完成模块2的开发','000020');
INSERT INTO WORKITEM(ITEMNO,ITEMNAME,EMPNO) VALUES ('0003','联系客户A','000030');
12) 连接到SAMPLE数据库,并为TESTDB数据库中的WORKITEM表创建昵称:
CONNECT TO SAMPLE;
CREATE NICKNAME ADMINISTRATOR.WORKITEM FOR TESTDB.DB2ADMIN.WORKITEM;
13) OK,现在我们就可以在SAMPLE数据库中使用TESTDB数据库中的WORKITEM表了,而且还可以和SAMPLE数据库的EMPLOYEE表联合查询:
    SELECT * FROM WORKITEM;
    我们来查询由谁来负责哪个工作项目:
    SELECT A.ITEMNO,A.ITEMNAME,A.EMPNO,B.FIRSTNME,B.LASTNAME FROM WORKITEM A LEFT OUTER JOIN EMPLOYEE B ON A.EMPNO=B.EMPNO;
    
到此为止,SAMPLE数据库就已经变成了联合数据库,您通过在SAMPLE数据库中为TESTDB数据库中的表或视图创建昵称来访问他们,很好玩吧。

 

在db2中 两个数据库之间的两个表的联合查询的更多相关文章

  1. 在VS2005编程中,有的时候DataGridView数据源有几个表的联合查询,而系统又有限制为一个表,怎么办?

    在VS2005编程中,有的时候DataGridView数据源有几个表的联合查询,而系统又有限制为一个表,怎么办? 解决方法:在SqlServer的企业管理器里增加一个视图吧!!!!!!!!(从来没用过 ...

  2. 【笔记】.NET开发环境下使用PostgreSQL+Oracle_fdw 实现两个数据库之间数据交互操作(二)

    一 新的可视化工具 因为前文所提到的,看不到外部服务器和外部表的问题,我更换了可视化工具. 好用的新工具PostgreSQL Maestro! 当然如此好用的工具不是免费的,如果想免费使用还请自己去找 ...

  3. C#实现两个数据库之间的数据上报

    用VS2008实现本地数据库上传数据到远程数据.数据能够是一个表,或一个表的部分数据.或查询数据.或数据编辑后上传. 其他VS版本号.复制当中代码就能够.未使用其他不论什么插件.有具体凝视. 单独页面 ...

  4. navicat------------利用navicat查看两个数据库之间的差异

  5. c#两个数据库之间进行表拷贝

  6. mysql----------利用navicat查看两个数据库之间的差异

  7. fedora中使用 mariadb数据库建库和建表-- mariadb数据库服务无法启动?

    /proc(进程, 过程等含义) 文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在 Linux® 内核空间(内核)和用户空间(用户)之间进行通信.在 /proc 文件系统中,我们可以将对虚拟文 ...

  8. Android项目中,在一个数据库里建立多张表

    一,创建一个公共的DBAdapter; 为了在整个程序运行期间调用该公共的数据库,我们定义了一个扩展自Application的CommDB类: 1,创建唯一的数据库: public class Com ...

  9. SQL Server 之 在数据库之间进行数据导入导出

    1.同一服务器上数据库之间进行数据导入导出 (1).使用 SELECT INTO 导出数据 在SQL Server中使用最广泛的就是通过SELECT INTO语句导出数据,SELECT INTO语句同 ...

随机推荐

  1. C++ STL find

    find 函数,复杂度O(n) 涉及一些 泛型编程 #include <iostream> #include <string.h> #include <string> ...

  2. 静态数据认证(SDA)与动态数据认证(DDA)的区别

    PBOC/EMV里有两个非常重要的概念,SDA(staticdataauthentication)和DDA(dynamicdataauthentication),分别叫做静态数据认证和动态数据认证.这 ...

  3. 20145120 《Java程序设计》实验二实验报告

    20145120 <Java程序设计>实验二实验报告 实验名称:Java面向对象程序设计 实验目的与要求: 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握U ...

  4. 四则运算三+psp0级表格

    一.题目 在四则运算二的基础上,选择一个方向进行拓展,我选择的是增加了答题模块 二.设计思路 1.在上次的基础上,增加了答题模块,每出现一道四则运算题目,便提醒输入结果,如果结果错误,就会提示错误 2 ...

  5. PP生产订单的BADI增强 WORKORDER_UPDATE

    METHOD if_ex_workorder_update~before_update. *---------------------->增强1 开始* "当生产订单类型为PP01时, ...

  6. 03.Hibernate一对多关联

    前言:在域模型中,类与类之间最普遍的关系就是关联关系,在UML语言中关联关系是有方向的.在数据库中表与表之间也会有关联关系,本节介绍通过Hibernate映射一对多的关联关系,这是一种最普遍的关联关系 ...

  7. 【BZOJ】【2178】圆的面积并

    自适应辛普森积分 Orz Hzwer 辛普森真是个强大的东西……很多东西都能积= = 这题的正解看上去很鬼畜,至少我这种不会计算几何的渣渣是写不出来……(对圆的交点求图包,ans=凸包的面积+一堆弓形 ...

  8. 剑指offer--7题

    *题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变. *句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. *例如输入“I am a student.”,则输出“st ...

  9. SQL Server优化

    虽然查询速度慢的原因很多,但是如果通过一定的优化,也可以使查询问题得到一定程度的解决. 查询速度慢的原因很多,常见如下几种: 没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) I/ ...

  10. vertical sync

    these days, I am compelting vertical sync https://msdn.microsoft.com/zh-cn/library/windows/desktop/b ...