第 4章 数据库基本操作数 据 库 基 本 操 作第 4 章第 4章 数据库基本操作
4.1 建立数据库
4.2 建立数据库表与自由表
4.3 数据库中对表的操作
4.4 数据库与表的基本操作命令教 学 内 容第 4章 数据库基本操作
Visual FoxPro系统提供了多种创建数据库的方法 。
( 1) 通过,新建,对话框建立数据库;
( 2) 在项目管理器中建立数据库;
( 3) 使用交互命令建立数据库 。
4.1 建 立 数 据 库
4.1.1 数据库的建立第 4章 数据库基本操作
1,通过,新建,对话框建立数据库通过,新建,对话框建立数据库步骤如下:
(1) 在,文件,下拉菜单中,
选择,新建,命令项 ( 或单击工具栏上的,新建,按钮 ),弹出,新建,对话框;
如图 4.1所示 。
图 4.1,新建,对话框第 4章 数据库基本操作
(2)在,新建,对话框的,文件类型,
单选列表组框中选择
,数据库( D),,
单击,新建文件
( N),按钮;进入
,创建,窗口,输入数据库名,输入,学籍管理系统,。如图
4.2所示。
图 4.2,创建,数据库窗口第 4章 数据库基本操作
( 3) 输入数据库的名称后,单击,保存 ( S),按钮 。 这时会显示一个空的,数据库设计器,窗口,与此同时,,数据库设计器,工具栏将变为有效,菜单栏中出现,数据库,
菜单项 。 此时,数据库设计器,窗口如图 4.3所示 。
第 4章 数据库基本操作
2,使用,项目管理器,建立数据库用,项目管理器,建立数据库步骤如下:
(1) 在项目管理器的,数据,
选项卡中,选择,数据库,
选项;
(2) 单击,新建 ( N),按钮,显示,新建数据库,对话框,如图 4.4 所示 。 图 4.4,新建数据库,对话框第 4章 数据库基本操作
( 3)单击,新建数据库( N),按钮;进入,创建,窗口,
并选择,新建数据库,文件类型;
(4)输入数据库的名称,单击,保存,按钮;显示一个,数据库设计器,窗口 。
当输入的,数据库名,的数据库已经存在时,显示,操作提示,
对话框,如图 4.5所示 。 此时,单击,是 ( Y),按钮,改写原有的数据库 。 若将系统环境参数 SAFETY的值设置为 OFF,系统就不会提示用户确认,直接改写原有的数据库 。
第 4章 数据库基本操作
1,通过,文件,菜单打开数据库操作步骤
(1) 在,文件,下拉菜单中,选择,打开 ( O),命令项,弹出,打开,窗口;
(2) 在,打开,窗口的 文件类型文本框中选择,数据库
(*.dbc)”;
(3) 在,打开,窗口的,查找范围,框中选择要打开的数据库,或在文件名文本框中直接输入要打开的数据库名;然后单击,确定,按钮,打开数据库 。
2,使用项目管理器打开数据库在项目管理器的,数据选项卡,中,选择要打开的数据库,
数据库将自动打开 。
4.1.2 打开数据库第 4章 数据库基本操作
1.,数据库设计器,工具栏和,数据库,菜单项
,数据库设计器,工具栏如图 4.6所示 。 工具栏的 9个图形按钮,按从左到右顺序排列分别是:新建表,添加表,移去表,
创建新的远程视图,创建新的本地视图,修改表,浏览表,
编辑存储过程,连接 9个按钮 。
4.1.3 数据库设计器第 4章 数据库基本操作
4.2.1 数据库表与自由表的设计
4.2 建 立 数 据 库 表 与 自 由 表
1,表的结构设计
( 1) 表的数据结构,一个表应该有多少个字段 ( 或称为属性 )
来描述其具有的特性;
( 2) 表中的数据,记录每一个对象的记录值,是数据库中要管理和操作的数据 。
2,字段字段是二维表的一列 。 表中每一个字段都有一个名称,即字段名 。 字段名,字段类型和宽度第 4章 数据库基本操作
3、定义一个表现在,以第一章中表 1.1学生关系二维表,来定义一个
Visual FoxPro 6.0的表 。 表的名称取为:学生表,dbf。 表的数据结构有 7个字段:
学号,字符型,宽度 9个字节;
姓名,字符型,宽度 8个字节;
性别,字符型,宽度 2个字节;
是否党员,逻辑型,宽度 1个字节;
出生日期,日期型,宽度 8个字节;
电话,字符型,宽度 12个字节;
照片,通用型,宽度 4个字节;
第 4章 数据库基本操作数据库表是一个扩展名为,dbf的文件,如果表中有备注或通用型字段则还会有一个扩展名为,fpt的文件 。 通过对话框创建一个数据库表的操作步骤如下:
(1) 在,文件,下拉菜单中,选择,打开 ( O),命令项
( 或单击工具栏上的,打开,按钮 ),弹出,打开,对话框;如图 4.7所示 。
4.2.2 创建一个数据库表第 4章 数据库基本操作图 4.7,打开,对话框第 4章 数据库基本操作
( 2)在,打开,对话框中,在文件类型文本框中选择数据库( *.dbf ),在查找范围的文件列表框中选择要打开的,学籍管理系统,dbc”数据库文件,单击,确定,按钮;
( 3) 显示一个,学籍管理系统数据库设计器,窗口,单击数据库设计器工具栏中的,新建表,按钮,或打开,数据库,菜单,在,数据库,下拉菜单中,单击,新建表
( N),命令项;
( 4)系统显示,新建表,对话框;如图 4.8 所示。
第 4章 数据库基本操作
( 5)在
“新建表”对话框中,单击
“新建表( N)”
按钮;显示
“创建”对话框,如图 4.9所示。 图 4.8,新建表,对话框第 4章 数据库基本操作
( 6)在,创建,对话框的保存类型文本框中选择,表 /DBF
( *.dbf),;在输入表名文本框中输入要创建的数据库表名,
输入,学生表,;然后单击,保存,按钮,打开表设计器。
如图 4.10所示。
第 4章 数据库基本操作第 4章 数据库基本操作
( 7)在表设计器中,定义字段名、类型、宽度等;即在字段输入框中,按顺序输入学号、姓名等 7个字段的字段名、类型、宽度等定义数据; 完成定义后,会显示,现在输入数据记录吗?,提示框。如图 4.11所示。
( 8) 单击,是 ( Y),按钮,进入输入记录操作;单击
,否 ( N),按钮,暂不输入记录,建立的数据库是一个空表,
还没有数据记录的数据库表 。
第 4章 数据库基本操作
( 11)进入输入记录操作,显示,学生表,记录输入操作窗口,如图 4.12所示。
图 4.12,学生表,记录输入操作窗口第 4章 数据库基本操作在,学生表,记录输入操作窗口中,显示了学生表的 7个字段名,当前字段名后面有一条光带,表示在此输入字段的数值,输入数值后,按 Tab键或 Enter键光标移向下面一个字段的光带,用户按顺序输入各个字段的数值,当输入完一个记录的 7 个字段的数值后,进入下一个记录的数据输入 。 记录输入结束后,单击窗口右上角的,关闭,按钮或按 Ctrl+W
组合键,关闭窗口 。
输入备注字段数据时,首先双击该字段或按
Ctrl+PageDown组合键,进入文本编辑窗口,输入文本内容,
输入结束按 Ctrl+W组合键,关闭窗口,返回记录输入操作窗口 。
第 4章 数据库基本操作
1,自由表在 Visual FoxPro中要创建一个自由表时,应关闭所有的数据库,也就是说,如果当前没有打开数据库,则创建的表是自由表 。 自由表就是那些不属于任何数据库的表,
可以将自由表添加到数据库中,使之成为数据库表;也可以将数据库表从数据库中移出,使之成为自由表 。
4.2.3 创建自由表第 4章 数据库基本操作
3.数据库表与自由表的区别数据库表与自由表相比,具有如下特点:
可以为数据库表中的字段指定标题和添加注释;可以为数据库表的字段指定默认值和输入掩码;可以为数据库表规定字段级规则和记录级规则;
数据库表可以使用长表名,在表中可以使用长字段名;数据库表的字段有默认的控件类;数据库表支持主关键字,参照完整性和表之间的联系;支持 INSERT,UPDATE和 DELETE事件的触发器 。
第 4章 数据库基本操作
4.3.1 在数据库中添加表与移出表
4.3 数 据 库 中 对 表 的 操 作
1,向数据库中添加表
( 1) 在数据库设计器中将自由表添加到数据库中 。
从,数据库,下拉菜单中,选译,添加表( A) …” 命令项;
显示,打开,对话框,然后进行选择要添加到当前数据库的自由表,自由表的名称为,学生表,;选择好后,按,确定,按钮,学生表出现在,学籍管理系统,的数据库设计器中。
第 4章 数据库基本操作
( 2) 在项目管理器中将自由表添加到数据库 。
在项目管理器中,将要添加自由表的数据库展开,展显出表,并确认当前选择了,表,。
单击,添加,按钮,从弹出的,打开,对话框中,选择要添加到当前数据库的自由表,然后单击,确定,按钮 。
第 4章 数据库基本操作
2.从数据库中移出表当数据库不再需要某个表,或其它数据库需要使用此表时,
必须将该表从当前数据库中移出,使之成为自由表 。
在数据库设计器窗口,从数据库中移去表的操作步骤,
( 1) 在数据库设计器窗口,选定要从数据库中移去的数据库表 。
( 2) 从,数据库,下拉菜单中,选择,移去 ( R),
命令项 。 显示,移去操作,对话框,如图 4.15所示 。
第 4章 数据库基本操作
( 3) 在对话框中按,移去 ( r),按钮,选定的数据库表从当前数据库中移去,被移出的表成为自由表 。 如果选择,删除 ( d),,则不仅将选定的数据库表从数据库中移出,并且还从磁盘上删除该表,即该数据库表已不存在了 。
第 4章 数据库基本操作
4.3.2 使用浏览器使用浏览器,在浏览器窗口中可以进行浏览表中的数据、添加、删除和修改表中的记录等操作。
1,浏览数据库表在数据库设计器中选择要操作的表,从,数据库,下拉菜单中选择,浏览 ( B),命令项,打开浏览器窗口 。 浏览器窗口如图 4.16所示 。
第 4章 数据库基本操作浏览器窗口中,显示了当前数据库表,学生表,的数据,
表中共有 11条记录。表中记录前带有,?” 符号的,表示该记录为当前记录。
第 4章 数据库基本操作
2.修改记录在浏览器窗口中,将光标定位在要修改的记录和字段值上,
直接输入数据,修改即可 。
3,添加记录
( 1) 添加一条空白记录 。
在浏览器窗口中,从,表 ( A),下拉菜单中,选择,追加新记录 ( N),命令项,
( 2) 将其它数据库表中记录添加到当前的数据库表中 。
在浏览器窗口中,从,表 ( A),下拉菜单中,选择,追加记录 ( A) …,命令项,显示,追加来源,对话框,指定文件类型以及文件名,然后按,确定,按钮第 4章 数据库基本操作
4,删除记录
Visual FoxPro 6.0删除记录,分为逻辑删除记录和物理删除记录两种。
( 1)对当前记录逻辑删除。
在浏览器窗口中,从,表( A),下拉菜单中选择,切换删除标记( T),命令项,
( 2)对表中一组记录作逻辑删除。
在浏览器窗口中,从,表 ( A),下拉菜单中选择,删除标记 ( D),命令项,系统显示,删除,对话框,如图 4.17所示 。
第 4章 数据库基本操作在,删除,对话框中,通过作用范围 ( S),可以指定对当前记录开始以下若干个记录作逻辑删除;通过 For/While 输入框,指定作逻辑删除的条件,对表中满足条件的所有记录作逻辑删除 。
图 4.17,删除,对话框第 4章 数据库基本操作
( 3) 作记录物理删除 。
在浏览器窗口中,从,表 ( A),下拉菜单中选择,彻底删除标 ( M),命令项,系统显示,删除提示,对话框,如图
4.18所示 。 单击,删除提示,对话框中的,是,按钮,将带有逻辑删除标记的记录真正从表中删除掉 。
图 4.18,删除提示,对话框第 4章 数据库基本操作打开该数据库表设计器,进行以下修改表结构的操作 。
1,修改表中已有字段在数据库设计器的,字段,选项卡中,显示了表中各个字段名称,类型和宽度的数据,可单击要修改的数据项,直接输入新的数值即可 。
2,增加新字段将光标移到,字段,选项卡中显示的最后一个字段后,
输入新字段名,数据类型和宽度数据 。 就完成了一个新字段的增加操作 。
4.3.3 修改表结构第 4章 数据库基本操作
3,插入新字段将光标移到,字段,选项卡中要插入新字段的位置,
然后单击,插入 ( M),按钮,显示插入一个新字段的空行,在新字段的空行中输入新字段名,数据类型和宽度数据 。
4,删除字段将光标定位到,字段,选项卡中要删除的字段上,单击,删除 ( D),按钮,该字段的定义数据从,字段,选项卡中消失 。
第 4章 数据库基本操作
4.4 数据库与表的基本操作命令
1,建立数据库命令格式为:
CREATE DATABASE <数据库名 >
命令功能是创建一个数据库 。 数据库建立后处于打开状态 。
2,打开数据库命令格式为:
OPEN DATABASE [ < 数 据 库 名 > |? ]
[EXCLUSIVE|SHARED] [NOUPDATE] [VALIDATE]
命令的功能是打开指定的数据库,若没有指定数据库名,
带,?”,将显示可以打开的数据库,由用户选择确认 。
4.4.1 数据库的基本操作第 4章 数据库基本操作
1,建立表命令格式为:
CREAT < 数据库表名 >
命令功能是创建一个数据库表,数据库表建立后,处于打开状态 。
2,打开数据库表命令格式为:
USE [ < 数据库表名 > ]
命令功能是打开指定的数据库表,如果没有 < 数据库表名 >
短语,则关闭当前正在使用的数据库表 。
4.4.2 表的建立与表结构修改第 4章 数据库基本操作
3,修改数据库表结构命令格式为
MODIFY STRUCTURE
命令功能是打开指定的数据库表设计器,通过数据库表设计器选项卡中参数的重新设置,来修改数据库表结构 。
4.4.3 表的浏览与显示
1,浏览数据库表命令格式为,BROWSE
命令功能是以浏览方式显示指定的数据库表中数据,在此方式下可以对表中的记录进行添加,删除和修改操作 。
第 4章 数据库基本操作
2,显示表的数据命令格式为:
LIST/ DISPLAY [ < 范围 >] [ [FIELDS]< 字段名表
> ] [ FOR < 条件 > ] [OFF]
[ TO PRINTER [ PROMPT ]| TO FILE < 文件名 > ]
命令功能是显示当前数据库表指定范围内所有满足条件的记录 。 LIST 命令为连续显示命令执行结果; DISPLAY命令显示满屏时,暂停显示命令执行结果,按任一键继续显示 。
3,显示表的结构命令格式为:
LIST STRUCTURE [ TO PRINTER | TO FILE < 文件名 > ]
命令功能是显示当前数据库表的结构,包括字段定义数据,记录数,更新时间等相关信息 。
第 4章 数据库基本操作例 4.1 打开名为,教学管理数据库,的数据库,打开 名为
,学生表,的数据库表,显示表中所有记录,显示表中所有男学生的记录,实现操作的命令序列如下:
OPEN DATABASE 教学管理数据库
USE 学生表
LIST && 或使用命令,DISPLAY ALL
DISPLAY ALL FOR 性别= ’ 男 ’
例 4.2 打开 名为,学生表,的数据库表,显示表的结构,实现操作的命令序列如下:
USE 学生表
LIST STRUCTURE
执行命令序列后,显示的信息如下:
第 4章 数据库基本操作第 4章 数据库基本操作
4.4.4 记录定位一个数据库表被打开后,系统自动地为该数据库表设置一个记录指针,指针用来存放一个记录号,表示指针所指向的记录,该记录称为当前记录 。 记录定位操作就是移动记录指针到数据库表的指定的记录上 。
1,记录绝对定位 命令格式为:
GO/GOTO < 记录号 > | TOP | BOTTOM
命令功能是将记录指针直接定位到指定的记录 。 GOTO和 GO命令是等价的 。
第 4章 数据库基本操作
2,记录相对定位记录相对定位命令格式为:
SKIP [ n ]
命令功能是以当前记录位置为基准,将记录指针向前或向后移动,指针移动记录个数由数值 n来确定 。 n是正整数,则向表尾方向移动; n是负整数,则向表头方向移动;
默认数值是 1,则向表尾方向移动一个记录 。
第 4章 数据库基本操作
3,条件定位条件定位命令格式为:
LOCATE [ < 范围 > ] FOR [ <条件表达式 > ]
命令功能是将记录指针定位在指定范围内满足条件的第一条记录上,如果没有满足条件的记录则指针指向文件结束位置 。
如果缺省范围,指所有记录 。
指针定位成功后,如果要使指针指向下一条满足条件的记录,应使用 CONTINUE命令 。
为了判别 LOCATE或 CONTINUE命令是否找到了满足条件的记录,可以使用函数 FOUND( ),如果有满足条件的记录,
该函数返回真 (,T.),否则返回假 (,F.) 。
第 4章 数据库基本操作
4,与记录定位相关的系统测试函数
( 1) 表文件尾测试函数,EOF ( [ < 数据库表名 >] )
( 2) 表文件首测试函数,BOF( [ < 数据库表名 > ] )
( 3) 记录号测试函数,RECNO([ < 数据库表名 > ])
( 4) 记录个数测试函数,RECCOUNT([< 数据库表名 >])
( 5) 记录删除测试函数,DELETED([< 数据库表名 >])
第 4章 数据库基本操作例 4.3 打开 名为,学生表,的数据库表,将记录指针指向 3
号记录,显示该记录的数据,显示当前记录号,测试记录指针是否指到文件头,实现操作的命令序列如下:
USE 学生表
GO 3 && 记录指针指向 3号记录
DISPLAY && 显示 3号记录的数据
RECNO( ) && 显示结果为,3,即当前记录指针仍指向 3号记录
BOF( ) && 显示结果为,.F.
第 4章 数据库基本操作
1,对单个记录的编辑修改命令格式为:
EDIT /CHANGE [ < 范围 > ] [ [FIELDS]< 字段名表 > ]
[FOR < 条件表达式 >]
命令功能是在指定范围内对满足条件的记录的指定的字段进行编辑修改 。 < 范围 >的默认值是当前记录 。
2,记录替换命令格式为:
REPLACE < 字段名 1 > WITH < 表达式 1> [,< 字段名 2
> WITH < 表达式 2>] … [ < 范围 > ] [FOR < 条件表达式 >]
命令功能是在指定范围内对满足条件的记录直接用 <表达式
>的值替换字段的值,一次允许替换多个字段的值 。 如果缺省参数,则只对当前记录作替换 。
4.4.5 记录的编辑、修改及替换第 4章 数据库基本操作例 4.4 打开名为,学生表,的数据库表,将 6号记录的姓名曾巩林替换成曾琳琳,性别男替换成女,显示该记录的数据,实现操作的命令序列如下:
USE 学生表
REPLACE 姓名 WITH?曾琳琳 ’,性别 WITH?女 ’ RECOD
6
Go 6
DISPLAY && 显示替换以后的 6号记录,显示结果如下:
第 4章 数据库基本操作
1,追加记录命令格式为,APPEND
命令功能是在当前表的尾部追加记录,交互输入新记录的数据,一次可以连续输入多条记录 。
2,追加一条空白记录命令格式为,APPEND BLANK
命令功能是在当前表的尾部增加一条空白记录,然后可以用
EDIT,CHANGE或 BROWSE命令交互修改空白记录的值,或用
REPLACE命令直接替换该空白记录的值 。
3,插入记录命令格式为:
INSERT [BEFORE] [BLANK]
4.4.6 记录的追加、插入与删除第 4章 数据库基本操作例 4.5 打开名为,学生表,的数据库表,在 6号记录的后面插入一个空白记录,然后,一次显示 6号至 9号记录的数据,实现操作的命令序列如下:
USE 学生表
GO 6
INSERT BLANK && 在 6号记录后面插入空白记录
GO 6 && 记录指针重新指向 6号记录
DISPLAY NEXT 4
第 4章 数据库基本操作
1,记录的逻辑删除命令格式为:
DELETE [ < 范围 > ] [FOR < 条件表达式 >]
命令功能是对当前数据库表中,指定范围内满足条件的记录作删除标记,如果缺省所有短语,则只给当前一条记录作删除标记 。
2,恢复逻辑删除记录命令格式为:
RECALL [ < 范围 > ] [FOR < 条件表达式 >]
在当前数据库表中恢复指定范围内满足条件的记录,即去掉原来所带的记录删除标记,如果缺省短语,则只恢复当前一条记录 。
4.4.7 记录的删除第 4章 数据库基本操作
3,物理删除带有删除标记的记录物理删除带有删除标记记录的命令格式为,PACK
命令功能是将所有带有删除标记的记录从表中被物理地删除,被物理删除的记录,不可以恢复 。
4,物理删除表中的全部记录物理删除表中的全部记录的命令格式为,ZAP
命令功能是物理删除表中的全部记录,即该表成为一个无记录的空表 。
第 4章 数据库基本操作例 4.6 打开名为,学生表,的数据库表,首先物理删除 7
号空白记录,再对所有女学生记录作逻辑删除,然后,显示表中所有记录,实现操作的命令序列如下:
USE 学生表
DELETE RECORD 7 && 逻辑删除 7号空白记录
PACK && 物理删除 7号空白记录
DELETE ALL FOR 性别= ’ 女 ’
LIST && 显示结果如下,所有女学生记录都带有删除标记第 4章 数据库基本操作
1.统计记录个数统计记录个数命令格式为:
COUNT [ < 范围 > ] [FOR < 条件表达式 >]
[ WHILE<条件表达式 > ] [ TO < 内存变量名 >]
命令功能是统计当前数据库表中指定范围内满足条件的记录个数,可以将统计结果存入内存变量中 。
4.4.8 统计与汇总第 4章 数据库基本操作
2.对表中数值字段求和对数值字段求和命令格式为:
SUN [ < 数值字段名表 > ] [ TO < 内存变量名表 >]
[ < 范围 > ] [FOR < 条件表达式 >] [ WHILE<条件表达式
> ]
命令功能是对当前数据库表中指定范围内满足条件的记录,
累加 < 数值字段名表 >指定的数值字段的值,是按列求数值的代数和 。 将求和结果分别存入内存变量中 。
命令中 < 范围 >的默认值为 ALL。 如果无 < 数值字段名表 >
短语,则对数据库表中所有数值字段求和 。
第 4章 数据库基本操作
3.对表中数值字段求平均值对数值字段求平均值命令格式为:
AVERAGE [ < 数值字段名表 > ] [ TO < 内存变量名表 >]
[ < 范围 > ] [FOR < 条件表达式 >] [ WHILE<条件表达式 > ]
命令功能是对当前数据库表中指定范围内满足条件的记录,计算 < 数值字段名表 >指定的数值字段的算术平均值,是按列求数值的平均值 。 将求和结果分别存入内存变量中 。
命令中 < 范围 >的默认值为 ALL。 如果无 < 数值字段名表 > 短语,则对数据库表中所有数值字段求平均值 。
第 4章 数据库基本操作
4.数组应用实例例 4.11打开,学生表,数据库表,将表中第 5,6,7号 3个记录的数据,存放到二维数组 sjkb中,并显示存放的 3个记录的数据 。 实现操作的命令序列如下:
USE 学生表
GO 5
DIME SJKB(3,6)
COPY TO ARRAY SJKB NEXT 3
DISP MEMO
显示的结果数据如下:
第 4章 数据库基本操作第 4章 数据库基本操作例 4.12 给一维数组的数组元素赋值,然后,数组中的数值作为一条记录添加到,学生表,数据库表中,显示该记录的数值。实现操作的命令序列如下:
USE 学生表
DIME SZB(6)
SZB(1)="1999209"
SZB(2)="王敏敏 "
SZB(3)="女 "
SZB(4)=.f.
SZB(5)={10/05/80}
SZB(5)={^1980-10-05}
SZB(6)="8882999"
APPEND FROM ARRAY SZB
DISPLAY
第 4章 数据库基本操作例 4.13 将,学生表,数据库表中第 5号记录的数据,存放到一维数组 YWSZ中,显示一维数组的数组元素值 。 实现操作的命令序列如下:
USE 学生表
GO 5
SCATTER TO YWSZ
DISP MEMO
第 4章 数据库基本操作