Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-查询/SQL语句

精通MS-ACCESS SQL之基础篇(15)

时 间:2017-12-05 10:35:02
作 者:Big Young   ID:252  城市:襄阳
摘 要:    运用SQL查询与另一数据库交换数据。
正 文:

    第十五节 运用SQL查询与另一数据库交换数据

在使用MS ACCESS进行数据库应用系统开发中通常是把前端与用户交互和程序逻辑的部分放在一个数据库文件中,而把数据放在后端的另一个数据库文件中,这样便于维护。另外,在实际的操作数据库的过程中有时也会遇到要在两个或多个数据库之间交换数据的情况。针对这些需求,ACCESS提供了多种途径实现的方法,不过在众多的方法中,用SQL来完成是最经济有效的手段。下面我们就来研究一下这个问题。

一、连接外部数据库表的SQL语法

ACCESS可以连接很多种外部数据库表,当然对自家的表是最拿手的了,它的SQL基本语法有两种形式,一种为外部数据库表作为目标表,就是数据将保存到其中的数据库表,其语法为:

[Select | Insert] INTO destination IN     {path | ["path" "MS ACCESS"] | ["" [MS ACCESS; DATABASE = path]]}

另一种是将外部数据库表作为源表,即作为数据的来源表,其语法为:

FROM tableexpression IN     {path | ["path" "MS ACCESS"] | ["" [MS ACCESS; DATABASE = path]]}

此带有IN子句的查询的几个部分的含义如下:

部分

说明

Destination

外部表的名字,数据插入其中的目标表。

Tableexpression

外部表的名字,此表作为数据的源。此参数既可以是一个表名也可以是一个查询

Path

包含外部数据表的库文件的完整路径。

MS ACCESS

代表数据类型,也可以是其它类型的数据库。如果是MS ACCESS数据库可以省略,只保留两个引号。

注意,当使用IN子句时,一个子句中一次只能使用一个表。MS ACCESS数据库分两种情况,一种有带密码保护的,另一种是没有密码保护的,下面先来学习下没密码保护的数据库的操作。

二、查询不带密码保护的外部ACCESS库表

这里,我们有一个名为“Test.accdb”的没有密码保护的数据库,它包含一个名为成绩1”的表,记录了一些学生的成绩信息,现在我们以Select查询为例来说明其应用。假如我们想查询成绩1”表中的全部记录,我们可以用以下SQL语句:

Select *

FROM 成绩1

IN 'D:\SQL for ACCESS\Test.accdb'

或:

Select *

FROM 成绩1

IN 'D:\SQL for ACCESS\Test.accdb' "MS ACCESS"

也可以是这样:

Select *

FROM 成绩1

IN "" [MS ACCESS;DATABASE=D:\SQL for ACCESS\Test.accdb]

三种形式的效果是一样的,只是写法不一样而已。

下面我们再来看一看有密码保护的外部数据库的访问。

三、用SQL访问有密码保护的外部数据库表

现在我们将“Test.accdb”复制到D盘的根目录中,用ACCESS以独占方式打开,然后设置密码保护,为了简化过程,我们将密码设置为“123456”,关闭当前打开的“Test.accdb”数据库。

新建一个数据库,创建一个新的SQL查询,输入如下SQL语句:

Select *

FROM 成绩1 IN '' [MS ACCESS;PWD=123456;DATABASE=D:\Test.accdb];

执行后观察,与前面显示的数据记录是一样的,表明有密码保护的数据库安全打开,操作完成。也可以用前面示例的没密码保护的数据库操作一样,写成多种格式的语句,只要加上“PWD=密码就可以了,这里就不再列出了,有兴趣的朋友可以自己测试。



Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助