如何对 MDB 文件运行 SQL 查询?

Posted

技术标签:

【中文标题】如何对 MDB 文件运行 SQL 查询?【英文标题】:How do I run SQL queries on MDB files? 【发布时间】:2010-08-16 13:35:03 【问题描述】:

我需要对大型 MDB 文件 (~30mb) 运行 UPDATE 查询,可以吗?怎么样?

【问题讨论】:

有很多方法可以做到这一点,你选择哪一种取决于你想从哪里运行它们?访问用户界面? .net 应用程序?一个网络应用程序?其他类型的应用程序?请扩展您的问题。 30mb 不是很大的 mdb。 使用查询设计窗口构建您的查询。 删除、插入和更新的语法和我在 mysql 上使用的语法一样吗? 不完全是,例如你不使用反引号,但是 sql 将由设计器生成。对于更复杂的查询,您可以使用 SQL 视图,您的 MySQL 知识将有所帮助。 【参考方案1】:

正如 Remou 所说,使用查询设计器。

进入后,您可以随意拖放。

如果你真的想直接输入 SQL,你可以。您可以从设计视图切换到 SQL 视图并手动输入。

SQL 在 MS Access 上是相当标准的。其他 DB 上的某些内容您会认为是标准的一部分,但实际上并非如此,并且已经在 MS Access 方面实现了。在 MS Access 上,通配符可能与您预期的不同。 .mdb 和 .accdb 的默认值为“*”(ANSI-89),但也可能是“%”,因为您正在使用 ANSI-92 SQL(由 .adp 使用 - 访问数据项目)。 As a rule, you use the ANSI-89 wildcards when you run queries and find-and-replace operations against Access databases — .mdb and .accdb files. You use the ANSI-92 wildcards when you run queries against Access projects — Access files connected to Microsoft SQL Server databases.

您可能还习惯于在 MySQL 中嵌套查询。其中一些你不能在 MS Access 中做同样的事情 - 你已经做了一些有趣的解决方法来获得相同的效果。否则,它非常接近。这也可能与 ANSI-89 SQL 和 ANSI-92 SQL(及更高版本)之间的差异有关。

【讨论】:

它并不总是星号,它可以是百分比,这取决于您设置数据库使用的 SQL 版本。创建嵌套查询没有问题,您通常可以在 SQL 视图中设置它们后,在设计视图中查看它们。 你说得对...... MS似乎已将.adp的通配符更改为%(与.mdb相比-感谢#$%@#$%#$很多,还有一个原因不将任何内容升级到新版本)。经过进一步测试,我可以做 select * from (select * from bar); 以前不工作(万岁),但我仍然不能做 SELECT bar.* FROM bar where f1 in (select b1 from foo); 工作在其他数据库上。 根据反馈调整答案。 您混淆了通配符问题。这不是“* for mdb”。对 MDB 使用 ANSI-92 模式的任何操作都需要 % 和 _ 而不是 * 和 ?。见office.microsoft.com/en-us/access-help/… 更好。任何 Access db 格式的 ADO 操作仍然需要 ANSI-92 通配符……不管它是否是 MDB 以及数据库属性是否已设置为 ANSI 89 或 92(“SQL Server 兼容语法”)。这也适用于 A2007。关于 ADO 和通配符的困惑似乎困扰了很多人。请注意你对我母亲的暗示! :-)

以上是关于如何对 MDB 文件运行 SQL 查询?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C# 查询远程 MS ACCESS .mdb 数据库

mdb 工具 sql 查询表名空间分隔

如何在 SQL for MS Access 中实现分页?

Python如何连接有密码的Access数据库并且查询数据

如何从 SQL 查询中提取数据并将其分配给 Odoo 类列?

如何在 C# 中从 DB (*.mdb) 中删除一行