1.09k likes | 1.25k Views
第 4 章 Visual FoxPro 的基本操作. 第 4 章 Visual FoxPro 的基本操作. 4-1 基本概念和操作. 4- 2 数据库. 4- 3 创建数据表. 4- 4 数据表的基本操作. 4- 5 查询与统计操作. 4-6 多工作区操作. 4-7 小结. 4-1 基本概念和操作. 4-1-1 Visual FoxPro 的基本操作方式 Visual FoxPro 与前期的数据库产品一样,都可以支持两类不同的基本操作方式,即交互式操作方式和程序操作方式。 1 .交互式方式
E N D
第4章 Visual FoxPro的基本操作 4-1 基本概念和操作 4-2 数据库 4-3 创建数据表 4-4 数据表的基本操作 4-5 查询与统计操作 4-6 多工作区操作 4-7 小结
4-1 基本概念和操作 4-1-1 Visual FoxPro的基本操作方式 Visual FoxPro与前期的数据库产品一样,都可以支持两类不同的基本操作方式,即交互式操作方式和程序操作方式。 1.交互式方式 Visual FoxPro的交互式操作方式有命令执行与界面操作两种类型。 命令执行方式与界面操作方式是一致的。许多的命令功能都可以通过相应的菜单选择来实现。事实上,当用户选择了某一菜单命令并执行它时,在命令窗口中便会自动显示与其对应的键盘命令,就好像用户通过键盘输入了该命令一样,所以在Visual FoxPro中,用户可以任意选用或交替使用这两种方法。
2.程序操作方式 程序执行方式就是将一系列的语句或命令存储在一个文件中而成为一个程序文件(.PRG),通过运行该程序文件,完成某些特殊的功能。程序操作方式不仅运行效率高,而且可重复执行。 可见,交互式操作方法虽然方便、灵活,但是当用户需要反复执行某些相同的命令序列,或处理较复杂的问题时就不能发挥计算机高速度、自动化运行的优势。为此,Visual FoxPro提供了程序执行方式来解决该问题。
4-1-2 命令操作的基本要求 1.命令的一般格式 为了熟练掌握各种命令的使用方法,首先要了解命令的语法规则,以便读者正确地使用命令。命令的一般格式如下所示: <命令关键字> [<范围>] [<表达式表>] [FOR<条件>] [WHILE<条件>] 2.命令书写规则 (1)文件命名方法 文件名由主文件名和扩展名两部分组成。主文件名由字符组成,字符可以包括字母、数字、下划线、连字符等。扩展名由“.”加3个字母组成,表示文件类型。
(2)本书命令、函数符号的约定 Visual FoxPro的命令和函数都是由一个或多个不同“成份”所组成,正是这些不同的“成份” 决定了每一条Visual FoxPro命令或每一个VFP函数的特定功能。在书写时,为了便于叙述,常引入下列几个符号,其约定如下。 l[]:其中的内容是可选项,不选时系统自动取默认值。但在程序输入时或在命令窗口中输入时均不书写这对“[]”,而只写其中参数的内容。 l<>:其中的内容是用户的选择项,通常有多种可能供用户选择一种。若<>不在[]内,则为必选项,即用户必须选择多种可能中的一种;若<>在[ ]内时,当不选“[ ]”中的内容时,其“<>”中的内容也不能选,而当选择“[ ]”中的内容时,其“[ ]”中的“<>”内的内容就为必选项。但在程序输入时或在命令窗口中输入时均不书写这对“[<>]”,而只写其中的参数的内容。 l/:为二选一表示符。要求用户从本符号的左右两项中选择一顶。同样,在命令或函数的输入中,“/”线也不要写。 l...:省略符。它表示在一个命令或函数表达式中,某一部分可以按同一方式重复。
3.命令格式的说明 从上述命令格式可以看到,Visual FoxPro命令主要由5个部分组成,各部分功能如下。 (1)命令关键字:是一个英文动词,是Visual FoxPro的命令名,用来指定计算机要完成的操作。例如STORE、LIST、COPY TO等都是命令关键字,分别表示定义内存变量、显示表的记录、复制表的内。 (2) 表达式表:表达式表子句是由数据和运算符一起构成的有意义的式子,各表达式表是一个或多个由逗号分隔开的表达式。该表达式在一般情况下由表中字段名构成。表达式除了可以是字段、字段名表外,还可以加进运算符,如“单价*1.05”也是一个表达式。
(3)范围子句: 范围子句用来指定命令可以操作的有效记录范围。范围可有下列四种选择: l ALL:指当前表中的全部记录 ; lNEXT <n>:指从当前记录开始的连续N条记录 ; lRECORD <n>:指当前表中的第N号记录; lREST: 指从当前记录开始到最后一条记录为止的所有记录 ; (4)FOR<条件>子句:对满足条件的记录进行操作,如果使用FOR子句,VPF6.0将记录指针重新指向表文件顶部,系统会用FOR条件与每条记录进行比较。
(5)WHILE <条件>子句:在表文件中,从当前记录开始,按记录顺序从上向下处理,一旦遇到不满足条件的记录,就停止搜索并结束该命令的执行。 FOR和 WHILE都是条件子句,但在默认范围选择项条件下主要有两点不同: lFOR子句是从首记录开始判断逻辑表达式是真还是假,而WHILE子句则从当前记录起判断条件是否成立; lFOR子句对逻辑表达式取真值的所有记录进行规则操作,不管这些记录是呈连续排列或是间断排列。而WHILE子句是从当前记录开始,只要遇到其逻辑表达式取假值就停止操作,不管其后是否有满足条件的记录。
4-1-3 命令的输入与编辑 1.命令的输入 在Visual FoxPro命令窗口中按命令的语法规则键入需要操作的命令,最后按下Enter键,就可以执行该命令了。 2.命令的编辑 命令窗口是一个可以编辑的窗口,可以在命令窗口中进行各种编辑操作,如插入、删除、拷贝、剪切等,或者用光标和滚动条在整个命令窗口中上下移动。这些特性对命令输入起了很大的帮助作用。比如要键入一个和上一次命令相似的命令,那么只需将光标移动到上一条命令上,然后输入或删除命令的不同部分,最后按下Enter键,就可以执行这条新命令了。
3.输入命令时的注意事项 (1) 命令关键字不能省略,必须是命令行的第一个英文动词,其它子句可以以任意顺序跟在其后,命令动词与各子句之间用一个或多个空格隔开,如: EDIT FIELDS 学号,姓名,班级 ALL FOR 高等数学>=85 EDIT ALL FIELDS 学号,姓名,班级 FOR 高等数学>=85 EDIT FOR 高等数学>=85 ALL FIELDS 学号,姓名,班级 (2) 命令动词和VISUAL FOXPRO保留字一般可用前4个或4个以上字母简写。如: DISPLAY MEMORYR DISPL MEMO DISP MEMO
(3) 当表达式中,由FIELDS引导字段名表时,字段名表中的各字段间必须用逗号分割,但逗号“,”必须是在英文状态下输入的西文逗号“,”。 (4) 命令、关键字、变量名和文件名中的字母既可以大写也可以小写,还可以大写、小写混合,三者等效。
(5) 虽然命令窗口可以上下左右滚动,也可以在一行把命令输完,但屏幕的左右滚动会很不方便,这时不妨尝试一下续行操作。输入命令时可以在命令的关键字或子句之间加分号(;),然后按回车键,再在下一行输入命令的剩余部分,这样就可以把一条长命令分成好多行来写。进行续行操作,应注意以下几点: l命令的最后一行不能以分号结尾。如: lREPLACE ALL 实发工资 WITH (基本工资+职务津贴+奖金-养老保险)*1.03 FOR 工龄>20 l当一条命令被分成多行输入时,如果想同时使用&&命令加入一些注释,此时注释不能出现在分号之后,而只能将注释放在命令的最后一行的后面。 l当准备执行一个被分成多行的命令时,可将光标放在该命令的任意一行上,然后按下Enter键。
4-1-4 设置格式 1.设置字体 在进行命令输入的过程中,可以通过改变命令窗口中的字体大小、行间距等清晰地显示每一条命令。用户可以使用“格式”菜单中的“字体”选项改变字体的大小。 2.设置行缩进 行缩进可以极大地改善被分成多行的命令的可读性。在命令窗口中为产生缩进效果,在输入命令前先按Tab键,当然也有可能需要多按几次TAB键,以产生更多的行缩进,这样接下来的行就自动产生相同的缩进。一旦在命令窗口中加入一个行缩进,那么接下来的行就可自动产生相同的缩进,不过此时需要按Ctrl+Enter将光标移到下一行,而不能用Enter键。 3.出错处理 在命令窗口输入命令时,会出现一些输入错误,在没发现之前按下回车键之后,系统会给出一个简单的提示。
4-2 数据库 4-2-1 数据库概念 如果想把多个表联系起来,就一定要建立数据库。只有把这些有关系的表存放在同一个数据库中,确定它们的关联关系,数据库中的数据才能被更充分地利用。数据库文件扩展名为:.dbc 4-2-2 创建数据库 利用“数据库设计器”建立数据库,操作方法是:在Visual FoxPro 系统主菜单下,进入“数据库设计”窗口,然后打开“数据库”菜单,对数据库进行各种操作或单击鼠标右键,弹出“数据库”快捷菜单,对数据库进行各种操作。还可以通过在“项目管理器”中创建数据库;由文件菜单创建数据库;通过命令建立数据库。
4-2-3 数据库的维护 1.数据库的打开和关闭 (1)由文件菜单打开和关闭数据库 打开一个已存在的数据库,操作方法是:打开“文件”菜单,选择“打开”,在“打开”窗口,在文件类型下拉框内,选择数据库类型,然后输入要打开的数据库名,再按“确定”按钮,进入“数据库设计器”窗口。 (2)通过命令对数据库进行操作 l打开一个数据库 【格式】 OPEN DATABASE <数据库文件名>|? 【功能】 打开一个数据库。 【举例】 在当前目录下打开“教职工”数据库。 open database D:\LIULI\教职工
l修改一个数据库 【格式】 MODIFY DATABASE <数据库文件名>|? 【功能】 修改编辑一个数据库。 【举例】 修改并编辑“教职工”数据库。 MODI data D:\LIULI\教职工 l删除一个数据库 【格式】 DELETE DATABASE <数据库文件名>|? 【功能】 删除一个数据库。 【举例】 删除指定路径D:\LIULI下的“教职工”数据库。 DELE data D:\LIULI\教职工
2.在数据库中添加表 有了数据库文件,就可以向数据库添加表了。通常数据表只能属于一个数据库文件,如果你想向当前数据库中添加的表已被添加到了别的数据库中,在加入你所建立的数据库之前,必须要从其它数据库中移去后才能添加到你的数据库中。 向数据库添加数据表,操作方法是:打开数据库在“数据库设计器”窗口,单击鼠标右键,弹出“数据库”快捷菜单,选择添加表;在“打开”窗口,选择要添加的表,返回“数据库设计器”窗口;重复操作可以将多个表添加到数据库中。
3.在数据库中移去/删除表 从数据库中移去或删除表,主要有以下两种方式: • 在“项目管理器”的“数据”选项卡中,选择“数据库”下方“表”中的“教师基本情况表”,然后单击“移去”按钮,在弹出的对话框中,选择“移去”或“删除”。 • 在“数据库设计器”中的预删除的表上单击鼠标右键,在弹出的快捷菜单中选择“删除”选项,或单击“数据库设计器”工具栏上的“移去表”按钮。也可将预添加的表文件从数据库中“移去”或“删除”。
4-3 创建数据表 4-3-1 数据表的概念 1.数据库与表的关系 • 数据表是存储记录数据的文件,是关系型数据库管理系统中处理数据的基本单元 • 数据表是由一组相关的数据按行和列排列的二维表格。 • 表文件扩展名为.DBF • 类型 自由表:不包含于任何数据库 数据库表:包含于某个数据库(两者关系) • 相关概念:字段,字段名,记录,数据库(.DBC) 2.字段的命名(P50) 3.字段的数据类型(P50)
※自由表和数据库表的关系 • 数据库表包含许多自由表没有的属性 • 数据库表和自由表可以相互转换 • 自由表添加到数据库中成为数据库表 • 数据库表移出数据库成为自由表 • 一个表只能属于一个数据库 • 如果要将表从一个数据库转到另一个数据库中,必须先将它移出前一个数据库,才能加入后一个数据库。
学生表示例 6个字段,字段名分别为:学号,姓名等 2条记录 12个字段值
4-3-2 创建表结构 可任意定义为数据库表或自由表 1. 创建表结构 • “项目管理器/数据” • “文件/新建/表/表向导” • “文件/新建/表/新建文件” • 命令:CREATE [<表名>] 若当前某数据库为打开状态,则创建的为数据库表,否则为自由表
创建表结构的几点说明 • 字段名以字母或汉字开头,由字母,数字,下划线和汉字组成 • 字段类型根据具体情况而定,字段值与字段类型要匹配 • 若为字段添加索引,在索引列中选择一种排序方式 • 字段的NULL列有一个钩,表示该字段可以接受NULL值
2. 添加数据表到项目中 • 在项目管理器的“数据”选项卡中,打开数据库 • 选择数据库下的表,单击“添加”,添加为数据库表 • 选择自由表,单击“添加”,添加为自由表 • 要添加的表必须具备下列条件 • 该表是一个有效的.DBF文件 • 表不允许与打开的数据库中已有的表同名 • 表不能同时放在另一个数据库中 • 要加入表的数据库必须具备下列条件 • 必须以独占方式打开。要想独占地打开一个数据库,在使用OPEN DATABASE命令时加入EXCLUSIVE子句
3.修改表结构 当建立了数据表结构之后,如果发现表结构有问题,可以利用表设计器来修改。 (1)修改字段(P53) (2)添加/删除字段(P53) (3)调整字段顺序(P53)
(1) 设置字段显示 4.设置字段属性 • 设置字段标题 • 系统默认,表的标题显示的是字段名。字段名的最大长度只有10个字符长,在进行浏览时,如果用户不进行字段标题的设置,有时难以概括清楚该名下数据的属性; • 为了在显示表中数据时浏览的清晰、方便,用户可以自定义字段标题。 • 标题的长度可达128个字符
例,打开学生选课数据库|打开学生表|打开“显示”菜单|选择“表设计器”,选定需要指定标题的字段,在标题框中对标题进行设置例,打开学生选课数据库|打开学生表|打开“显示”菜单|选择“表设计器”,选定需要指定标题的字段,在标题框中对标题进行设置 对学号字段设置标题
(2)为字段输入注释 • 对字段加以注释,以提醒自己或其它用户,清楚地掌握字段的属性、意义及特殊用途等 对字段加以注释
(3)设置字段的数据输入 • 设置默认字段值 • 为了提高表中数据输入的速度和准确性, • 设置字段数据的默认值时,注意字段的类型;字符型数据要加定界符“”,日期型数据要用到字符日期转换函数等 对入学时间设置默认值
(4)设置字段的格式和掩码 • 为提高表中数据输入的速度和准确性,除了定义字段的默认值外,还可以定义字段格式和掩码。如,学号字段只接受数字字符 对学号字段设置输入掩码
符 号 功 能 功 能 符 A 只能输入字母 D 日期型,只能使用系统设定格式 L 将数值前导的零显示出来 M 允许多项设置 R 显示文本框的掩码格式 T 禁止在字符串的前后输入空格 ! 小写字母转换为大写字母 格 式 符 X 可输入任何字符 9 可输入数字和正负号 # 可输入数字、空格和正负号 $ 在某一固定位置显示当前货币符号 $$ 显示的货币符号与数值连在一起 * 值的左侧显示“*”号 . 指定小数点的位置 , 小数点左部的整数部分按每三位用“,”分隔开 格式掩码中可用的功能符和格式符
(5) 设置字段的有效性规则 • 有效性规则和有效性说明 • 点击“字段有效性”中“规则”框的三点按钮…,可在表达式生成器中设置字段的格式 对学号字段设置规则 违反规则的出错信息
4-3-3 输入数据记录 • 记录的输入界面 • 立即输入:创建完表结构后,在输入数据记录对话框中选择“是”,如下图示 • 之后输入:打开表,选择“显示/浏览”,选择“显示/追加方式” 选择“是”,立即输入记录
2.输入记录时的注意事项 • 逻辑型字段宽度为1,只接受T,Y,F,N这4个字母之一(大小写均可) • 日期型数据必须与系统日期格式相符 SET DATE MDY可将系统日期格式转换为美国日期格式mm/dd/yy • 备注型与通用型字段的输入与编辑 • 备注型与通用型字段中已填有memo和gen等内容,等待输入有关数据。操作如下:
(1)把光标定位于“memo”或“gen”。 (2)按Ctrl+PgDn,Ctrl+PgUp或Ctrl+Home等组合键之一或双击鼠标,出现“memo”或“gen”编辑窗口。 (3)输入或编辑数据后,按Ctrl+W或单击关闭按钮,以储存数据和返回数据输入窗口;如果按Ctrl+Q或Esc键则放弃当前所输入的信息而返回。 (4)在备注型或通用型字段数据输入后,该记录的“memo”或“gen”中的第一个字母被改写成大写,变为“Memo”或“Gen”。 • 备注型与通用型字段值存储在与表文件同名,但扩展名为.FPT的备注文件中。
4-4 数据表的基本操作 4-4-1 打开和关闭表 1.打开表的菜单方式 单击“文件”菜单中的“打开”选项,打开“打开”对话框。选择将要打开的文件类型、文件名及其路径,然后单击“确定”按钮。 • 也可以用以下几种方式打开数据库即相关表 1)打开包含表的数据库,启动数据库设计器 2)双击要打开的表 3)选择显示模式 (1)单击 “显示”、“编辑”:编辑该表(edit ) 以分隔线将每一条记录分割开,字段按纵向排列。 (2)单击 “显示”、“浏览”:浏览该表(browse) 以一行显示一条记录,每一列显示一个字段。
2.打开、关闭表的命令方式 (1)打开表 【格式】USE <表文件名>| ? 【功能】在当前工作区打开一个表文件。 (2) 关闭表 【格式1】USE 【功 能】 关闭当前工作区中正打开的表文件及其索引文件。 【格式2】CLOSE [ALL|DATABASES] 【功 能】关闭各种类型文件。
3.退出VFP系统 (1)菜单方式 退出VFP系统的方式第2章介绍过,可选用以下任何一种方法退出VFP: l选择“文件”菜单中“退出”菜单项。 l鼠标单击Visual FoxPro6.0窗口右上角的关闭按钮。 l双击Visual FoxPro6.0主窗口左上角的“控制”菜单按钮。 l直接按Alt+F4组合键。 (2)命令方式 【格式】QUIT 【功能】关闭打开的所有文件,退出VFP系统返回到操作系统。
4-4-2 显示数据 1.表结构文件的修改 • 命令方式: USE <表名> MODIFY STRUCTURE • 菜单方式: 1.选定要打开的表:文件/打开 2.打开表设计器:显示/表设计器 修改字段内容 添加字段 按着拖动改变字段位置 删除字段
2.表文件结构的显示 命令方式 【格式】DISPLAY|LIST STRUCTURE [TO PRINTER|TO FILE<文件名>] 【功能】显示表文件的字段结构。
3. 表文件记录数据的显示 (1).命令的工作方式 <命令动词>[<范围>][<FIELDS子句>][<FOR子句>] [<WHILE子句>] 描述:在命令窗口中键入一条VFP命令回车后,该命令立即被执行,并将命令结果显示在VFP主窗口中。 范围:ALL:对表中全部记录进行操作; NEXT<N>:对从当前记录在内的以下连续N条记录进行操作; RECORD<N>:只对第N条记录进行操作; REST:对从当前记录到文件尾的所有记录进行操作。 FIELDS子句:指明当前操作涉及表的哪些字段,字段名间用“,”隔开
注意:FOR子句与WHILE子句均指明进行操作的记录的条件。其区别在于:注意:FOR子句与WHILE子句均指明进行操作的记录的条件。其区别在于: • 1.范围缺省时,FOR子句默认为ALL;WHILE子句则只从当前记录开始按条件筛选 • 2.当发现一个记录不满足条件时,FOR子句跳过该记录继续检查下去;WHILE子句则只操作到这个不满足条件的记录为止。 • 若两者同时出现,则优先处理WHILE子句 举例:LIST NEXT 5 FIELDS 学号,入学成绩 FOR入学成绩 >=600 说明: 1.命令以命令动词开头,且命令动词可缺省写为前4个字母 2.命令与子句,子句与子句,子句的各部分间须至少以一个空格隔开;且各子句的书写顺序任意
BROWSE[LAST] [FIELDS] <字段名表> [FOR <条件>] [FREEZE<字段名>][LOCK<数值表达式>] (2).查看表数据命令 功能:浏览或编辑表中数据 参数描述:FREEZE <字段名> :定义唯一允许修改的字段 LOCK <数值表达式>:当水平方向翻动屏幕时,屏幕左边连续出现不参加滚动的字段数 举例:显示学生表中所有记录的学号,姓名和入学成绩 USE 学生 BROW FIELDS 学号,姓名,入学成绩
LIST|DISPLAY[<范围>] [FIELDS <字段名表>] [FOR/WHILE <条件>] [TO PRINT] [OFF] • 功能:选择输出表文件中记录数据.也可用于显示表达式的值 • 说明:LIST与DISPLAY的区别 • <范围>与<条件>缺省时,LIST默认为ALL,DISPLAY为当前记录 • LIST为滚动方式输出,DISPLAY为分屏输出 举例:显示学生表中入学成绩>600分同学记录 USE 学生 LIST FOR 入学成绩>600
4-4-3 追加记录 菜单方式: 在浏览或编辑窗口环境中 • 选“显示/追加方式”,可自动在尾部追加N条记录 • 选“表/追加新记录”,只允许添加一条记录 • 选“表/追加记录”,从选定文件向当前表添加多条记录 命令方式: 格式一:APPEND [BLANK] 格式二:APPEND FROM <文件名>|? [FIELDS <字段名表>][FOR <条件>][SDF] 格式三:INSERT INTO<表名> [(字段1[,字段2,…])] VALUE [(表达式1[,表达式2,…])] 格式四:INSERT [BLANK][BEFORE]
说明: APPEND相当于:菜单方式1; APPEND BLANK相当于:菜单方式2; 命令方式的格式二相当于:菜单方式3; 在APPEND FORM 命令中,是否使用SDF子句,要根据文本文件中的数据格式来确定。 命令方式的格式四:用于在当前记录之前/后插入一条新记录
4-4-4 记录的删除与恢复 1.记录的逻辑删除 删除记录分两步进行:第一步将要删除的记录做删除标记,第二步才将记录真正从表中删除。 • 可在“浏览”或“编辑”窗口中删除记录 • 点击作删除标记 • 选“表/彻底删除”对打了删除标记的记录作真正删除 删除标记当再次单击时,为取消标记
若要有选择的删除一组记录,可单击“表/删除记录”,填写对话框。例如:若要有选择的删除一组记录,可单击“表/删除记录”,填写对话框。例如: 可将学生表中“入学成绩<600分”的所有记录作删除标记; 要作物理删除,再单击“表/彻底删除”。 2.记录的物理删除 (P62) 3.恢复被逻辑删除的记录(P62)
4.删除、恢复记录的命令方式 (1)逻辑删除命令 格式:DELETE [<范围>] [FOR <条件>] [WHILE <条件>] 2.取消删除标记命令 格式:RECALL [<范围>] [FOR <条件>] [WHILE <条件>] 3.物理删除命令 格式:PACK [DBF] [MEMO] 4. 删除全部记录命令 格式:ZAP ZAP命令 与 DELETE ALL 和PACK两条命令执行的结果相同,区别在于ZAP直接执行物理删除。