1 引言
硕士程序员马根峰推出的个人作品----万能数据库查询分析器,中文版本DB 查询分析器、英文版本《DB Query Analyzer》。它具有强大的功能、友好的操作界面、良好的操作性、跨越各种数据库平台乃至于EXCEL和文本文件。
你可以通过它 ① 查询ODBC数据源(包括世面上所有的数据库、TXT/CSV文件、EXCEL文件)的数据。② 你可以同时执行多条DML语句乃至存贮过程,结果会以你设定的表格、文本框、文件来返回; ③ 从数据库导出千万条数据时,效率与DBMS没有什么区别; ④ 允许执行的多条SQL语句返回的记录集保存到多个文件中;⑤ 允许用户自定义单次、周、月的“SQL 执行计划”;⑥ 具有强大的 SQL “执行计划”功能,你只要将“工具-à选项”窗口中的选项“SQL执行计划连接自动恢复”设置为“选中”状态,那么即使在“SQL执行计划”期间数据库服务器宕过机,只要在“SQL执行计划”的时刻数据库服务器是处理启动状态,那么“SQL执行计划”都会被执行;⑦ 允许用户自定义导出文件中的字段间分隔符与行结束符; ⑧ 6.03版本已经完全兼容任何Microsoft的windows操作系统系列,包括Windows 10、Windows 8、Windows 7、WindowsVista、Windows 2003、Windows XP、Windows 2000、Windows NT、Windows ME、Windows 9X,可以直接在Windows操作系统上运行,而不需要更改任何操作系统的设置或者配置。
DB 查询分析器在中关村在线(http://xiazai.zol.com.cn/detail/27/264455.shtml) 下载量超过12万 次,位居整个数据库类排行榜中前10位。
在《程序员》2007第2期的“新产品&工具点评”部分,编辑“特别推荐”了万能数据库查询分析器发布。
本人还撰写了关于万能数据库查询分析器有关技术中文、英文的 93 篇文章,发布在《电脑编程技巧与维护》、《软件》、《计算机时代》、《电脑编程技巧与维护》、百度文库、CSDN资源、和本人的CSDN博客上。
本文将以中文版本DB 查询分析器7.022 版本为例,详细介绍 如何使用DB查询分析器来进行不同数据源中数据表的相互访问。
2 不同数据源中数据表间的常规访问技术
异构数据源中数据表的相互访问,要么通过分布式数据库访问技术,要么通过数据整合,将数据整合到一个数据库中。对于大型数据库系统来说,都提供分布式数据库访问技术,是否支持异构数据库(即不同厂家的数据库产品)的访问,具体要看该数据库产品的技术说明。
例如,对于ORACLE来说,通过创建 DBLINK 来进行不同地点的 ORACEL 数据库或者异构数据库的访问;对于 DB2 而言,通过infosphere federation server,即 DB2 数据联邦技术来进行不同地点的DB2数据库或者异构数据库的访问;对于MS SQL SERVER 来说,通过创建链接服务器来进行不同地点的 MS SQL SERVER 数据库或者异构数据库的访问。
不过对于初学者来说,以上的技术并非容易。
但对于万能数据库查询分析器而言,则都可以直接连接上你的任何数据大型数据库系统,来访问其中的数据表以及该数据库的链接数据库中的数据表。但凡使用过万能数据库查询分析器的用户,都会非常喜欢它的良好的操作性、友好的操作界面和强大的功能。
不仅如此,还可以通过 Windows 资源管理器创建一个目录,将所有数据源中要访问的数据表导出 TXT/CSV 文件到创建的目录中,然后建立一个基于 TXT/CSV 的 ODBC 数据源指向这个目录中,于是万能数据库查询分析器就可以直接访问该目录中的所有 TXT/CSV 文件,每个文件就像数据库中的一个数据表一样,他们之间可以用标准的SQL语言来进行访问,甚至关联访问。
3 DB 查询分析器进行三个ODBC数据源数据表访问的集成环境实例
本例子是使用DB查询分析器的月执行计划功能,来生成交通部的数据旬报数据,关于如何旬报数据的详细算法与资料,请参见本人的技术文章(如何使用《DB 查询分析器》高效地生成旬报货运量数据http://blog.csdn.net/magenfeng/article/details/51615862)
本例子中,涉及到3个数据源,第一个是EXCEL文件(ODBC数据源Excel_省界站);第二个是AIX上的DB2数据库(ODBC数据源UNITOLL2);第三个就是指向目录D:\BETWEEN_DB中TXT/CSV的ODBC数据源TXT_CSV_ODBC。
3.1 创建ODBC数据源Excel_省界站

图1 创建指向EXCEL文件的ODBC数据源(一)

图2 创建指向EXCEL文件的ODBC数据源(二)

图3 创建指向EXCEL文件的ODBC数据源(三)
3.2 创建TXT/CSV数据源TXT_CSV_ODBC

图4 创建指向TXT/CSV文件的ODBC数据源TXT_CSV_ODBC(一)

图5 创建指向TXT/CSV文件的ODBC数据源TXT_CSV_ODBC(二)
3.3 DB查询分析器访问EXCEL_省界站,生成 D:\BETWEEN_DB\省界站.txt

图6 访问EXCEL_省界站,生成 D:\BETWEEN_DB\省界站.txt
3.4 DB查询分析器访问UNITOLL2,生成 几个TXT文件
大家看一条文本文件关联的SQL脚本,用于计算本旬数据中的从新增收费站入并且不是从省界站入指标。
SELECT round(sum(货车车流量_万辆),0),round(sum(货运量_万吨),0)FROM [本旬.txt]
WHERE (TRIM(INAREANO)+','+TRIM(INROADNO)+','+TRIM(INSTATIONNO)) IN (SELECT TRIM(AREANO)+','+TRIM(ROADNO)+','+TRIM(STATIONNO) FROM [新增收费站.txt] )
AND
(TRIM(INAREANO)+','+TRIM(INROADNO)+','+TRIM(INSTATIONNO)) NOT IN (SELECT TRIM(AREANO)+','+TRIM(ROADNO)+','+TRIM(STATIONNO) FROM [省界站.txt] )

图7 添加月执行计划,访问UNITOLL2,生成 D:\BETWEEN_DB\新增收费站.txt
另外,在其它窗口,使用DB查询分析器创建生成其它4个TXT文件的月执行计划,来分别生成本旬.txt、去年本旬.txt、月初到本旬累计.txt、去年月初到本旬累计.txt这4个TXT文件。
3.5 DB查询分析器访问TXT_CSV_ODBC,生成 最终旬报结果文件D:\BETWEEN_DB\执行结果.csv

图8 访问TXT_CSV_ODBC,生成 D:\BETWEEN_DB\执行结果.csv (一)

图9 访问TXT_CSV_ODBC,生成 D:\BETWEEN_DB\执行结果.csv (二)
图10 执行结果.csv文件的内容

图11 数据源TXT_CSV_ODBC对应的目录 D:\BETWEEN_DB
4 结束语
今天只是举例来介绍一下DB查询分析器如何创建一个集成的目录环境,来进行跨数据源的数据访问。