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

全面掌握MS ACCESS SQL(51)

时 间:2018-02-01 10:22:33
作 者:Big Young   ID:252  城市:襄阳
摘 要:    在ACCESS中用SQL操作DBF数据库。
正 文:

第四节 用SQL操作DBF数据库

DBF是一种数据库格式的文件,FoxbaseDbaseVisual FoxPro等数据库管理系统所产生的数据库文件。DBF数据库是常用的桌面型数据库,它曾经被各企业、事业单位广泛使用。现在,虽然已经有了很多的各种各样的小、中、大型数据库,DBF数据库依然被很多单位用于数据交换。

DBF数据库文件的版本众多,对ACCESS来说并不直接支持高版本的DBF文件,只支持DBASE IIIDBASE IVDBASE 5.0这几个版本,其它高版本的不内植支持,需要另外安装VISUAL FOXPRO的驱动并通过ADO组件进行访问,因而在ACCESS SQL中我们用SQL语句只能直接访问DBASE IIIDBASE IVDBASE 5.0这几种格式的DBF文件,下面我们就以DBASE IV格式的为例来说明用SQL操作DBF数据的具体用法。

一、SQL操作DBF数据库的完整语法

dbfFile IN "" [dBASE IV;DATABASE=path;]

或者:

[dBASE IV;DATABASE=path;].dbfFile

这里“dBASE IV”是数据库类型,可以用“DBASE III”或者“DBASE 5.0”替换,来读取或者生成不同版本的DBF数据库文件;“DATABASE=path”用于指明DBF文件所处的位置,需要是完整的文件路径;“dbfFile”指的是将被访问的DBF数据文件的名字,由于DBF起源于DOS系统,文件名应遵循8.3结构的规则,就是主文件名最多8个英文字符,扩展名为DBF

二、用ACCESS SQL创建DBF数据库表文件

下面我们来创建一个新的DBF数据库表文件,SQL语句如下:

Create TABLE [dBase IV;DATABASE=D:\SQL for ACCESS\].[成绩.dbf]

(

  考生号 TEXT(15),

  姓名   TEXT(8),

  语文   INTEGER,

  数学   INTEGER,

  英语   SHORT,

  综合   SHORT

);

这个语句执行后,会在指定的目录“D:\SQL for ACCESS\”下创建一个名为成绩.dbf”的表文件。这里需要说明的是:在此类创建或修改的SQL定义语句中不能使用“IN”关键字,只能使用格式串.库表文件名的格式,而且在语句中也不是所有的支持ACCESS特性的关键字都能用。

三、用ACCESS SQL修改DBF数据库表文件

对于创建的DBF表文件,我们还可以用SQL对其进行修改,如添加字段:

Alter TABLE [dBase IV;DATABASE=D:\SQL for ACCESS\].[成绩.dbf]

ADD COLUMN 总分 SHORT;

或者删除字段:

Alter TABLE [dBase IV;DATABASE=D:\SQL for ACCESS\].[成绩.dbf]

Drop COLUMN 总分;

这里要注意,由于两种数据库的数据类型不一定完全一样,因而不能对外部DBF文件中的已有字段进行修改,也就是说我们对DBF文件的修改只限于增添字段或删除字段。

四、用SQLDBF表中追加记录

1、追加一条记录

Insert INTO (dBase IV;DATABASE=D:\SQL for ACCESS\) 成绩.dbf ( 考生号, 姓名, 语文, 数学, 英语, 综合 )

VALUES ('10420601118888', '张三', 120, 105, 100, 230);

2、追加多条记录

Insert INTO (dBase IV;DATABASE=D:\SQL for ACCESS\) 成绩.dbf

Select *

FROM tbltemp;

追加时应与目标表中的数据类型与长度相匹配,不然会出错或丢失数据。

五、用ACCESS SQL更新DBF表中的数据

Update [dBase IV;DATABASE=D:\SQL for ACCESS\].成绩.dbf SET 姓名 = '万岁'

Where 考生号='10420601110130';

此语句将“成绩.dbf”表中的考生号“10420601110130”的记录中的姓名列更新为万岁

六、用SQL删除DBF库表文件中的记录

Delete *

FROM [dBase IV;DATABASE=D:\SQL for ACCESS\].成绩.dbf

Where 考生号='10420601110129';

七、用ACCESS SQL语句删除DBF文件

Drop TABLE [dBase IV;DATABASE=D:\SQL for ACCESS\].[成绩.dbf];

关于从DBF文件中查询或导出数据到ACCESS的表中的示例,由于此类语句比较常见,这里就不再一一列举了,留给大家自己去测试吧。





Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

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