为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 刘丽VFP书配套PPT第4章 VFP的基本操作

刘丽VFP书配套PPT第4章 VFP的基本操作

2009-03-03 50页 ppt 894KB 26阅读

用户头像

is_174731

暂无简介

举报
刘丽VFP书配套PPT第4章 VFP的基本操作nullnull第4章 Visual FoxPro的基本操作null 4-1 基本概念和操作 4-2 数据库 4-3 创建数据表 4-4 数据表的基本操作 4-5 查询与统计操作 4-6 多工作区操作 4-7 小结第4章 Visual FoxPro的基本操作4-1 基本概念和操作4-1 基本概念和操作4-1-1 Visual FoxPro的基本操作方式 Visual FoxPro与前期的数据库产品一样,都可以支持两类不同的基本操作方式,即交互式操作方式和程序操作方式。 1.交互式...
刘丽VFP书配套PPT第4章 VFP的基本操作
nullnull第4章 Visual FoxPro的基本操作null 4-1 基本概念和操作 4-2 数据库 4-3 创建数据表 4-4 数据表的基本操作 4-5 查询与统计操作 4-6 多工作区操作 4-7 小结第4章 Visual FoxPro的基本操作4-1 基本概念和操作4-1 基本概念和操作4-1-1 Visual FoxPro的基本操作方式 Visual FoxPro与前期的数据库产品一样,都可以支持两类不同的基本操作方式,即交互式操作方式和程序操作方式。 1.交互式方式 Visual FoxPro的交互式操作方式有命令执行与界面操作两种类型。 命令执行方式与界面操作方式是一致的。许多的命令功能都可以通过相应的菜单选择来实现。事实上,当用户选择了某一菜单命令并执行它时,在命令窗口中便会自动显示与其对应的键盘命令,就好像用户通过键盘输入了该命令一样,所以在Visual FoxPro中,用户可以任意选用或交替使用这两种方法。 null2.程序操作方式 程序执行方式就是将一系列的语句或命令存储在一个文件中而成为一个程序文件(.PRG),通过运行该程序文件,完成某些特殊的功能。程序操作方式不仅运行效率高,而且可重复执行。 可见,交互式操作方法虽然方便、灵活,但是当用户需要反复执行某些相同的命令序列,或处理较复杂的问题时就不能发挥计算机高速度、自动化运行的优势。为此,Visual FoxPro提供了程序执行方式来解决该问题。 4-1-2 命令操作的基本要求4-1-2 命令操作的基本要求1.命令的一般格式 为了熟练掌握各种命令的使用方法,首先要了解命令的语法规则,以便读者正确地使用命令。命令的一般格式如下所示: <命令关键字> [<范围>] [<表达式表>] ; [FOR<条件>] [WHILE<条件>] 2.命令书写规则 (1)文件命名方法 文件名由主文件名和扩展名两部分组成。主文件名由字符组成,字符可以包括字母、数字、下划线、连字符等。扩展名由“.”加3个字母组成,表示文件类型。 null(2)本书命令、函数符号的约定 Visual FoxPro的命令在书写时,为了便于叙述,常引入下列几个符号,其约定如下。 l []:其中的内容是可选项,不选时系统自动取默认值。但在程序输入时或在命令窗口中输入时均不书写这对“[]”,而只写其中参数的内容。 l <>:其中的内容是用户的选择项,通常有多种可能供用户选择一种。若<>不在[]内,则为必选项,即用户必须选择多种可能中的一种;若<>在[ ]内时,当不选“[ ]”中的内容时,其“<>”中的内容也不能选,而当选择“[ ]”中的内容时,其“[ ]”中的“<>”内的内容就为必选项。但在程序输入时或在命令窗口中输入时均不书写这对“[<>]”,而只写其中的参数的内容。 l /:为二选一表示符。要求用户从本符号的左右两项中选择一顶。同样,在命令或函数的输入中,“/”线也不要写。 l ...:省略符。它表示在一个命令或函数表达式中,某一部分可以按同一方式重复。 null 3.命令格式的说明 从上述命令格式可以看到,Visual FoxPro命令主要由5个部分组成,各部分功能如下。 (1) 命令关键字:是一个英文动词,是Visual FoxPro的命令名,用来指定计算机要完成的操作。例如STORE、LIST、COPY TO等都是命令关键字,分别表示定义内存变量、显示表的记录、复制表的内。 (2) 表达式表:表达式表子句是由数据和运算符一起构成的有意义的式子,各表达式表是一个或多个由逗号分隔开的表达式。该表达式在一般情况下由表中字段名构成。表达式除了可以是字段、字段名表外,还可以加进运算符,如“单价*1.05”也是一个表达式。null(3)范围子句: 范围子句用来指定命令可以操作的有效记录范围。范围可有下列四种选择: l ALL:指当前表中的全部记录 ; l NEXT <n>:指从当前记录开始的连续N条记录 ; l RECORD <n>:指当前表中的第N号记录; l REST: 指从当前记录开始到最后一条记录为止的所有记录 ; (4)FOR<条件>子句:对满足条件的记录进行操作,如果使用FOR子句,VPF6.0将记录指针重新指向表文件顶部,系统会用FOR条件与每条记录进行比较。null(5)  WHILE <条件>子句:在表文件中,从当前记录开始,按记录顺序从上向下处理,一旦遇到不满足条件的记录,就停止搜索并结束该命令的执行。 FOR和 WHILE都是条件子句,但在默认范围选择项条件下主要有两点不同: l  FOR子句是从首记录开始判断逻辑表达式是真还是假,而WHILE子句则从当前记录起判断条件是否成立; l FOR子句对逻辑表达式取真值的所有记录进行规则操作,不管这些记录是呈连续排列或是间断排列。而WHILE子句是从当前记录开始,只要遇到其逻辑表达式取假值就停止操作,不管其后是否有满足条件的记录。4-1-3 命令的输入与编辑4-1-3 命令的输入与编辑1.命令的输入 在Visual FoxPro命令窗口中按命令的语法规则键入需要操作的命令,最后按下Enter键,就可以执行该命令了。 2.命令的编辑 命令窗口是一个可以编辑的窗口,可以在命令窗口中进行各种编辑操作,如插入、删除、拷贝、剪切等,或者用光标和滚动条在整个命令窗口中上下移动。这些特性对命令输入起了很大的帮助作用。比如要键入一个和上一次命令相似的命令,那么只需将光标移动到上一条命令上,然后输入或删除命令的不同部分,最后按下Enter键,就可以执行这条新命令了。null3.输入命令时的注意事项 (1) 命令关键字不能省略,必须是命令行的第一个英文动词,其它子句可以以任意顺序跟在其后,命令动词与各子句之间用一个或多个空格隔开,如: EDIT FIELDS 学号,姓名,班级 ALL FOR 高等数学>=85 EDIT ALL FIELDS 学号,姓名,班级 FOR 高等数学>=85 EDIT FOR 高等数学>=85 ALL FIELDS 学号,姓名,班级 (2) 命令动词和VISUAL FOXPRO保留字一般可用前4个或4个以上字母简写。如: DISPLAY MEMORY DISPL MEMO DISP MEMOnull(3) 当表达式中,由FIELDS引导字段名表时,字段名表中的各字段间必须用逗号分割,但逗号“,”必须是在英文状态下输入的西文逗号“,”。 (4) 命令、关键字、变量名和文件名中的字母既可以大写也可以小写,还可以大写、小写混合,三者等效。 null(5) 虽然命令窗口可以上下左右滚动,也可以在一行把命令输完,但屏幕的左右滚动会很不方便,这时不妨尝试一下续行操作。输入命令时可以在命令的关键字或子句之间加分号(;),然后按回车键,再在下一行输入命令的剩余部分,这样就可以把一条长命令分成好多行来写。进行续行操作,应注意以下几点: l  命令的最后一行不能以分号结尾。如: l  REPLACE ALL 实发工资 WITH (基本工资+职务津贴+奖金-养老保险)*1.03 FOR 工龄>20 l  当一条命令被分成多行输入时,如果想同时使用&&命令加入一些注释,此时注释不能出现在分号之后,而只能将注释放在命令的最后一行的后面。 l  当准备执行一个被分成多行的命令时,可将光标放在该命令的任意一行上,然后按下Enter键。4-1-4 设置格式4-1-4 设置格式1.设置字体 在进行命令输入的过程中,可以通过改变命令窗口中的字体大小、行间距等清晰地显示每一条命令。用户可以使用“格式”菜单中的“字体”选项改变字体的大小。 2.设置行缩进 行缩进可以极大地改善被分成多行的命令的可读性。在命令窗口中为产生缩进效果,在输入命令前先按Tab键,当然也有可能需要多按几次TAB键,以产生更多的行缩进,这样接下来的行就自动产生相同的缩进。一旦在命令窗口中加入一个行缩进,那么接下来的行就可自动产生相同的缩进,不过此时需要按Ctrl+Enter将光标移到下一行,而不能用Enter键。 3.出错处理 在命令窗口输入命令时,会出现一些输入错误,在没发现之前按下回车键之后,系统会给出一个简单的提示。 4-2 数据库 4-2 数据库 如果想把多个表联系起来,就一定要建立数据库。只有把这些有关系的表存放在同一个数据库中,确定它们的关联关系,数据库中的数据才能被更充分地利用。数据库文件扩展名为:.dbc 4-2-2 创建数据库 利用“数据库设计器”建立数据库,操作方法是:在Visual FoxPro 系统主菜单下,进入“数据库设计”窗口,然后打开“数据库”菜单,对数据库进行各种操作或单击鼠标右键,弹出“数据库”快捷菜单,对数据库进行各种操作。还可以通过在“项目管理器”中创建数据库;由文件菜单创建数据库;通过命令建立数据库 。4-2-1 数据库概念4-2-3 数据库的维护4-2-3 数据库的维护1.数据库的打开和关闭 (1) 由文件菜单打开和关闭数据库 打开一个已存在的数据库,操作方法是:打开“文件”菜单,选择“打开”,在“打开”窗口,在文件类型下拉框内,选择数据库类型,然后输入要打开的数据库名,再按“确定”按钮,进入“数据库设计器”窗口。 (2)  通过命令对数据库进行操作 l  打开一个数据库 【格式】 OPEN DATABASE <数据库文件名>|? 【功能】 打开一个数据库。 【举例】 在当前目录下打开“教职工”数据库。 open database D:\LIULI\教职工nulll 修改一个数据库 【格式】 MODIFY DATABASE <数据库文件名>|? 【功能】 修改编辑一个数据库。 【举例】 修改并编辑“教职工”数据库。 MODI data D:\LIULI\教职工 l 删除一个数据库 【格式】 DELETE DATABASE <数据库文件名>|? 【功能】 删除一个数据库。 【举例】 删除指定路径D:\LIULI下的“教职工”数据库。 DELE data D:\LIULI\教职工null2.在数据库中添加表 有了数据库文件,就可以向数据库添加表了。通常数据表只能属于一个数据库文件,如果你想向当前数据库中添加的表已被添加到了别的数据库中,在加入你所建立的数据库之前,必须要从其它数据库中移去后才能添加到你的数据库中。 向数据库添加数据表,操作方法是:打开数据库在“数据库设计器”窗口,单击鼠标右键,弹出“数据库”快捷菜单,选择添加表;在“打开”窗口,选择要添加的表,返回“数据库设计器”窗口;重复操作可以将多个表添加到数据库中。null从数据库中移去或删除表,主要有以下两种方式: 在“项目管理器”的“数据”选项卡中,选择“数据库”下方“表”中的“教师基本情况表”,然后单击“移去”按钮,在弹出的对话框中,选择“移去”或“删除”。 在“数据库设计器”中的预删除的表上单击鼠标右键,在弹出的快捷菜单中选择“删除”选项,或单击“数据库设计器”工具栏上的“移去表”按钮。也可将预添加的表文件从数据库中“移去”或“删除”。 3.在数据库中移去/删除表4-3 数据表4-3 数据表4-3-1 数据表的概念 1.数据库与表的关系 数据表是存储记录数据的文件,是关系型数据库管理系统中处理数据的基本单元 数据表是由一组相关的数据按行和列排列的二维。 表文件扩展名为.DBF 类型 自由表:不包含于任何数据库 数据库表:包含于某个数据库(两者关系) 相关概念:字段,字段名,记录,数据库(.DBC) 2.字段的命名(P50) 3.字段的数据类型(P50) ※自由表和数据库表的关系※自由表和数据库表的关系数据库表包含许多自由表没有的属性 数据库表和自由表可以相互转换 自由表添加到数据库中成为数据库表 数据库表移出数据库成为自由表 一个表只能属于一个数据库 如果要将表从一个数据库转到另一个数据库中,必须先将它移出前一个数据库,才能加入后一个数据库。学生表示例学生表示例6个字段,字段名分别为:学号,姓名等2条记录12个字段值4-3-2 创建表结构4-3-2 创建表结构 1. 创建表结构 “项目管理器/数据” “文件/新建/表/表向导” “文件/新建/表/新建文件” 命令:CREATE [<表名>] 可任意定义为数据库表或自由表若当前某数据库为打开状态,则创建的为数据库表,否则为自由表创建表结构的几点说明创建表结构的几点说明字段名以字母或汉字开头,由字母,数字,下划线和汉字组成 字段类型根据具体情况而定,字段值与字段类型要匹配 若为字段添加索引,在索引列中选择一种排序方式 字段的NULL列有一个钩,表示该字段可以接受NULL值 2. 添加数据表到项目中2. 添加数据表到项目中在项目管理器的“数据”选项卡中,打开数据库 选择数据库下的表,单击“添加”,添加为数据库表 选择自由表,单击“添加”,添加为自由表要添加的表必须具备下列条件 该表是一个有效的.DBF文件 表不允许与打开的数据库中已有的表同名 表不能同时放在另一个数据库中 要加入表的数据库必须具备下列条件 必须以独占方式打开。要想独占地打开一个数据库,在使用OPEN DATABASE命令时加入EXCLUSIVE子句3.修改表结构3.修改表结构 当建立了数据表结构之后,如果发现表结构有问题,可以利用表设计器来修改。 (1)修改字段(P53) (2)添加/删除字段(P53) (3)调整字段顺序(P53)(1) 设置字段显示(1) 设置字段显示设置字段标题 系统默认,表的标题显示的是字段名。字段名的最大长度只有10个字符长,在进行浏览时,如果用户不进行字段标题的设置,有时难以概括清楚该名下数据的属性; 为了在显示表中数据时浏览的清晰、方便,用户可以自定义字段标题。 标题的长度可达128个字符4.设置字段属性(有补充)null例,打开学生选课数据库|打开学生表|打开“显示”菜单|选择“表设计器”,选定需要指定标题的字段,在标题框中对标题进行设置对学号字段设置标题null对字段加以注释,以提醒自己或其它用户,清楚地掌握字段的属性、意义及特殊用途等对字段加以注释(2)为字段输入注释(3)设置字段的数据输入(3)设置字段的数据输入设置默认字段值 为了提高表中数据输入的速度和准确性, 设置字段数据的默认值时,注意字段的类型;字符型数据要加定界符“ ”,日期型数据要用到字符日期转换函数等对入学时间设置默认值null为提高表中数据输入的速度和准确性,除了定义字段的默认值外,还可以定义字段格式和掩码。如,学号字段只接受数字字符对学号字段设置输入掩码(4)设置字段的格式和掩码格式掩码中可用的功能符和格式符格式掩码中可用的功能符和格式符(5) 设置字段的有效性规则(5) 设置字段的有效性规则有效性规则和有效性说明 点击“字段有效性”中“规则”框的三点按钮…,可在表达式生成器中设置字段的格式对学号字段设置规则违反规则的出错信息null记录的输入界面 立即输入:创建完表结构后,在输入数据记录对话框中选择“是”,如下图示 之后输入:打开表,选择“显示/浏览”,选择“显示/追加方式”选择“是”,立即输入记录 4-3-3 输入数据记录2.输入记录时的注意事项2.输入记录时的注意事项逻辑型字段宽度为1,只接受T,Y,F,N这4个字母之一(大小写均可) 日期型数据必须与系统日期格式相符 SET DATE MDY可将系统日期格式转换为美国日期格式mm/dd/yy 备注型与通用型字段的输入与编辑 备注型与通用型字段中已填有memo和gen等内容,等待输入有关数据。操作如下:null(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 数据表的基本操作1.打开表的菜单方式 单击“文件”菜单中的“打开”选项,打开“打开”对话框。选择将要打开的文件类型、文件名及其路径,然后单击“确定”按钮。 也可以用以下几种方式打开数据库即相关表 1)打开包含表的数据库,启动数据库设计器 2)双击要打开的表 3)选择显示模式 (1)单击 “显示”、“编辑”:编辑该表(edit ) 以分隔线将每一条记录分割开,字段按纵向排列。 (2)单击 “显示”、“浏览”:浏览该表(browse) 以一行显示一条记录,每一列显示一个字段。 4-4 数据表的基本操作4-4-1 打开和关闭表2.打开、关闭表的命令方式2.打开、关闭表的命令方式(1) 打开表 【格式】USE <表文件名>| ? 【功能】在当前工作区打开一个表文件。 (2) 关闭表 【格式1】USE 【功 能】 关闭当前工作区中正打开的表文件及其索引文件。 【格式2】CLOSE [ALL|DATABASES] 【功 能】关闭各种类型文件。null3.退出VFP系统 (1)菜单方式 退出VFP系统的方式第2章介绍过,可选用以下任何一种方法退出VFP: l   选择“文件”菜单中“退出”菜单项。 l   鼠标单击Visual FoxPro6.0窗口右上角的关闭按钮。 l   双击Visual FoxPro6.0主窗口左上角的“控制”菜单按钮。 l   直接按Alt+F4组合键。 (2)命令方式 【格式】QUIT 【功能】关闭打开的所有文件,退出VFP系统返回到操作系统。 4-4-2 显示数据 1.表结构文件的修改4-4-2 显示数据 1.表结构文件的修改命令方式: USE <表名> MODIFY STRUCTURE 菜单方式: 1.选定要打开的表:文件/打开 2.打开表设计器:显示/表设计器添加字段删除字段修改字段内容按着拖动改变字段位置null2.表文件结构的显示 命令方式 【格式】DISPLAY|LIST STRUCTURE [TO PRINTER|TO FILE<文件名>] 【功能】显示表文件的字段结构。3. 表文件记录数据的显示3. 表文件记录数据的显示(1).命令的工作方式<命令动词>[<范围>][][] [] 描述:在命令窗口中键入一条VFP命令回车后,该命令立即被执行,并将命令结果显示在VFP主窗口中。 范围:ALL:对表中全部记录进行操作; NEXT:对从当前记录在内的以下连续N条记录进行操作; RECORD:只对第N条记录进行操作; REST:对从当前记录到文件尾的所有记录进行操作。 FIELDS子句:指明当前操作涉及表的哪些字段,字段名间用“,”隔开null注意:FOR子句与WHILE子句均指明进行操作的记录的条件。其区别在于: 1.范围缺省时,FOR子句默认为ALL;WHILE子句则只从当前记录开始按条件筛选 2.当发现一个记录不满足条件时,FOR子句跳过该记录继续检查下去;WHILE子句则只操作到这个不满足条件的记录为止。 若两者同时出现,则优先处理WHILE子句举例:LIST NEXT 5 FIELDS 学号,入学成绩 FOR入学成绩 >=600说明: 1.命令以命令动词开头,且命令动词可缺省写为前4个字母 2.命令与子句,子句与子句,子句的各部分间须至少以一个空格隔开;且各子句的书写顺序任意null(2).查看表数据命令BROWSE[LAST] [FIELDS] <字段名表> [FOR <条件>] [FREEZE<字段名>][LOCK<数值表达式>]功能:浏览或编辑表中数据 参数描述: FREEZE <字段名> :定义唯一允许修改的字段 LOCK <数值表达式>:当水平方向翻动屏幕时,屏幕左边连续出现不参加滚动的字段数举例:显示学生表中所有记录的学号,姓名和入学成绩 USE 学生 BROW FIELDS 学号,姓名,入学成绩null举例:显示学生表中入学成绩>600分同学记录 USE 学生 LIST FOR 入学成绩>600 LIST|DISPLAY[<范围>] [FIELDS <字段名表>] [FOR/WHILE <条件>] [TO PRINT] [OFF] 功能:选择输出表文件中记录数据.也可用于显示表达式的值 说明:LIST与DISPLAY的区别 <范围>与<条件>缺省时,LIST默认为ALL,DISPLAY为当前记录 LIST为滚动方式输出,DISPLAY为分屏输出4-4-3 追加记录4-4-3 追加记录菜单方式: 在浏览或编辑窗口环境中 选“显示/追加方式”,可自动在尾部追加N条记录 选“表/追加新记录”,只允许添加一条记录 选“表/追加记录”,从选定文件向当前表添加多条记录格式一:APPEND [BLANK] 格式二:APPEND FROM <文件名>|? [FIELDS <字段名表]; [FOR <条件>][SDF] 格式三:INSERT INTO<表名> [(字段1[,字段2,…])] VALUE [(表达式1[,表达式2,…])]; 格式四:INSERT [BLANK][BEFORE]命令方式:null说明: APPEND相当于:菜单方式1; APPEND BLANK相当于:菜单方式2; 命令方式的格式二相当于:菜单方式3; 在APPEND FORM 命令中,是否使用SDF子句,要根据文本文件中的数据格式来确定。 命令方式的格式四:用于在当前记录之前/后插入一条新记录4-4-4 记录的删除与恢复4-4-4 记录的删除与恢复可在“浏览”或“编辑”窗口中删除记录 点击作删除标记 选“表/彻底删除”对打了删除标记的记录作真正删除删除标记当再次单击时,为取消标记 删除记录分两步进行:第一步将要删除的记录做删除标记,第二步才将记录真正从表中删除。1.记录的逻辑删除 null 若要有选择的删除一组记录,可单击“表/删除记录”,填写对话框。例如:可将学生表中“入学成绩<600分”的所有记录作删除标记; 要作物理删除,再单击“表/彻底删除”。3.恢复被逻辑删除的记录(P62) 2.记录的物理删除 (P62) null4.删除、恢复记录的命令方式格式:DELETE [<范围>] [FOR <条件>] [WHILE <条件>] 格式:PACK [DBF] [MEMO] 格式:RECALL [<范围>] [FOR <条件>] [WHILE <条件>] 格式:ZAP (1)逻辑删除命令(2).取消删除标记命令 (3).物理删除命令 (4). 删除全部记录命令 ZAP命令 与 DELETE ALL 和PACK两条命令执行的结果相同,区别在于ZAP直接执行物理删除。 null【例】 Use 学生 Delete next 6 &&学生表上1到6条记录加删除标记 List Recall for 性别=‘男’ &&取消性别为男的记录的删除标记 GOTO 5 Recall &&取消第5条记录的删除标记 Pack &&将带有删除标记的记录从表中删除 Zap &&将所有记录从表中删除 4-4-5 修改记录4-4-5 修改记录【格式1】EDIT|CHANGE[<范围>] [FIELDS <字段名表>][FOR <条件>] [WHILE <条件>] 【格式2】BROWSE[<范围>] [FIELDS <字段名表>][FOR <条件>] REPLACE命令功能:不进入全屏幕编辑方式,根据命令中指定的条件和范围,用表达式的值去更新指定字段的内容。 参数描述:<字段名1>: 指定要替换值的字段。 WITH <表达式1> :指定用来进行替换的表达式或值。 说明:WITH后面表达式的类型必须与WITH前面字段的类型一致 。1.全屏幕编辑命令方式 【格式】REPLACE <字段名1> WITH <表达式1> [, <字段名2> WITH <表达式2> …] [<范围>] [FOR/WHILE <条件>]2.自动替换命令方式 null【例】 浏览“学生”表中“女”生的“姓名,入学成绩” USE 学生 Browse fields 姓名,入学成绩 for 性别=‘女’ 例4.5 修改“学生”表的结构,增加“年龄”字段;将所有学生2004年的年龄填入该字段。 USE 学生 MODIFY STRU && 添加年龄字段,确定 REPLACE ALL 年龄 WITH 2004-YEAR(出生日期)4-4-6 表的复制4-4-6 表的复制【格式】COPY TO <文件名> [<范围>][FIELDS<字段名表>] [FOR <条件>] [WHILE <条件>] 1.复制任何类型的文件 【格式】COPY FILE TO <文件名1> TO <文件名1> 2.复制表文件 【格式】COPY STRU TO <文件名> [FIELDS<字段名表>]3.复制表的结构 null【例】 根据“学生”表,建立名为“学生_2”的表,只包括“学号,姓名,性别和入学成绩”字段,且仅包括入学成绩大于或等于580的学生记录。 Use 学生 Copy to 学生_2 fields 学号,姓名,性别,入学成绩 for 入学成绩>=580 例4.8 建立名为“学生_3”的数据表,结构与学生数据表一样,不包括数据。 use 学生 Copy to 学生_3 structure4-4-7 记录的定位命令4-4-7 记录的定位命令 浏览窗口中: 选择“表/转到记录”指向当前记录的下一条记录指向当前记录的上一条记录转向第N条记录指针指向第一条记录指针指向最后一条记录指针指向满足条件的第一条记录1.菜单方式 null格式1:GOTO [RECORD <数值表达式> ] /TOP/BOTTOM 格式2:GO [RECORD <数值表达式> ] /TOP/BOTTOM 格式3: <数值表达式>命令功能:将记录指针直接定位到指定的记录上。2.命令方式: 绝对移动(GO)、相对移动(SKIP)、查找定位(LOCATE)(1) 绝对移动命令null命令参数描述: <数值表达式>:指定一个物理记录号,记录指针移至该记录上。 TOP:将记录指针定位在表的第一个记录上。 [BOTTOM]:将记录指针定位在表的最后一个记录上。 说明: RECORD可省略。<数值表达式>的值必须大于0,且不大于当前表文件的记录个数。null格式:SKIP [<数值表达式>] 功能:将记录指针向前或向后作相对若干条记录的移动。 参数描述: <数值表达式>:指定记录指针作相对移动的记录数据。 说明: 1、移动的记录数等于<数值表达式>的值,其值为正数时,记录指针向下移动,当<数值表达式>是负数时,记录指针向上移动。 2、省略选择项<数值表达式>,约定为向下移动一条记录,即SKIP 等价于SKIP 1。 (2) 相对移动命令null补充:记录指针的查找定位命令格式:LOCATE [范围] FOR <条件> [WHILE <条件>] CONTINUE功能:将记录指针定位到满足条件的第一条记录上。 说明:范围缺省时为all; 继续查找满足条件的记录用continue命令。 举例:显示学生表中入学成绩>600分的第二个同学记录 LOCATE FOR 入学成绩>600 CONTINUE DISPLAY null表当前记录与数组之间的数据传送(读、写)SCATTER [FIELDS<字段名表>] [MEMO] TO <数组名>GATHER FROM <数组名> [FIELDS<字段名表>] [MEMO]【例】USE 学生 GO 2 SCAT TO A ?A(2),A(7) A(7)=A(7)+10 GATH FROM A DISP 屏幕显示为“张辉 608”4-4-8 数组与表之间的数据交换4-5-1 排序与索引4-5-1 排序与索引功能: 使数据记录按一定的顺序排列。 方式: 物理排序(排序)、逻辑排序(索引)。 1 排序 2 索引4-5 查询与统计操作null 按“学号”排序图示 按“学号”索引图示1、 表的排序1、 表的排序概念 排序:将表中的数据按一定的顺序重新排列,并将重新排列后的结果保存成为一个新的有序表 关键字段:决定排列顺序的字段,可以是多个 数据记录的排序命令 SORT TO <表文件名> ON <字段名1> [/A][/D][/C][, ON <字段名2> [/A][/D][/C]…][ASCENDING|DESCINDING][<范围>][FOR|WHILE<表达式>] [FIELDS <字段名表> | FIELDS LIKE <通配符> |FIELDS EXCEPT <通配符>] 功能:根据当前数据表,建立一个经过排序的新数据表命令说明命令说明排序文件名:新表的表名(文件名) ON子句中 <关键字段>:排序字段 /A:按升序排列,/D:按降序排列,默认为升序 /C:排序时忽略大小写,否则不忽略 若选择多个字段,表示多重排序 先按<字段1>排列,若字段值相同,再按<字段2>排列…… ASCENDING将所有不带/D的字段指定为升序, DESCINDING将所有不带/A的字段指定为降序 缺省<范围>、<条件>表示全部记录 FIELDS子句:新表所包含的字段应用举例应用举例[例] 对学生选课表,按成绩降序排序,并将排序结果输出到CJXH表中 USE 学生选课 SORT ON 成绩/D TO CJXH USE CJXH BROWSE [例] SORT TO 学生 ON 入学成绩 /D,出生日期 FOR 专业编号="03" FIELDS 学号,姓名,性别,出生日期,入学成绩2、表的索引2、表的索引 表的索引是一种逻辑排序方法,它不改变当前表文件记录的物理排序顺序,而是建立一个与该表文件相对应的索引文件。 (1)索引文件的类型 单索引文件:文件中只包含一个索引标识。扩展名为IDX 复合索引文件:文件中包含多个索引标识。扩展名为CDXnull 复合索引文件又分为结构复合索引和非结构复合索引: 结构复合索引:索引文件名与相应的表名相同。随表的打开自动打开 非结构复合索引:索引文件名与表文件名不相同。不能自动打开(2) 索引的类型(2) 索引的类型主索引:指定的字段或表达式中索引关键字值绝对不允许有重复值。 只能在数据库表中而不能在自由表中建立的索引 主要用于在永久关系中的主表或被引用表里建立参照完整性 一个表只能创建一个主索引 候选索引:关键字值绝对不允许有重复值、有资格被选做主索引的索引。 一个表可以有多个候选索引 数据库表和自由表都可以建立候选索引。 唯一索引:允许索引关键字有重复的值,当有重复值出现时,索引文件只保存重复值的第一次值 数据库表和自由表都可以建立唯一索引 为和早期版本兼容而设计,很少使用 普通索引:是除了上面几种索引之外的一种索引,它允许索引关键字有重复的值null(3) 索引的建立 建立索引有两种方式:菜单方式和命令方式 通过用菜单方式建立的索引文件是结构复合索引文件 菜单方式: 建立:打开表设计器,选中“字段”选项卡null单击如果要编辑索引,可选中“索引”选项卡若要改变索引类型,在“类型”列点击“类型”列表框的下三角,弹出一列表,根据需要选中索引类型。若要改变索引名称,在“索引名”编辑框中键入索引名称。若要改变索引表达式,在“表达式”编辑框中键入索引表达式,或点击其右按钮,弹出“表达式生成器”对话框。null在该对话框中编辑索引表达式后,点击“确定”按钮返回表设计器中null若要对满足条件的记录进行索引,可在“筛选”编辑框中键入筛选表达式,或点击其右按钮,弹出“表达式生成器”对话框。在该对话框中编辑筛选表达式后,点击“确定”按钮返回表设计器中null若要改变排序方式,选中“排序”列的箭头,点击该箭头即可改变排序方式,再次点击将恢复原排序方式在该窗口中也可建立新索引命令方式创建索引命令方式创建索引 INDEX ON <索引关键字表达式> TO <单索引文件名>|TAG <索引标识>[OF <复合索引文件名>] [FOR<条件>] [ASCENDING|DESCINDING] [UNIQUE|CANDIDATE][ADDITIVE] 对当前表中符合条件的记录进行索引 <索引关键字表达式>是由表中的字段、内存变量、数组等构成的字符、数值、日期或逻辑表达式。 [UNIQUE]选项 建立惟一索引; CANDIDATE建立候选索引 TAG <索引标识>建立复合索引文件和设置索引标识,若省略OF子句,为结构复合索引文件,否则为非结构复合索引文件(4) 打开和关闭索引文件(4) 打开和关闭索引文件结构复合索引文件随表文件的打开而打开 SET INDEX TO [<索引文件名>] [ORDER [<数值表达式> | <单索引文件名> | [TAG]<索引标识>OF<复合索引文件名>] [ASCENDING | DESCENDING] ] [ADDITIVE] <索引文件表>:要打开的索引文件,如果没有用ORDER 子句指定控制索引,则第一个索引文件为主控索引文件 ADDITIVE:打开索引文件的同时,不关闭已打开的索引文件 缺省所有选项将关闭当前工作区中除结构复合索引文件外的所有索引文件 use <表文件> index <索引文件表> 打开表文件的同时打开索引文件 CLOSE INDEX 关闭所有索引(结构复合索引文件除外)null(5) 删除索引 删除索引标识 Delete tag all | <索引标识1> [of <复合索引文件名>] [,<索引标识2>] [of <复合索引文件名>] 从复合索引文件中移掉一个或多个标识;若选all 删除所有的索引标识,相关的复合索引文件也被删除 删除索引文件 Erase <索引文件全名> Delete file < 索引文件全名> 有关排序与索引的小结 有关排序与索引的小结 排序,就是将表文件的记录按照某个或某几个字段值的大小顺序进行排序,即从物理顺序上对表文件重新加以整理,产生一个新的表文件。 索引是一种逻辑排序,它只提供当前工作区中数据表内任一项符合条件的记录指针值,只产生索引文件,不改变原表文件的记录顺序,索引文件只是一种辅助文件,不可以脱离原表文件而独立使用。 4-5-2 查询4-5-2 查询 查找是按照某些条件在表中查找所需记录并将记录指针指向符合条件的第一条记录。 1.条件查询 无索引查找(顺序查找,速度较慢) LOCATE FOR <条件>命令 CONTINUE命令 有索引查找(速度较快,要求事先对表进行索引) SEEK命令 FIND命令2.索引查询2.索引查询 索引查找的前提:打开表文件及相关的索引文件,确定控制索引文件或控制索引标识。 (1) SEEK命令: 格式:SEEK <表达式> [ORDER <数值表达式> | <单索引文件名> | [TAG]<索引标识>OF<复合索引文件名>] [IN <工作区号> | <表的别名>] [ASCENDING | DESCENDING]] 功能:将记录指针定位到 “索引关键字值=<表达式>”的第一条记录。命令说明命令说明字符串表达式,用SET EXACT ON|OFF命令可设置字符串匹配规则。 系统默认OFF,即模糊匹配,表达式值与关键字值左子串相同就可找到。 ON表示完全匹配,表达式值与关键字值完全相同才认为找到。应用举例应用举例[例]按课程编号字段对学生选课表建立索引,然后进行查找。 USE 学生选课 INDEX ON 课程编号 TAG kcbh SEEK “02” ?FOUND() DISPLAY(2) FIND命令(2) FIND命令 格式:FIND <字符串表达式> 功能:将记录指针定位到“索引关键字值=<字符串表达式>”的记录 说明:可用SEEK命令代替。1.计数命令1.计数命令格式:COUNT [<范围>] [FOR< 条件>][WHILE <条件>] [TO <内存变量>] 功能:计算指定范围满足条件的记录数,并将结果存于指定的内存变量 说明 TO <内存变量>:指定结果存放的内存变量名,若该变量不存在,系统会自动创建。 若设置了命令set deleted on,则作了删除标记的记录不被计数。4-5-3 统计应用举例应用举例[例]统计学生选课表中成绩超过85分的学生人数 USE 学生选课 COUNT FOR 成绩>85 TO cjrs ?cjrs 2. 计算命令2. 计算命令格式:CALCULATE <表达式表> [<范围>][FOR<条件>][WHILE<条件>] [TO<内存变量> | ARRAY<数组>] 功能:在打开的数据表中,计算表达式的值 说明 有NULL的记录不包含在内 表达式中可以包含下列函数 AVG(<数值表达式>):平均值 CNT( ):表中的记录数 MAX(<表达式>):最大值 MIN(<表达式>):最小值 SUM(<数值表达式>):求和应用举例应用举例[例]统计学生选课表中成绩超过85分的学生人数及平均成绩 USE 学生选课 CALCULATE CNT( ), AVG(成绩) FOR 成绩>85 TO xsrs, pjcj ?xsrs,pjcj 求和命令 求和命令格式:SUM [<数值型字段表达式表>] [<范围>][FOR <条件>][WHILE <条件>] [TO <内存变量> | ARRAY <数组>] 功能:在打开的数据表中,对数值型字段表达式求和 <数值型字段表达式表>:对指定表达式求和,省略该选项,则对所有数值型字段求和。 TO <内存变量表> | ARRAY <数组>:指定结果存放的内存变量名表或数组名,若变量或数组不存在,系统自动创建,数组存在且太小时,系统自动增加数组大小。应用举例应用举例[例]求学生选课表中成绩的总和。 USE 学生选课 SUM 成绩 TO zcj ?zcj 求平均值命令 求平均值命令 格式:AVERAGE[<数值型字段表达式表>] [<范围>][FOR <条件>][WHILE <条件>] [TO <内存变量> | ARRAY <数组>] 功能:在打开的数据表中,对数值型字段表达式求平均值。 应用举例应用举例[例]求学生选课表中成绩的平均值。 USE 学生选课 AVERAGE 成绩 TO pjcj ?pjcj [例]求学生表中2000级同学的平均年龄 USE 学生 AVERAGE YEAR(DATE())-YEAR(出生日期) FOR LEFT(学号,4)="2000" TO pjnl ?pjnl3. 分类求和命令3. 分类求和命令格式:TOTAL TO <表文件名> ON <关键字> [FIELDS <数值型字段表>] [<范围>][FOR <条件>][WHILE <条件>] 功能:在打开的数据表中,按关键字分类,汇总计算,将结果存入新文件中 说明 数据表必须按关键字排序或索引 <表文件名>:指定存放计算结果的新表文件名 <关键字段>:指定作为分组总计依据的字段 [FIELDS <数值型字段表>]:指定要总计的字段 4-6 多工作区操作 4-6-1 工作区选择4-6 多工作区操作 4-6-1 工作区选择 1、工作区概念 VFP6.0提供了32767个工作区。每个工作区只能打开一个表文件,若在已有表文件的工作区打开新的表文件,以前打开的表文件就会自动关闭。各表在各自的工作区中被操作。 2、工作区标识 (1).系统别名 (1~10 分别用A~J单个字母来命名) (2).表名或用户定义的别名 USE <表名> [ALIAS <别名>] [IN <工作区号>] 别名可以包含多达254个字母、数字或下划线,且必须以字母或下划线开头。3. 工作区的选择命令3. 工作区的选择命令选择工作区命令 格式为: SELECT <工作区号> | <别名> VFP刚启动时默认1号工作区为当前工作区,SELECT( )函数可以返回当前工作区的区号。 SELECT 0表示选定当前未使用的最小号工作区。 多工作区中表字段的相互引用 在当前工作区上使用其他工作区上的字段 (跨工作区字段)时,必须用别名标识. 格式为:别名.字段名 或 别名->字段名4-6-2 表与表之间的联接与关联4-6-2 表与表之间的联接与关联表与表之间的三种关系 一对一关系:在表A中的一条记录在表B中最多只能有一条记录与之对应,反之,在表B中的一条记录在表A中也最多只能有一条记录与之对应。 例如:学生表和学生成绩表之间。 一对多关系:在表A中的一条记录在表B中可以有多条记录与之对应,而在表B中的一条记录在表A中最多只能有一条记录与之对应。 例如:学生表和学生选课表之间。 多对多关系:在表A中的一条记录在表B中可以有多条记录与之对应,而在表B中的一条记录在表A中也可以有多条记录与之对应。例如:学生表和课程表之间。 注意:VFP不支持多对多关系,处理多对多关系时,可以用第三个表,分解为两个一对多关系。 表关系的概念表关系的概念 表与表建立关系的条件 两个表的索引关键字表达式值必须相等。 建立关系后两个表,一个是父文件,另一个是子文件。 父表为主索引或候选索引,子表的索引类型限制如下: 一对一关系,子表必须是主索引或候选索引. 一对多关系,子表可以是普通索引或唯一索引. null建立关系的方法: 在数据工作期中:建立临时关系 当重新打开数据库时,这些关系不复存在,需重新建立。 父文件记录指针移动时,子文件的记录指针会自动移到对应的记录上。 在数据库设计器中:建立永久关系 当重新打开数据库时,这些关系依然存在。 在数据库设计器中显示为联系表索引之间的连线。 父文件记录指针移动时,子文件的记录指针不会自动移到满足条件的记录上。 用命令建立临时关系用命令建立临时关系建立关系:SET RELATION命令 删除关系:SET RELATION OFF命令 设置一对多关系:SET SKIP TO命令SET RELATION命令SET RELATION命令格式:SET RELATION TO [<表达式1> INTO <工作区号1> | <别名1>…] [IN <工作区号> | <别名>] [ADDITIVE] 功能:以当前表为父文件,建立与其他表的关系 说明: <表达式>:包含父文件字段的表达式, 子文件中的索引关键字值=<表达式>的记录与之对应 INTO子句:指定子文件或其所在的工作区 IN子句:指定父文件或其所在的工作区 ADDITIVE表示建立新关联时不删除以前建立的关系 不选所有的选项,则删除与当前表建立的所有关系SET RELATION OFF命令SET RELATION OFF命令格式:SET RELATION OFF INTO <别名> 功能:删除当前表与指定子文件(表)的关系SET SKIP TO命令SET SKIP TO命令格式:SET SKIP TO [<别名1>…] 功能:说明当前表与指定表为一对多关系 说明:不带选项表示去掉一对多关系 举例:1、2号工作区分别打开"学生"表和"学生选课"表 SELECT 2 SET ORDER TO 学号 SET RELATION TO 学号 INTO 2 IN 1 SELECT 1 SET SKIP TO 2[例][例]SELECT 1 USE 教师 SELE 2 USE 教师任课 SELE 1 SET ORDER TO TAG 教师编号 OF "教师任课.cdx" IN 教师任课 SET RELATION TO 教师编号 INTO 教师任课 ADDITIVE SET SKIP TO 教师任课 在1号工作区打开“教师”表 将2号工作区的教师编号设为主控索引标识指定教师表和教师任课表为一对多关系在教师表和教师任课表之间建立临时关系利用数据库设计器建立永久关系利用数据库设计器建立永久关系打开数据库设计器 为各表需要建立关系的字段建立索引 将父表的索引拖到子表的相应索引,出现关系连线 一对一关系;连线两端都不分叉 一对多关系:连线一端分叉,一端不分叉 不分叉的一方称为“一”方 分叉的一方称为“多”方 编辑关系:在关系连线上单击鼠标右键,选择“编辑关系” 删除关系:在关系连线上单击鼠标右键,选择“删除关系”null4-6-3 建立参照完整性4-6-3 建立参照完整性概念 参照完整性是关系模型的一种完整性约束条件,用于在已建立关系的表间控制记录的一致性。 规则编辑参照完整性如下:编辑参照完整性如下:4-7 小结4-7 小结通过本章的学习,读者应掌握以下内容: 掌握如何在项目中建立数据库,并往数据库中添加表。 掌握如何利用 “表设计器”来创建表结构; 掌握怎样利用注释来详细地描述每个字段所代表的含义; 掌握设置有效性规则,当输入数据时判断该记录是否符合 要求,避免不符合要求的数据出现; 掌握记录的基本输入法。 掌握如何追加一条记录?如何追加符合条件的一组记录? 掌握如何在“浏览”或“编辑”窗口中浏览和编辑数据表。 掌握记录的逻辑删除、物理删除和记录被逻辑删除后的再恢复。 根据各表的索引建立表之间的关系。 设置表与表之间的参照完整性规则。 null第4章 思考与练习一、1、2、3、4、5 二、1、2、3、4、5、6、7、8、9、10 三、1、2、3、4、5、6、7 null
/
本文档为【刘丽VFP书配套PPT第4章 VFP的基本操作】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索