如何对 sql 进行选择查询并访问数据库?

Posted

技术标签:

【中文标题】如何对 sql 进行选择查询并访问数据库?【英文标题】:How to make a select query for sql and access databases? 【发布时间】:2009-10-19 10:21:44 【问题描述】:

使用 SQL Server 2000 和 Access 2003

Access Database Name - History.mdb 
Access Table Name - Events

SQL Database Name - Star.mdf
SQL Table Name - Person

我想从人员表中获取字段,并通过使用内连接包含在事件表中

尝试查询

Select * from Events inner join person where events.id = person.id

那么如何查询access和sql数据库。

我只想在访问中进行选择查询。不是 sql 数据库。

需要查询帮助?

【问题讨论】:

Gropal,我同意下面的 cmets 在 ms-access 中重新创建一个链接到 SQL 服务器表的表。如果 Person 表很大,请确保您在 person.id 上有一个索引,否则每次查询运行时 ms-access 都会在网络上执行全表扫描。 【参考方案1】:

虽然您可以(可能,应该 -- 为什么?)使用链接表,但剥猫皮的方法不止一种。这是另一种方法:将连接详细信息放入查询测试中,例如像

SELECT * 
  FROM [ODBC;Driver=SQL Server;SERVER=MyServer;DATABASE=Star;UID=MyUsername;Pwd=MyPassword;].Person AS P1 
       INNER JOIN 
       [MS Access;DATABASE=C:\History;].[Events] AS E1
          ON S1.seq = S2.seq
 WHERE E1.id = P1.id;

【讨论】:

您能否准确解释一下您认为该方法何时有用?对于绝大多数情况,链接表更容易管理。我认为将连接字符串隐藏在 SQL 字符串中确实存在问题,无论是作为保存的 QueryDefs 存储,还是作为表单/报告中的 Recordsources/Rowsources 存储,以及在 VBA 代码中。将链接表作为一个可以像在 Access 数据库中一样使用的对象更加简洁。 我不能。您可能是对的:我认为将 SQL 代码隐藏在字符串中确实存在问题,无论是作为 Recordsources/Rowsources 存储在表单/报告中还是在 VBA 代码中;将 SQL 代码作为对象(VIEW 或 PROCEDURE)用于整个应用程序和任何其他将使用您的数据库的应用程序(这发生如果数据库在企业中成功)。请编辑以添加您喜欢链接表的原因:) 我在哪里运行这种查询?【参考方案2】:

您可以在 Access 中为您的 SQL Server 设置链接表,有关如何执行此操作的说明在 Access 版本中略有不同。查看“链接表”的帮助文件,如果您有 Access 2007,请转到 here。

一旦您设置了链接表,您就可以在查询中访问 SQL Server 表。请注意,优化链接表连接需要一些工作。

【讨论】:

【参考方案3】:

您可以在 Access 中创建一个链接表,该表指向 SQL 中的表。其余的您可以在查询设计器中实现。

【讨论】:

【参考方案4】:

您应该将 msaccess 数据库添加为远程服务器。 那你就可以加入了

【讨论】:

抱歉,我错过了说您希望查询在 ms 访问中进行的部分。在这种情况下,使用其他答案中建议的链接表

以上是关于如何对 sql 进行选择查询并访问数据库?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 sql 中设置变量并在选择查询中使用它来显示和执行对该变量的操作(MAX MIN)?

如果输入一条查询一张表的sql语句,但数据库执行缓慢,如何并采取啥样的方法对数据库进行优化?

使用SQL语句如何对Excel工作表数据进行查询

如何访问 Access 中的选定行?

如何在同一个sql查询中更新和选择记录

数据库小技能:查询