各列的第一行称为字段名总复习Foxpro部分一、数据库和数据库管理系统的基础知识1、基本概念1)数据(Data):计算机处理的符号、数值、声音、图象等各种信息。2)数据库(DataBase):指的是存储在计算机里的按一定的规则相互关联的数据的集合。3)数据库管理系统(DBMS):以数据库应用为目的的计算机系统。必须能完成数据收集、存储、处理、维护,对数据的安全性和完整性进行控制和检查、检索等一系列功能。数据库的维护包括:修改,插入,更新和删除。数据库的管理包括:分类,查找,统计和输出。4)数据库管理系统特点:①数据共享,提高了数据的利用率②数据数据冗余度低,可以控制。③数据独立性高,由“数据依赖于程序”改变为“以数据为核心”5)常见的数据库模型有层次模型、网状模型和关系模型。所谓关系模型实际上是一个二维表。Foxpro就是在计算机上实现的关系型数据管理系统。在这种二维表格中,每一行叫做一个记录,每一列叫做一个字段。2、启动Foxpro:开始——程序——Foxproforwindows——Foxproforwindows退出Foxpro:1)File——exit2)在命令窗口中输入Quit回车3、Foxpro窗口组成(如右图)标题栏:菜单栏:可完成Foxpro的各种操作工作区:显示一些信息(如命令执行后的结果)其中含有命令窗口,用做输入Foxpro命令,可对数据库进行各种管理。状态栏:显示当前状态(如当前打开的是哪个数据库,记录的个数,当前指针位置等内容)4、数据库管理中两种操作方法:菜单操作方法、命令操作方法二、foxpro数据库管理系统的基本操作5、数据库结构的基本概念:建立数据库分两步走,先建立库结构(再追加记录),库结构确定所创建的数据库包括那些字段,每个字段名称、类型、长度等属性。6、建库方法1)File——new——选择Table/dbf——new2)在命令窗口中输入creat路径数据库名回车7、数据类型和表示法:字段名数据类型字段宽度、小数位数字段名可以字母、汉字打头,由汉字、字母、数字、上下划线构成,不可有空格等特殊字符,长度不超过10个字符(半角),同一数据库中不可有同名字段字符型(character)由汉字、字母、数字、符号构成,最长可有254个字符。引用时由单引号引起来。数值型(numeric)由数字、正负号及小数点构成,长度小于等于20,小数点占一位。可直接引用。如果是小数,宽度=整数位数+1(小数点)+小数位数逻辑型(logical).T.(真).F.(假)长度为1引用时用两个小圆点引起来。日期型(date){yy/mm/dd}的形式,长度为8。引用时用大括号引起来。359……王喜……050102……376李真真050101总分姓名学号一列称为一个字段每一行称为一个记录8、打开、关闭数据库的方法:1)打开:①File——open——指定数据库——open②在命令窗口中输入USE〈数据库名〉回车③Windows——View___open——指定数据库——open2)关闭:①Windows——View——close②在命令窗口中输入USE回车③退出Foxpro9、退出Foxpro的命令:quit查看数据库结构的命令:liststru修改数据库结构的命令:modistru10、输入、追加数据的方法:(必须先打开数据库)1)recorde——append——打开输入窗口输入新记录2)在命令窗口中输入APPEND回车注:用append追加是追加到库的末端。Appendblank:在数据库末尾增加一条空白记录。11、查看数据库中记录的数据:命令格式:disp/list/brow﹝〈范围〉﹞﹝[fiel]〈字段名〉﹞﹝for〈条件表达式〉﹞注:1)①在命令中如果缺省范围短语,不同的命令有不同的默认值。例如:Browse,List,Count,Sum,Average,Sort等命令的范围默认为ALL;Display,Delete,Recall,Replace等命令的范围默认为当前记录。②命令中如果包括For条件短语,但缺省范围短语,则无论该命令的原范围默认值是什么,范围一律默认为All.③范围参数操作对象All对所有记录操作。Nextn对从当前记录起的连续n个记录操作(包括当前记录)。Recordn对第n个记录操作。Rest对从当前记录起的以下剩余记录操作(包括当前记录)。2)fields后各字段名之间用半角逗号分隔,在使用list和display中,“fields”可省略不写,但在使用browse命令中”fields”这个词不可省略。例:设有文件名为CHENGJI.DBF的学生成绩数据库,显示考试成绩大于500分的学生姓名、学号、总分。(注意:逗号必须是半角字符)(1)list姓名,学号,总分for总分500(2)displayall姓名,学号,总分for总分500(3)browsefiel姓名,学号,总分for总分5003)数学表达式的表示和使用:ⅰ)算术运算符:+-*/^(乘方)ⅱ)关系运算符:===$(包含)ⅲ)逻辑运算符:.AND..OR..NOT..AND.两边表达式均成立时,整个表达式成立.OR.两边表达式有一个成立时,整个表达式成立.NOT.后面的表达式不成立,整个表达式成立;反之亦然ⅳ)运算优先级:算术运算符关系运算符逻辑运算符()^*/+-同一级别.not..and..or.高低例:9=X=-1表示为:X=-1.AND.X=9X10或X=5表示为:X10.OR.X=5计算机成绩不为.F.表示为:.NOT.计算机=.F.baba在计算机中的表示方法:a-b*(a/b)∧(1/2)命令功能List显示当前数据文件的全部记录数据(滚动)Display显示当前数据文件的当前记录数据(分屏)browse在主窗口中以表格形式显示当前数据库记录的全部数据ABA.AND.BA.OR.B.NOT.ATTTTFTFFTFFTFTTFFFFT4)在条件表达式里:1)字符型数据必须用单引号括起来,如学号=’010228’2)日期型数据必须用大括号括起来,如出生日期={75/12/23}3)逻辑型数据必须在T或F前后个加一个圆点如:计算机=.T.性别=.F.4)各个字符除了汉字其余的必须用半角字符输入,关系运算符两边的数据类型必须一致。12、SUBSTR函数格式:Substr(字符串表达式,n,m)功能:从字符串表达式中的第n个字符开始,取出m个字符例:显示姓张的而且总分超过475分的同学的记录browseforsubstr(姓名,1,2)=‘张’.and.总分47513、统计运算1)求和(纵向求和):对所有记录求和,并把结果存到内存变量中:命令方式:sum[字段名列表][to内存变量表]例:sum英语,数学,语文toyy1,sx1,yw1对满足一定条件的记录求和,并把结果存到内存变量中:命令方式:sum[字段名列表][范围][for条件][to内存变量表]例:sum英语,数学,语文FOR寄读=.T.2)求平均数:对所有记录求平均数,并把结果存放到内存变量中:命令方式:average[字段名表][To内存变量表]例:aver英语,数学,语文toyy2,sx2,yw2对满足一定条件的记录求平均数:命令方式:average[字段名列表][范围][for条件][to内存变量表]例:aver英语,数学,语文for寄读=.T.3)计数:○1统计数据库的记录数:count○2统计满足一定条件的记录数:count[范围][for条件][to内存变量表]例1:countfor寄读=.T.torenshucountfor外语=84.and.外语=60例2:将计数后的结果保存在指定变量里:countfor寄读=.T.TOJD若要查看JD的值,可在命令窗口执行?JD或?寄读人数=,JD14、?号命令格式:?表达式功能:依次计算并显示各表达式的值。如果?命令后边不带任何参数,则起到换行作用。15、常量与变量常量:也称常数,指固定不变的数据。FoxPro中的常量主要分为数值常量,字符常量,日期常量和逻辑常量四大类。变量:在命令或程序执行中,可以任意改变变量的值。在FoxPro系统中,分为内存变量和字段变量。内存变量名用英文字母打头,由英文字母,数字及下划线等组成,也可以用汉字作为内存变量名。区分:如果是常量就可以明显地区分出数据的类型:数值型,字符型,日期型或逻辑型。如果前面四种类型都不是就是变量。三、握Foxpro数据库的维护和应用方法16、记录指针记录号:数据库中一般都有很多条记录,为确定记录在数据库中的位置,每个记录都有一个编号,叫做记录号。记录指针:FoxPro还设置一个记录指针,使它指向某个记录。当前记录:记录指针指示的记录,叫做当前记录。记录指针的值:当前记录的记录号,也叫做记录指针的值。(在状态栏中显示的标志“Record:n/m”m是当前打开的数据库中记录的总数,n就是当前记录的记录号。)记录指针定位:利用FoxPro的命令,可以移动记录指针的位置,使指定的记录变成当前记录。记录指针定位的方法:1)n在命令窗口中,输入某一数字n然后回车,则指针移到记录号为n的记录上。2)gon在命令窗口中,输入gon然后回车,则记录指针移到记录号为n的记录上。3)gotop在命令窗口中,输入gotop然后回车,则记录指针移到数据库的首记录。4)gobottom在命令窗口中,输入gobott然后回车,则记录指针移到数据库的末尾记录。5)skipn在命令窗口中,输入SKIPn然后回车,当n为正值时记录指针从当前位置向下移动n个记录。当n为负值时记录指针从当前位置向上移动n个记录。当前记录号=原当前记录号+n在命令窗口中,输入SKIP然后回车,默认为skip1。17、插入记录(P162)执行命令功能描述Append在数据库尾追加一个新记录,相当于命令:gobottominsertInsert在当前记录之后插入一条新记录,成为当前记录,其后的记录下移,且相应的记录号均加1Insertbefore在当前记录之前插入一条新记录,成为当前记录,其后的记录下移,且相应的记录号均加1命令后加“blank”表示插入一条空记录。例:insertblank命令执行结果:直接在当前记录后插入一个空记录。18、删除(P163)命令功能操作范围恢复逻辑删除delete为要删除的记录做逻辑删除标记默认当前记录用recall命令物理删除pack删掉所有带逻辑删除标记的记录被逻辑删除的记录不可恢复zap删除所有的记录,只留下库结构全部记录不可恢复说明:1)恢复逻辑删除:RECAll[范围][FOR条件]对符合条件的记录,取消逻辑删除标记。若所有可选项缺省,则仅将当前记录取消逻辑删除标记。2)用browse命令方式打开浏览窗口后,用鼠标单击每个记录第一个字段左边的矩形标记,可以使他们从灰色变成黑色,或使他们从黑色变成灰色。用这种方法也可以完成逻辑删除或逻辑恢复。19、修改记录中的数据(P166)1)edit修改当前记录中数据;使用EDIT命令打开窗口后也可利用鼠标操作,通过滚动条找到要修改的数据,完成对其他记录的修改操作。2)使用browse命令浏览时也可以修改记录中的数据。3)使用菜单方式操作RecordChange也可以修改当前记录,或通过滚动条找到要修改的数据完成修改。20、替换数据库记录(P167)replace[范围][For条件]字段名With表达式功能:将数据库指定记录中有关字段的值用命令中相应的表达式来替换。(默认对当前记录操作;一般用于成批替换或添加记录。)例:usecj.dbfappendblankreplace姓名with‘张三’,学号with‘190617’21、数据库结构操作(P168)命令功能注意Copyto备份文件名复制数据库文件,包括结构和记录被复制的数据库要先打开Cop