您的位置:首页 > 数据库

Excel中使用SQL时的表引用规则

2013-10-08 20:37 239 查看

Excel可以获取多种数据库中的数据,在表的引用规则方面也存在一定的差异,在书写SQL查询语句时需要引起注意。下面将介绍几种常用表的引用方法。

1.Excel工作表引用规则

Excel工作表在引用时需要将其包含在方括号内“[]”,同时需要在其工作表名称后面加上“$”符号,如:

SELECT * FROM [Sheet1$]

如果要引用工作表中的部分区域,则可以在“$”符号后面添加区域限定。例如,下面的语句表示引用Sheet1的A1:A3区域。

SELECT * FROM [Sheet1$A1:C3]

如果需要在当前工作簿中引用其他工作簿中的工作表,则需要在工作表名称前面加上文件名称限定,文件名包含在方括号内,文件名与工作表之间使用“.”分隔。如:

SELECT *

FROM [D:\MyBooks\8\产品信息new.xlsx].[Sheet1$]

2.SQL Server表引用规则

在引用SQL Server数据库表时,无需将表名称包含在方括号内,名称后面也不需要添加“$”符号。自SQL Server 2005开始引入了架构管理方式,如果在一个数据库中有多个对象具有相同的名称,则应使用架构名称来限定表名称。例如,假设Schema1和Schema2架构都含有一个名为TableX的表,而下面的语句明确指定要引用Schema1中的TableX表:

SELECT *
FROM Schema1.TableX

如果所引用的表不是在当前数据库中,则应当以数据库和架构来限定对象名称。例如,下面的语句明确指定要引用AdventureWorks数据库中的Purchasing.ShipMethod表:

SELECT *
FROM AdventureWorks.Purchasing.ShipMethod

如果FROM子句中所指定的表和视图存在相同的列名,则应当使用表或视图名称来限定列名。例如,下面语句所生成的结果集合由Customer表的CustomerID列和Store表的Name列组成,在指定连接条件时,为CustomerID分别使用了Sales.Customer和Sales.Store限定。

SELECT Sales.Customer.CustomerID, Sales.Store.Name
FROM Sales.Customer

JOIN Sales.Store

ONSales.Customer.CustomerID = Sales.Store.CustomerID
WHERE Sales.Customer.TerritoryID = 1

3.Access表引用规则

与引用SQL Server数据库表相同,引用Access表时也无需将表名称包含在方括号内,名称后面也不需要添加“$”符号。

当需要在SQL查询中引用当前连接Access数据库之外的其他Access数据库表时,需要在表名称前面加上数据库文件名称限定,文件名包含在方括号内,文件名与工作表之间使用“.”分隔。例如,下面的语句表示对“D:\MyBooks\8”目录下DB.accdb数据库的HumanResources_Department表执行查询。

SELECT *

FROM [D:\MyBooks\8\DB.accdb].HumanResources_Department
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: