如何查询其他数据库内的表(IN子句实例)?
|
问题:
| |
如何引用其他数据库内的表?(查询外部表)
jet __ sql __ 中的 __ in __ 子句到底怎么用?在哪里用?
---|---
方法一:
|
select能否查询其他数据库中表的数据?
| SELECT __ * __ FROM __ tbl_family __ IN __ other.mdb"[5556]";
方括号[]内的是其他数据库的连接字串
方法二:
|
| SELECT __ *
FROM __ [;database=C:\db2.mdb;pwd=1].表1 __ AS __ a, __ 表1 __ AS __ b
WHERE __ a.ID=b.id
请参考:
|
下面是有关select语句的帮助,请注意 __ in __
SELECT __ 语句
命令 __ Microsoft __ Jet数据库引擎从数据库里返回信息,作为一组记录。
语法
SELECT __ [predicate] __ { __ * __ | __ table.* __ | __ [table.]field1 __ [AS __ alias1] __ [, __ [table.]field2 __ [AS __ alias2] __ [, __ ...]]}
__ __ __ __ FROM __ tableexpression __ [, __ ...][IN外部数据库]
__ __ __ __ [WHERE...]
__ __ __ __ ]
[GROUP __ BY...]
__ __ __ __ ]
[HAVING...]
__ __ __ __ ]
[ORDER __ BY...]
__ __ __ __ ]
[WITH __ OWNERACCESS __ OPTION]
IN __ 子句
标识出外部数据库中的表,例如dBASE或Paradox数据库,或Microsoft __ Jet外部数据库,Microsoft __ Jet数据库引擎能够与之相连。
语法
标识目标表:
[SELECT __ | __ INSERT] __ INTO __ destination __ IN
__ __ __ __ {path __ | __ ["path" __ "type"] __ | __ ["" __ [type; __ DATABASE __ = __ path]]}
标识数据源表:
FROM __ tableexpression __ IN
__ __ __ __ {path __ | __ ["path" __ "type"] __ | __ ["" __ [type; __ DATABASE __ = __ path]]}
包含 __ IN __ 子句的SELECT __ 语句具有以下几个部分:
部分 __ 说明 __
destination __ 外部表的名称,将数据插入表中。 __
tableexpression __ 表的名称,可从这些表中获取数据。这个变量可能是一个单独的表名,一个已存查询,或是 __ INNER __ JOIN, __ LEFT __ JOIN, __ 或 __ RIGHT __ JOIN. __
Path __ 目录或文件的整个路径,而且这些目录或文件包含 __ table __ 。 __
type __ 数据库类型的名称,如果数据库不是 __ Microsoft __ Jet __ 数据库(例如 __ dBASE __ III、dBASE __ IV、Paradox __ 3.x或Paradox __ 4.x),则用此类型创建 __ table __ 。 __
说明
通过 __ IN __ 你一次只可以连接一个外部数据库 __
在某些情况中,path __ 参数可引用包含数据库文件的目录。例如,当使用 __ dBASE、FoxPro或 __ Paradox __ 数据库表时,path __ 参数将指定包含 __ .dbf __ 或 __ .db __ 文件的目录。由 __ destination __ 或 __ tableexpression __ 参数可得到表文件的名称。
为了指定非 __ Microsoft __ JET __ 数据库,可在名称之后附加分号 __ (;),并用单引号 __ (' __ ') __ 或 __ (" __ ") __ 双引号将它括入。例如可用 __ 'dBASE __ IV;' __ 或 __ "dBASE __ IV;"这两种写法。
也可使用 __ DATABASE __ 保留字指定外部数据库。例如,以下示例指定相同的表:
... __ FROM __ Table __ IN __ "" __ [dBASE __ IV; __ DATABASE=C:\DBASE\DATA\SALES;];
... __ FROM __ Table __ IN __ "C:\DBASE\DATA\SALES" __ "dBASE __ IV;"
注意
为改进性能并方便使用,请使用链接表而不要用 __ IN。
IN __ 子句示例
下列表显示您如何使用 __ IN __ 子句来捕获外部数据库的数据。在每一示例之中,假设客户表是保存在外部数据库之中。
外部数据库 __ SQL __ 语句 __
Microsoft® __ Jet __ 数据库 __ SELECT __ CustomerID
FROM __ Customers
IN __ OtherDB.mdb __
WHERE __ CustomerID __ Like __ "A*"; __
dBASE __ III __ 或 __ IV.
捕获数据由 __ 一 __ dBASE __ III __ 表,以 __ "dBASE __ III;" __ 替代 __ "dBASE __ IV;"。 __ SELECT __ CustomerID
FROM __ Customer
IN __ "C:\DBASE\DATA\SALES" __ "dBASE __ IV;"
WHERE __ CustomerID __ Like __ "A*"; __
dBASE __ III __ 或 __ IV __ 使用数据库语法。 __ SELECT __ CustomerID
FROM __ Customer
IN __ "" __ [dBASE __ IV; __ Database=C:\DBASE\DATA\SALES;] __
WHERE __ CustomerID __ Like __ "A*"; __
Paradox __ 3.x __ 或 __ 4.x.
若要由一Paradox __ version __ 3.x __ 表捕获数据,以 __ "Paradox __ 3.x;" __ 替代 __ "Paradox __ 4.x;"。 __ SELECT __ CustomerID
FROM __ Customer
IN __ "C:\PARADOX\DATA\SALES" __ "Paradox __ 4.x;"
WHERE __ CustomerID __ Like __ "A*"; __
Paradox __ 3.x __ 或 __ 4.x __ 使用数据库语法. __ SELECT __ CustomerID
FROM __ Customer
IN __ "" __ [Paradox __ 4.x;Database=C:\PARADOX\DATA\SALES;] __
WHERE __ CustomerID __ Like __ "A*"; __
Microsoft __ EXCEL工作表 __ SELECT __ CustomerID, __ CompanyName
FROM __ [Customers$] __
IN __ "c:\documents\xldata.xls" __ "EXCEL __ 5.0;"
WHERE __ CustomerID __ Like __ "A*"
ORDER __ BY __ CustomerID; __
在工作表之中的一个命名范围 __ SELECT __ CustomerID, __ CompanyName
FROM __ CustomersRange
IN __ "c:\documents\xldata.xls" __ "EXCEL __ 5.0;"
WHERE __ CustomerID __ Like __ "A*"
ORDER __ BY __ CustomerID;
-----------------------------------------------------------------------------------------------------
关于文本文件可以这样
| select __ * __ from __ [Text;FMT=Delimited;HDR=Yes;DATABASE=C:;].[aparm#txt];
关于在IN子句中查询文本文件如何写链接字串,你可以参考:
http://support.microsoft.com/default.aspx?scid=kb;en-us;234201∏=acc
关于Excel可以这样
insert __ into __ 表 __ SELECT __ * __ FROM __ [Excel __ 5.0;HDR=YES;DATABASE=c:\test.xls].[sheet1$];
说明:
c:\test.xls __ 是excel文件名
sheet1是要导入的工作表名