FoxPro数据库基本操作.ppt
第第1111章章 FoxPro FoxPro 数据库数据库 基本操作基本操作表结构的基本操作表结构的基本操作表结构的表结构的建立建立表结构的表结构的显示显示表结构的表结构的修改修改表结构的表结构的复制复制表记录的基本操作表记录的基本操作记录的记录的添加添加记录的记录的浏览浏览记录的记录的显示显示记录的记录的定位定位记录的记录的插入插入记录的记录的删除删除记录的记录的编辑编辑记录的记录的替换替换记录的记录的复制复制记录的记录的追加追加本章内容本章内容尖括号中的内容为说明性文字,使用时要换成具体的内容尖括号中的内容为说明性文字,使用时要换成具体的内容尖括号中的内容为说明性文字,使用时要换成具体的内容尖括号中的内容为说明性文字,使用时要换成具体的内容 方括号中的内容为任选项,在使用时可选可不选方括号中的内容为任选项,在使用时可选可不选方括号中的内容为任选项,在使用时可选可不选方括号中的内容为任选项,在使用时可选可不选|竖线两边的项目在使用时只能取其中之一,不能同时都选竖线两边的项目在使用时只能取其中之一,不能同时都选竖线两边的项目在使用时只能取其中之一,不能同时都选竖线两边的项目在使用时只能取其中之一,不能同时都选 表示前面的项目可以根据需要重复多次,项目之间要用逗号表示前面的项目可以根据需要重复多次,项目之间要用逗号表示前面的项目可以根据需要重复多次,项目之间要用逗号表示前面的项目可以根据需要重复多次,项目之间要用逗号隔开隔开隔开隔开示例:示例:示例:示例:Dir Dir GO TOP|BOTTOMGO TOP|BOTTOM?,2,1 1、命令格式书写约定、命令格式书写约定、命令格式书写约定、命令格式书写约定(p360)(p360)Visual FoxPro命令格式命令格式 以下是常见限定性短语的几种格式以下是常见限定性短语的几种格式以下是常见限定性短语的几种格式以下是常见限定性短语的几种格式(1 1)指定命令操作的记录范围指定命令操作的记录范围指定命令操作的记录范围指定命令操作的记录范围 ALLALL,NEXTNEXT,RECORD RECORD,RESTREST(2 2)FORFOR 指定命令满足的条件指定命令满足的条件指定命令满足的条件指定命令满足的条件(3 3)WHILEWHILE 指定命令继续执行的条件指定命令继续执行的条件指定命令继续执行的条件指定命令继续执行的条件(4 4)FIELDSFIELDS 指定命令操作的字段指定命令操作的字段指定命令操作的字段指定命令操作的字段示例:示例:示例:示例:EDIT ALL FOR EDIT ALL FOR 班级班级班级班级=2001=2001中文专中文专中文专中文专 COUNTCOUNTALL FOR ALL FOR 成绩成绩成绩成绩6060TOTOchengjichengjiCOPY TO dabase1 ALL FOR COPY TO dabase1 ALL FOR 性别性别性别性别=男男男男 2、FoxPro命令的一般格式命令的一般格式 命令动词与限定性短语之间,或限定性短语命令动词与限定性短语之间,或限定性短语之间至少要用之间至少要用 一个空格分隔。一个空格分隔。命令的最大长度为命令的最大长度为8192个字符,若一条命令个字符,若一条命令太长可以用分号(;)隔开太长可以用分号(;)隔开 FoxPro的命令动词、限定性短语、函数名、的命令动词、限定性短语、函数名、变量名和文件名中的英语字母不分大小写变量名和文件名中的英语字母不分大小写 保留字不能作为文件名、字段名、变量名和保留字不能作为文件名、字段名、变量名和数组名数组名3、FoxPro命令书写规则命令书写规则(p361)4、FoxPro命令的输入与执行命令的输入与执行 命令的输入位置命令的输入位置在命令窗口中在命令窗口中 命令的执行命令的执行按回车按回车 命令窗口的打开与隐藏命令窗口的打开与隐藏5、在、在FoxPro系统下的磁盘操作命令系统下的磁盘操作命令(p362)设置当前驱动器和目录设置当前驱动器和目录 SET DEFAULT TO 例如:例如:set default to d:2004总宽度与小数总宽度与小数宽度的差要大宽度的差要大于等于于等于2定义时请遵循课本定义时请遵循课本P363页的五项原则页的五项原则自由表结构操作自由表结构操作表是数据库管理的基本对象表是数据库管理的基本对象 对于表结构的操作包括:建立、显示、修改、复制对于表结构的操作包括:建立、显示、修改、复制一、表结构的建立:一、表结构的建立:1、确定表结构的属性,包括:、确定表结构的属性,包括:字段名:字段名:自由表中字段名最长自由表中字段名最长10个字符,不能以数字开头,个字符,不能以数字开头,一个汉字占两个字符一个汉字占两个字符字段类型:字段类型:C字符型;字符型;N数值型;数值型;D日期型;日期型;L逻辑型;逻辑型;M备注型;备注型;G通用型通用型字段宽度:字段宽度:字符型最大为字符型最大为254;数值型最大为数值型最大为20,小数最大为,小数最大为18位位(包括符号位和小数点包括符号位和小数点)日期型为日期型为8位(系统默认)位(系统默认)逻辑型为逻辑型为1位(系统默认)位(系统默认)备注型和通用型为备注型和通用型为4位(系统默认)位(系统默认)一、表结构的建立:一、表结构的建立:2、建立表结构、建立表结构 命令方式:命令方式:CREATE 盘符盘符路径路径.DBF如省略,默认为当前盘当如省略,默认为当前盘当前文件夹前文件夹,可以利用:可以利用:SET DEFAULT TO 盘符盘符路路径径设置当前文件夹设置当前文件夹如省略,默如省略,默认为认为DBF如省略,系统将自动打开创如省略,系统将自动打开创建对话框,询问主文件名建对话框,询问主文件名例如:例如:create student自由表结构操作自由表结构操作一、表结构的建立一、表结构的建立 进入表设计器中后,按前面设计的表结构输入字段名、进入表设计器中后,按前面设计的表结构输入字段名、类型、宽度(数值型还需输入小数宽度),是否索引类型、宽度(数值型还需输入小数宽度),是否索引(见(见12章)、是否允许空值(章)、是否允许空值(NULL)等。可做插入删除)等。可做插入删除操作。操作。完成后可单击完成后可单击“确定确定”按钮或按按钮或按+组合组合键存盘,出现是否输入记录对话框,点击键存盘,出现是否输入记录对话框,点击“是是”或或“否否”退出。退出。注意:如果表结构中有备注型字段,则系统将在磁盘注意:如果表结构中有备注型字段,则系统将在磁盘中建立一个主文件名与表主文件名相同,扩展名为中建立一个主文件名与表主文件名相同,扩展名为FPT的备注型文件,在做文件的复制移动操作时要同时选中的备注型文件,在做文件的复制移动操作时要同时选中进行操作,否则复制或移动后表文件将不能使用。进行操作,否则复制或移动后表文件将不能使用。自由表结构操作自由表结构操作二、表结构的显示二、表结构的显示以命令方式进行以命令方式进行LIST/DISPLAY STRUCTURE TO PRINTER连续显示全连续显示全部信息部信息满屏暂停满屏暂停将表结构输出到将表结构输出到打印机打印机注:此操作针对于当前已经打开的数据库注:此操作针对于当前已经打开的数据库自由表结构操作自由表结构操作三、表结构的修改三、表结构的修改1、命令方式:、命令方式:MODIFY STRUCTURE2、菜单方式:、菜单方式:“显示显示/表设计器表设计器”命令命令 可以对字段属性进行修改,可以添加、删除、移动可以对字段属性进行修改,可以添加、删除、移动(按住字段前方块不放,上下移动鼠标)字段。但为了保按住字段前方块不放,上下移动鼠标)字段。但为了保证已有数据的安全性和完整型,应遵循以下规则:证已有数据的安全性和完整型,应遵循以下规则:1、不可同时修改字段名和类型、不可同时修改字段名和类型 2、不可同时修改字段名和宽度、不可同时修改字段名和宽度 3、插入、插入/删除字段的同时又修改其它字段的字段名删除字段的同时又修改其它字段的字段名自由表结构操作自由表结构操作四、复制表结构四、复制表结构COPY STRUCTURE TO 盘符盘符路径路径.DBF FIELDS 复制后的新复制后的新表文件名表文件名新表中包含字段,中间新表中包含字段,中间用逗号分隔,如省略,用逗号分隔,如省略,则包含所有字段则包含所有字段例如:例如:set default to d:2004 use student copy structure to st1.dbf fields 学号学号,姓姓名名 use st1 list 注:此命令只复制结构而不复制记录。注:此命令只复制结构而不复制记录。自由表结构操作自由表结构操作小节:本节学习的主要内容为小节:本节学习的主要内容为:1、表结构的建立:、表结构的建立:CREAT2、表结构的显示:、表结构的显示:LIST STRU/DISP STRU3、表结构的修改:、表结构的修改:MODIFY STRUCTURE4、表结构的复制:、表结构的复制:COPY STRUCTURE TO 其中,显示、修改、复制命令主要针对于当前其中,显示、修改、复制命令主要针对于当前已打开的数据库(打开方法见下节),应当熟练掌已打开的数据库(打开方法见下节),应当熟练掌握表结构的建立。握表结构的建立。自由表结构操作自由表结构操作记录的添加记录的添加 APPEND记录的浏览记录的浏览 BROWSE记录的显示记录的显示 LIST/DISP记录指针记录指针绝对定位绝对定位相对定位相对定位逻辑删除逻辑删除逻辑恢复逻辑恢复物理删除物理删除记录的插入记录的插入 INSERT记录的删除记录的删除 DELE/RECALL/PACK记录的编辑记录的编辑 EDIT/CHANGE记录的替换记录的替换 REPLACEWITH记录的复制记录的复制 COPY TO记录的追加记录的追加 APPEND FROM记录的定位记录的定位 GO/GOTO/SKIP表记录的操作1、表结构建立完成存盘退出时,在是否输入数据对表结构建立完成存盘退出时,在是否输入数据对话框中如果选择了话框中如果选择了“是是”,则直接进入添加记录的编,则直接进入添加记录的编辑窗口中。另外,再次添加记录时可使用以下命令辑窗口中。另外,再次添加记录时可使用以下命令:APPEND BLANK2、常用编辑键:见课本、常用编辑键:见课本P371页页表记录的添加编辑表记录的添加编辑只在表文件的最后添只在表文件的最后添加一条空白记录而不加一条空白记录而不进入到编辑窗口中进入到编辑窗口中NEXT 3、备注型字段的编辑备注型字段的编辑(p371)将光标移到备注型字段上后,利用将光标移到备注型字段上后,利用+或或+组合;或利用鼠标双击备注字段后即可进组合;或利用鼠标双击备注字段后即可进入备注字段编辑窗口中,输入完成后利用入备注字段编辑窗口中,输入完成后利用+键键存盘退出。编辑方法等同存盘退出。编辑方法等同“记事本记事本”操作。操作。4、通用型字段的编辑通用型字段的编辑 打开方法同备注型字段打开方法同备注型字段 在在“编辑编辑”“插入对象插入对象”后选择要存放的对象类型后选择要存放的对象类型 表记录的添加编辑表记录的添加编辑BROWSE FIELDS LOCK FREEZE NOAPPEND NOMODIFY NODELETENOMENUFIELDS 指明浏览的字段名,中间用逗号分隔指明浏览的字段名,中间用逗号分隔LOCK 锁定浏览窗口左边的若干字段,个数由数值表达式确定锁定浏览窗口左边的若干字段,个数由数值表达式确定FREEZE 光标只能在指明的光标只能在指明的中移动中移动NOAPPEND 禁止追加记录禁止追加记录NOMODIFY 禁止修改记录禁止修改记录NODELETE 禁止删除记录禁止删除记录NOMENU 在菜单栏中不显示在菜单栏中不显示“表表”菜单项。菜单项。“表表”菜单项可以菜单项可以对记对记 录进行删除、追加、调整等一系列操作录进行删除、追加、调整等一系列操作表记录的浏览表记录的浏览LIST/DISPLAY FIELDS FOR WHILE OFF TO PRINTER1、范围范围:ALL 所有记录所有记录NEXT 从当前记录开始的从当前记录开始的n条记录条记录RECORD 记录号为记录号为n的记录的记录REST 从当前记录到最后一条记录从当前记录到最后一条记录2、FOR:显示所有符合条件的记录显示所有符合条件的记录WHILE:显示第一条不符合条件记录以前所有符合条件显示第一条不符合条件记录以前所有符合条件的记录。的记录。注意:注意:WHILE优先级大于优先级大于FOR表记录的显示表记录的显示3、两者异同:两者异同:相同点相同点:将指定范围内符合条件的记录显示在屏:将指定范围内符合条件的记录显示在屏幕上幕上 不同点不同点:如果没指定:如果没指定和和,LIST默认默认显示所有记录,显示所有记录,DISPLAY默认显示当前的一条记录。默认显示当前的一条记录。在指定在指定和和的情况下,的情况下,LIST为自动滚屏为自动滚屏显示,而显示,而DISPLAY 为满屏暂停显示。为满屏暂停显示。例如:例如:显示显示STUDENT表中所有没入党的学生记录的姓名和表中所有没入党的学生记录的姓名和 性别性别USE studentLIST/DISP ALL FOR.NOT.入党否入党否 FIELDS 姓名,性别姓名,性别表记录的显示表记录的显示记录测试函数:记录测试函数:RECNO()当前记录的记录号当前记录的记录号 BOF()指针是否位于第一条记录之前指针是否位于第一条记录之前 EOF()指针是否位于最后一条记录之后指针是否位于最后一条记录之后 RECCOUNT()表文件中的记录个数表文件中的记录个数返回.T.或.F.注:注:注:注:BOF位置的记录号为第一条记录的记录号,位置的记录号为第一条记录的记录号,EOF位置位置的记录号为的记录号为RECCOUNT()+1例如:例如:Use student List?bof(),eof(),reccount(),recno()表记录的定位表记录的定位2、相对定位、相对定位 SKIP 为整数型表达式,可为正为整数型表达式,可为正+或或负负-,为正是时向,为正是时向EOF位置跳转,为负时向位置跳转,为负时向BOF位置跳转。位置跳转。+1可以省略可以省略例如:例如:Use studentSkip int(reccount()/2+0.5)表记录的定位表记录的定位3、条件定位(顺序查询)、条件定位(顺序查询)LOCATE FOR CONTINUE默认为默认为ALL默认为默认为.T.按最近一次的按最近一次的LOCA范围和条范围和条件继续查询件继续查询FOUND()测试函数,找到返回测试函数,找到返回.T.没找到返回没找到返回.F.表记录的定位表记录的定位1、记录的插入、记录的插入 INSERT BLANK BEFORE插入一条空白记录插入一条空白记录而不进入编辑状态而不进入编辑状态在当前记录的前方在当前记录的前方插入一条记录,默插入一条记录,默认在当前记录之后认在当前记录之后注:插入记录以当前记录为基础,编辑窗口与方法注:插入记录以当前记录为基础,编辑窗口与方法与与APPEND等同,记录号自动变更等同,记录号自动变更表记录的插入和删除表记录的插入和删除2、记录的删除:逻辑删除、记录的删除:逻辑删除(*)物理删除物理删除(不可恢复不可恢复)逻辑恢复逻辑恢复逻辑删除逻辑删除 DELETE FOR 逻辑恢复逻辑恢复 RECALL FOR 如不指明范围和条件,默认如不指明范围和条件,默认为当前记录为当前记录SET DELETE ON|OFF显示删除记录显示删除记录不显示删除记录不显示删除记录,对对BROW、APPEND、EDIT、INSERT等等命令无效命令无效表记录的插入和删除表记录的插入和删除物理删除:物理删除:PACK不经过逻辑删除而清空表中所有记录:不经过逻辑删除而清空表中所有记录:ZAPZAP=Delete allpack表记录的插入和删除表记录的插入和删除1、编辑(修改)、编辑(修改)EDIT|CHANGE FOR FIELDS 如不指明范围和条件,默认如不指明范围和条件,默认为从当前记录开始为从当前记录开始指明要编辑的字段,指明要编辑的字段,用逗号分隔用逗号分隔注:编辑窗口与编辑方法与注:编辑窗口与编辑方法与APPEND相同相同记录的编辑和替换记录的编辑和替换2、表记录的替换、表记录的替换REPLACE WITH ,WITH,FOR 如不指明范围和条件,默认如不指明范围和条件,默认为当前记录为当前记录类型必须一致类型必须一致注:注:如果表达式的值大于字段宽度,字符型将右边如果表达式的值大于字段宽度,字符型将右边超出部分截去,数值型首先减少小数宽度,再尝试超出部分截去,数值型首先减少小数宽度,再尝试用科学计数法,再用用科学计数法,再用*表示。表示。表记录的编辑和替换表记录的编辑和替换表记录的编辑和替换表记录的编辑和替换例如:例如:1、分别求出、分别求出STUDENT中每位同学的总成绩和平均成绩,中每位同学的总成绩和平均成绩,并添入相应的字段。并添入相应的字段。Use studentRepl all 总成绩总成绩 with 语文成绩语文成绩+数学成绩数学成绩+外语成绩外语成绩,平均成绩平均成绩 with 总成绩总成绩/3 2、修改、修改STUDENT结构,添加并修改结构,添加并修改“是否补考是否补考”字段,即字段,即三门课程的成绩有一门小于三门课程的成绩有一门小于60的,是否补考字段的值既为的,是否补考字段的值既为真值真值Use studentModi struRepl ALL 是否补考是否补考 with.T.for 语文成绩语文成绩60.or.数学成绩数学成绩60.or.外语成绩外语成绩601、记录的复制、记录的复制COPY TO FIELDS FOR TYPE FOXPLUS|FOX2X|SDF|XLS|XL5|DELIMITED文件类型视文件类型视TYPE类型类型而定,默认为表文件而定,默认为表文件TYPE类型:类型:FOXPLUS:FoxBASE+表文件表文件 FOX2X:FOXPRO2.x表文件表文件 SDF:不带分隔符号文本格式文件:不带分隔符号文本格式文件 XLS:Excel 2.0格式文件格式文件 XL5:Excel 5.0格式文件格式文件 DELIMITED:带分隔符号的文本文件:带分隔符号的文本文件表记录的复制与追加表记录的复制与追加表记录的复制与追加表记录的复制与追加2、记录的追加、记录的追加APPEND FROM FIELDS FOR TYPE SDF|XLS|XL5|DELIMITED文件类型视文件类型视TYPE类型而定,默认为表类型而定,默认为表文件文件,且文件处于非打开状态且文件处于非打开状态自由表:自由表:结构:结构:字段名字段名字段类型字段类型字段宽度字段宽度结构的显示结构的显示结构的修改结构的修改结构的复制结构的复制表记录:表记录:记录的添加(记录的添加(APPEND)记录的浏览(记录的浏览(BROW)记录的显示(记录的显示(LIST/DISP)记录的定位(记录的定位(GO/GOTO/SKIP)记录的插入(记录的插入(INSERT)记录的删记录的删(DELE/RECALL/PACK)记录的编辑(记录的编辑(EDIT/CHANGE)记录的替换(记录的替换(REPLACE)记录的复制(记录的复制(COPY TO)记录的追加(记录的追加(APPE FROM)记录指针记录指针绝对定位绝对定位相对定位相对定位逻辑删除逻辑删除逻辑恢复逻辑恢复物理删除物理删除表的打开与关闭表的打开与关闭