版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章VFP数据库及其操作3.1创建项目3.5数据表的维护3.2创建数据库3.6数据表排序与索引3.3创建数据表3.7建立数据字典3.4数据表的基本操作3.8多数据表操作FVP项目组织简图查询(.QPR)项目(.PJX)文档数据代码类其他自由表(.DBF)数据库(.DBC)库表(.DBF)备注(.FTP)索引(.IDX)3.1创建项目项目是文件、数据、文档和VFP对象的集合。利用“项目管理器”可以很方便地组织和管理项目中的各类数据和对象用户在开发一个应用系统时,通常都是先从创建项目开始的项目(.PJX)文档数据代码类其他3.1创建项目1.建立工作目录:组织和管理磁盘中的各类文件2.建立项目文件⑴菜单:选择“文件/新建”菜单命令,或按工具栏“新建”按钮,在“新建”对话框中选择“项目”项⑵命令:CREATEPROJECT[<项目文件名>]3.打开项目文件⑴菜单:选择“文件/打开”菜单命令,或按工具栏的“打开”按钮,在“打开”对话框中选择项目文件(*.PJX)⑵命令:MODIFYPROJECT[<项目文件名>]3.2创建数据库数据库是表的集合,即在一个数据库中可以包含若干个通过关键字段相互关联的表。一个数据库文件(.DBC)中存储了所包含的表与表之间的联系,以及依赖于表的视图、联接和存储过程等信息把表放入数据库中可以减少数据的冗余,保护数据的完整性数据库使得对数据的管理更加方便和有效数据库(.DBC)库表(.DBF)备注(.FTP)索引(.IDX)3.2.1数据库的设计思想设计步骤设计过程分析数据需求明确设计目的确定需要的数据表确定需要的数据表确定所需字段确定表中需要的字段确定关系确定表间关系改进设计优化设计3.2.2数据库的创建1.建立数据库⑴项目管理器:“新建:数据库”⑵菜单:选择“文件/新建:数据库”菜单命令⑶命令:CREATEDATABASE<数据库名>2.在项目中添加数据库在项目管理器中选定“数据库”项,按“添加”按钮,在“打开”对话框中选择需要添加的数据库文件3.2.3数据库的基本操作1.打开数据库⑴项目管理器:选定要打开的数据库,按“打开”按钮⑵菜单:选择“文件/打开”菜单命令⑶命令①打开数据库文件:OPENDATABASE[<数据库文件名>]②数据库设计器:MODIFYDATABASE[<数据库文件名>]2.关闭数据库⑴项目管理器:选定要关闭的数据库,按“关闭”按钮⑵命令:CLOSEDATABASES3.删除数据库⑴项目管理器:选定数据库后,按“移去”按钮,将从项目中移去选定的库文件;按“删除”按钮,则将选定的库文件从磁盘上删除⑵命令:DELETEDATABABE<数据库文件名>3.3创建数据表1.数据表和数据库表(Table)是处理数据和建立关系型数据库及应用程序的基本元素。数据库(DATABASE)是表的集合2.数据表的类型⑴自由表:不属于任何数据库而独立存在的表⑵数据库表:属于某一数据库的表3.数据表的结构数据表形式上是一组相关联的数据按行和列排列的二维表格,用来描述一个实体字段记录3.3创建数据表INSERTAPPENDAPPENDFROMBROWSEEDITCHANGEREPLACEDELETERECALLPACKZAPLISTDISPLAYBROWSELOCATECONTINUEFINDSEEKCOUNTSUMAVERAGETOTALCOPYLISTSTRUMODISTRUCOPYSTRUCREATEUSESQRTINDEX显示结构编辑结构复制结构统计数据数据表结构数据表记录新建表打开/关闭增加记录删除记录显示记录修改记录检索记录排序索引复制表3.3.1基本概念
定义字段:为每个字段指定名称、数据类型和宽度,它们决定了表中的数据是如何被标识和保存的⑴字段名:以字母或汉字开头,由字母、汉字、数字或下划线组成,不能包含空格。数据库表字段名最长为128个字符,自由表字段名最长为10个字符⑵字段类型:决定了存储在字段中的值的数据类型⑶字段宽度:指能够容纳存储数据的长度⑷小数位:若字段的类型是数值型(N)和浮点型(F)时,还需给出小数位数。小数位数不能大于9,双精度型数据的小数位数不能大于18⑸使用空值:在建立数据表时,可以指定字段是否接受空值(NULL)3.3.1基本概念建立“教学管理”数据库,其中有“学生”、“课程”和“成绩”三个表3.3.2自由表的建立____1.定义表结构表结构的定义在“表设计器”中完成。打开表设计器的方法有:⑴菜单:选择“文件/新建”菜单命令⑵命令:CREATE<表文件名>⑶项目管理器:选择“自由表”,按“新建”按钮定义表结构就是设置表的字段属性,包括字段名、数据类型、字段宽度和小数位数等
定义字段
修改字段
插入字段
调整字段
删除字段3.3.2自由表的建立____2.输入记录输入记录数据可以选择“显示/浏览”或“编辑”菜单命令,在“浏览”或“编辑”窗口中进行⑴一般数据的输入字符型、数值型、逻辑型、日期型等字段类型数据可以直接在浏览窗口或编辑窗口中输入3.3.2自由表的建立____2.输入记录⑵备注型字段数据的输入双击名为“memo”的备注字段标志,进入备注窗口,输入文本内容⑶通用型字段数据的输入双击名为“gen”的通用字段标志,进入通用型字段输入编辑窗口。选择“编辑/插入对象”菜单命令,在“插入对象”对话框中选择插入OLE对象要删除备注字段或通用字段的内容,可双击字段名,打开编辑窗口,选择“编辑/清除”菜单命令
如果在数据表中定义了备注型或通用型字段,系统会自动生成与表文件名相同的备注文件(.FPT)。备注文件是表文件的辅助文件,它随着表文件的打开而打开,随着表文件的关闭而关闭
无论一个表中定义了多少个备注型或通用型字段,系统只生成一个备注文件3.3.3数据库表的建立____1.在数据库中建立新表在项目管理器中,选择“数据库:表”项,按“新建”按钮
使用项目管理器创建的表自动包含在项目文件中
当数据库处于打开状态时,用建立自由表的方法创建的新表将包含在该数据库中3.3.3数据库表的建立____2.将自由表添加到数据库⑴项目管理器选择“数据库:表”项,按“添加”按钮⑵命令:ADDTABLE<数据表文件名>
数据库中的表只能属于一个数据库文件,如果向当前数据库中添加的表已属于其它数据库,则需要先从其它数据库中移去该数据表,然后才能将它添加到当前数据库中3.3.3数据库表的建立____3.从数据库中移去数据表⑴项目管理器选定要移去的表,按“移去”按钮,在提示对话框中按“移去”按钮;若按“删除”按钮,则不仅从数据库中移去该表,同时也从磁盘上删除了该表⑵命令:REMOVETABLE
<数据表文件名>3.4.1数据表的浏览____1.打开数据表文件
打开数据表⑴菜单:选择“文件/打开”菜单命令⑵命令:USE<表文件名>
关闭数据表⑴菜单:选择“窗口/数据工作期”菜单命令,在“数据工作期”对话框中选择表的别名后,按“关闭”按钮⑵命令:USE例如,USE学生USE课程USE3.4.1数据表的浏览____2.浏览与显示表结构⑴浏览表结构①项目管理器:选定要浏览的表,按“修改”按钮,打开表设计器②菜单:选择“显示/表设计器”菜单命令,打开表设计器⑵显示表结构(主窗口)命令:LIST|DISPLAYSTRUCTURE3.4.1数据表的浏览____3.浏览与显示记录⑴在浏览窗口中浏览记录①项目管理器:选定要浏览的表,按“浏览”按钮
对于备注型字段或通用型字段内容,可以在浏览窗口中双击相应的字段标志(“Memo”或“Gen”),打开编辑窗口浏览②菜单:选择“显示/浏览”,或“显示/编辑”菜单命令,打开浏览窗口③命令:BROWSE3.4.1数据表的浏览____3.浏览与显示记录⑵在浏览窗口中有选择地浏览记录①菜单:打开浏览窗口,选择“表/属性”菜单命令,在“工作区属性”对话框的“数据过滤器”框中输入筛选条件,可以只显示满足筛选条件的记录。删除筛选表达式,可恢复显示所有记录在“工作区属性”对话框中,选择“字段筛选指定的字段”选项,按“字段筛选”按钮,在“字段选择器”对话框中选择要显示内容的字段;选择“工作区中的所有字段”选项,可取消对字段访问的限制,恢复显示所有字段②命令设置数据过滤器:SETFILTERTO[<条件表达式>]设置字段过滤器:SETFIELDSTOALL|<字段名表>3.4.1数据表的浏览____3.浏览与显示记录
【例3.10】用命令方式浏览“学生”表中所有女生的记录SETFILTERTO性别=‘女’BROWSE【例3.11】取消【例3.10】中的记录筛选,浏览所有学生的记录SETFILTERTOBROWSE【例3.12】用命令方式浏览“学生”表中的学号、姓名、系别和贷款否SETFIELDSTO学号,姓名,系别,贷款否BROWSE【例3.13】取消【例3.12】对字段的限制,浏览“学生”表中所有字段SETFIELDSTOALLBROWSEUSE3.4.1数据表的浏览____3.浏览与显示记录⑶显示记录(主窗口)命令:LIST|DISPLAY[<范围>]
[FIELDS<字段名表>][WHILE<条件>][FOR<条件>]“FIELDS<字段名表>”可以用<表达式表>代替【例3.14】显示“学生”表中所有女生的学号、姓名和所在系的信息:USEE:\VFP6\DATA\学生.DBF&&打开学生表LISTFIELDS学号,姓名,系别FOR性别=”女”语句无WHILE有WHILE无FOR有FORDISPLAYDELETERECALLREPLACENEXT1ALLREST3.4.1数据表的浏览____应用示例1.显示所有男生的姓名与在2007年的年龄
2.显示所有姓“张”同学的学号、姓名和系别
3.显示所有姓名中含有“林”字同学的学号、姓名和系别
4.显示所有在本月过生日同学的姓名和出生日期
5.分页显示所有同学的信息
6.显示当前记录信息7.显示学号的第4位为3,并且在10月份出生的学生的信息LIST姓名,2007-YEAR(出生日期)FOR性别=‘男’LIST学号,姓名,系别FOR姓名=[张]$$LEFT(姓名,2)=[张]LISTLIST学号,姓名,系别FORAT(“林”,姓名)#0$$“林”$姓名LISTFIELDS姓名,出生日期FORMONTH(出生日期)=MONTH(DATE())DISPLAYALLDISPALY3.4.2记录的定位____1.记录指针记录指针存放的是记录号。被记录指针指向的记录称为“当前记录”
向表中录入数据时,系统会按照录入次序为记录加上记录号
数据表刚打开时,记录指针总是指向首记录通过移动记录指针可以指定当前要操作的记录文件起始标识(BOF)首记录(TOP)第2条记录………记录指针→第i条记录………第n-1条记录尾记录(Bottom)文件结束标识(EOF)3.4.2记录的定位____2.移动记录指针⑴菜单:打开浏览窗口,选择“表/转到记录”菜单命令⑵命令①绝对移动:[GO[TO]]<记录号>|TOP|BOTTOM功能:将记录指针定位在指定记录号的记录上
TOP表示第一条记录,BOTTOM表示最后一条记录②相对移动:SKIP[+|-][<算术表达式>]功能:将记录指针从当前位置向前或向后移动若干条记录位置③条件定位:LOCATE[<范围>]FOR<条件>功能:查找满足条件的第一条记录
“FOR<条件>”是必须的;使用CONTINUE命令可继续查找下一条满足条件的记录3.4.2记录的定位
【例3.15】用命令方式定位并显示“学生”表的指定记录USEE:\VFP6\DATA\学生GOTOPDISPLAYGO6DISPLAYGOBOTTOMDISPLAY【例3.16】使用SKIP命令移动“学生”表的记录指针GO2SKIP5DISPLAYSKIP–3DISPLAY3.4.2记录的定位
【练习】用命令方式显示“学生”表倒数第5条记录信息GOTOBOTTOMSKIP-4DISPLAY【例3.17】将记录指针定位在学生表中第一条性别为“男”的记录上LOCATEFOR性别=”男”?FOUND()DISPLAY CONTINUEDISPLAY3.5.1修改表结构在表设计器中可以修改表结构1.项目管理器:选定要修改的表,按“修改”按钮2.菜单:选择“文件/打开”菜单命令,或“显示/表设计器”菜单命令3.命令:MODIFYSTRUCTURE
修改字段属性后,VFP将按新的属性改写整个.DBF文件,可能造成数据丢失3.5.2添加记录____1.在浏览窗口中追加记录⑴菜单:打开浏览窗口,选择“显示/追加方式”菜单命令,可以在原有记录的后面追加多条新记录选择“表/追加新记录”菜单命令,每次只能添加一条新记录⑵命令:APPEND[BLANK]
BLANK表示空记录3.5.2添加记录____2.插入记录命令:INSERT[BLANK][BEFORE]功能:在数据表的当前记录之前或之后插入一条记录BEFORE表示“之前”3.5.2添加记录____3.从其它文件中追加记录⑴菜单:打开浏览窗口,选择“表/追加记录”菜单命令⑵命令:APPENDFROM<源表文件名>[FIELDS<字段名表>][FOR<条件>]功能:将满足条件的记录按指定的字段从源表文件中追加到当前数据表的末尾例如,将“课程”表中的相应数据追加到“课程安排”表中:USEE:\VFP6\DATA\课程安排APPENDFROME:\VFP6\DATA\课程.DBFFIELDS课程号,课程3.5.3编辑记录命令:EDIT|CHANGE[<范围>][FIELDS<字段名表>][FOR<条件>]功能:修改当前表给定范围内,满足条件记录的制定字段值3.5.3编辑记录____1.在浏览窗口中编辑记录⑴项目管理器:选定表,按“浏览”按钮,打开浏览窗口,直接修改字段值。关闭浏览窗口,所做的修改将自动保存在表文件中
备注型字段或通用型字段内容,可以双击相应的字段标志(“Memo”或“Gen”),打开编辑窗口进行编辑或修改⑵命令:BROWSE[FIELDS<字段名表>][FREEZE<字段名>][NOAPPEND][NOMODIFY][FOR<条件>]FREEZE表示冻结在指定字段NOAPPEND表示禁止追加NOMODIFY表示禁止修改3.5.3编辑记录____2.批量修改记录对一批记录中的若干字段值进行有规律的修改⑴菜单:打开数据表,选择“表/替换字段”菜单命令,在“替换字段”对话框中设置⑵命令:REPLACE[<字段1>WITH<表达式1>[ADDITIVE][,<字段2>WITH<表达式2>[ADDITIVE]…[<范围>][FOR<条件>][WHILE<条件>]功能:对表中指定范围内的满足条件的记录进行批量修改
【例3.21】给“学生”表管理系的每个学生减去15.5元助学金USEE:\VFP6\DATA\学生REPLACEALL助学金WITH助学金-15.5FOR系别=”管理”3.5.4删除记录1.逻辑删除:给记录加删除标记⑴鼠标操作:在浏览窗口中,单击左侧白色方框使之变黑⑵菜单:选择“表/删除记录”菜单命令⑶命令:DELETE[<范围>][FOR<条件>]2.恢复逻辑删除:取消删除标记⑴鼠标操作:单击逻辑删除标记,取消黑色方框⑵菜单:选择“表/恢复记录”菜单命令⑶命令:RECALL[<范围>][FOR<条件>]3.物理删除:从磁盘上删除记录,不可恢复⑴菜单:选择“表/彻底删除”菜单命令⑵命令:PACK(删除带有删除标记的记录)ZAP(一步、全部清除表中记录,仅保留表结构)RECALLDELETEPACKZAP记录物理删除逻辑删除3.5记录删除____应用示例【例3.23】逻辑删除“学生”表1983年以前出生的学生,再将其恢复DELETEFORYEAR(出生日期)<1983LIST姓名,性别,出生日期,系别RECALLALL【例3.22、24】逻辑删除“学生”表最后一条记录,再将其物理删除GOBOTTOMDELETEPACKLIST姓名,性别,系别【例3.25】删除“课程安排”表中的所有记录?RECCOUNT()ZAP?RECCOUNT()3.5记录编辑____应用练习
1.在第三个记录之后插入一条新记录
2.对从当前记录开始一直到最后一条记录的籍贯和高等数学成绩进行修改3.将所有学生的奖学金上调5%,再加10元
4.逻辑删除第一个记录
5.恢复第7个记录之前的3条记录中被逻辑删除了的记录
6.物理删除所有被逻辑删除的记录7.逻辑删除最后5条记录中姓“王”的同学GO3INSERTEDITRESTFTELDS籍贯,高等数学REPLACE奖学金WITH奖学金*1.05+10DELETERECORD1GO7SKIP-3RECALLNEXT3PACKGOBOTTOMSKIP-4DELETERESTFOR姓名=‘王’3.5.5复制数据表____1.数据表文件的复制1.数据表文件的复制⑴菜单:打开表文件,选择“文件/导出”菜单命令,显示“导出”对话框⑵命令:COPYTO<新表文件>[<范围>][FIELDS<字段名表>]
[FOR<条件>][WHILE<条件>]2.数据表结构的复制命令:COPYSTRUCTURETO<新表文件>[FIELDS<字段名表>]3.5.5复制数据表____3.数据表文件的更名在项目管理器中选择要重命名表的“快捷菜单/重命名”命令,在“重命名文件”对话框中输入新的文件名3.5.6数据表与数组之间的数据交换1.将表的当前记录复制到数组命令:SCATTER[FIELDS<字段名表>][MEMO]TO<数组名>|MEMVAR功能:将数据表的当前记录按字段顺序复制到数组或内存变量MEMO表示包括备注型字段的内容;MEMVAR传递到一组内存变量中例如,USEE:\VFP6\DATA\学生*将第1条记录的姓名、性别和系别3个字段复制到数组AA中SCATTERFIELDS姓名,性别,系别TOAAGO5*将第5条记录复制到数组BB中,包括备注型字段的内容SCATTERTOBBMEMO3.5.6数据表与数组之间的数据交换2.将数组复制到表的当前记录命令:GATHERFROM<数组名>|MEMVAR[FIELDS<字段名表>][MEMO]功能:将数组元素或同名内存变量的值顺序复制到当前记录的指定字段中例如:USEE:\VFP6\DATA\学生*在表的末尾增加一条空记录APPENDBLANK*将数组AA中的数据复制到当前的空记录中GATHERFROMAAFIELDS姓名,性别,系别3.6.1数据表排序
排序是把数据表中的记录按照某个字段值的大小重新排列,作为排序依据的字段称为“关键字”按照关键字的值从小到大的排序称为升序,从大到小的排序称为降序排序后生成一个新的数据表文件,其结构和数据可以与源文件完全相同,也可以取自源文件的一部分字段命令:SORTTO<文件名>[<范围>][FIELDS<字段名表>][FOR<条件>]ON<字段名1>[/A][/D][/C][,<字段名2>[/A][/D][/C]…][ASCENDING|DESCENDING]/A表示升序,/D表示降序,/C表示字母不分大小写。默认为升序原数据表(无序)排序结果数据表(有序)排序3.6.1数据表排序
【例3.30】对“学生”表中所有贷款的学生按“系别”的升序排序,排序后的新表文件名为“贷款学生”:USEE:\VFP6\DATA\学生SORTTO贷款学生ON系别FOR贷款否
【例3.31】将“学生”表按“系别”升序进行排序,系别相同者,按“学号”降序进行排序,排序后的新表文件名为“各系学生”:USEE:\VFP6\DATA\学生SORTTO各系学生ON系别,学号/D
【练习】分别显示所有学生中总分为最高和最低同学的姓名和各门课程的成绩SORTTOPXON总分/DUSEPXDISPLAY姓名,高等数学GOBOTTOMDISPLAY姓名,高等数学3.6.2数据表索引____1.基本概念⑴索引是由指向表记录的指针构成的文件,这些指针逻辑上按照索引关键字的值进行排序索引文件和表文件分别存储,并且不改变表中记录的物理顺序原数据表(无序)索引文件(有序)索引排序索引结果文件表文件索引文件排列依据多个字段一个表达式排列顺序各字段分别统一顺序排序范围指定范围指定条件.DBF.IDX#…语文…#语文1…77…1922…63…2873…92…3774…43…4665…87…5636…66…6433.6.2数据表索引____1.基本概念⑵索引的类型(从组织方式分类)索引类型描述关键字数目限制独立索引.IDX文件名由用户确定,必须明确打开单关键字表达式100个字符以内结构复合索引.CDX文件名与表文件名相同,随表自动打开多关键字表达式,称为标识240个字符以内非结构复合索引文件名由用户确定,随表自动打开3.6.2数据表索引____1.基本概念⑶索引关键字索引关键字是指建立索引用的字段或字段表达式,可以是表中的单个字段,也可以是几个字段组成的表达式
索引表达式通常用字符串运算符“+”将几个字段连接起来。若组成表达式的字段具有不同类型时,则必须使用函数对字段进行类型转换,使其具有相同的数据类型。一般多字段排列,都将相应的字段转换成C型表达式
例如,STR()函数可将N型数据转换为C型数据,DTOC()函数可以把D型数据转换为C型数据3.6.2数据表索引____1.基本概念⑷索引关键字的类型(按功能分类)索引类型关键字重复值说明创建修改命令索引个数主索引不允许仅适用数据库表,可用于在永久关系中建立参照完整性CREATETABLEALTERTABLE仅1个候选索引可用作主关键字,可用于在永久关系中建立参照完整性INDEXCREATETABLEALTERTABLE允许多个惟一索引允许,但输出无重复值为与以前版本兼容而设置INDEX普通索引允许可作为一对多永久关系中的“多方”3.6.2数据表索引____2.建立索引◆建立独立索引⑴利用表设计器:选择“索引”选项卡⑵命令:INDEXON<索引关键字表达式>
TO<索引文件名>[UNIQUE|CANDIDATE][ASCENDING|DESCENDING][FOR<条件>]
UNIQUE表示惟一索引;CANDIDATE表示候选索引;“无”表示普通索引
ASCENDING表示升序(默认),DESCENDING表示降序例如,为“学生”表按姓名和出生日期建立独立索引文件SY1USEE:\VFP6\DATA\学生INDEXON姓名+DTOC(出生日期)TOSY13.6.2数据表索引____2.建立索引⑶独立索引文件的打开
与表文件同时打开:USE<表文件名>INDEX<索引文件名>
打开表文件后再打开:SETINDEXTO<索引文件名>⑷独立索引文件的关闭
与表文件同时关闭:USE
单独先关闭:SETINDEXTO.DBF.IDX#…语文…#语文1…77…1922…63…2873…92…3774…43…4665…87…5636…66…6433.6.2数据表索引____2.建立索引◆建立复合索引⑴利用表设计器:选择“索引”选项卡⑵命令:INDEXON<索引关键字表达式>TAG<索引标识名>[UNIQUE|CANDIDATE][ASCENDING|DESCENDING][FOR<条件>]
UNIQUE表示惟一索引;CANDIDATE表示候选索引;“无”表示普通索引
ASCENDING表示升序(默认),DESCENDING表示降序3.6.2数据表索引____2.建立索引
【例3.32】为“学生”表建立结构复合索引,包含学号(候选索引)、性别(普通索引)、系别与性别(普通索引)、系别与出生日期(普通索引)4个索引项USEE:\VFP6\DATA\学生INDEXON学号TAG学号CANDIDATEINDEXON性别TAG性别INDEXON系别+性别TAG系别_性别INDEXON系别+DTOC(出生日期)TAG系别_生日USE3.6.2数据表索引____3.按索引顺序浏览记录一个复合索引文件中可以建立多个索引项,每一项代表了处理记录的一种逻辑顺序。使用索引之前,应先指定将要使用的索引项
⑴菜单:打开浏览窗口,选择“表/属性”菜单命令,在“工作区属性”对话框的“索引顺序”框中选择一个索引项,浏览窗口中的记录就会按照该索引顺序排列
⑵命令:SETORDERTO[TAG<索引标识名>]3.6.2数据表索引____3.按索引顺序浏览记录
【例3.33】用命令方式分别将“性别”和“系别_性别”索引项设置为当前索引,并显示“学生”表的记录,最后取消索引CLEARUSEE:\VFP6\DATA\学生SETORDERTOTAG性别DISPLAYALLSETORDERTOTAG系别_性别DISPLAYALLSETORDERTOTAGDISPLAYALL3.6.2数据表索引____应用示例1.按总分和高等数学成绩建立索引文件SY1.IDX
2.对XJK.DBF文件按姓名进行索引(索引文件名为XJK.IDX),并分别用SEEK和FIND命令检索显示第一个姓“李”的同学的信息
3.对XJK.DBF文件建立以高等数学成绩降序排列的结构复合索引文件SY2.CDX
4.对XJK.DBF文件,其记录以高等数学成绩升序排列,高等数学成绩相同时则按学号升序排列,建立结构复合索引文件SY3.CDX
5.建立一数据库文件XJK2.DBF,其结构中包含有学号、系别、专业三个字段,并输入一些记录值,然后将XJK.DBF和XJK2.DBF连接成一个数据库ZH.DBF文件
6.将上题的XJK2文件按学号建立索引(索引标记为SNO),以学号为关联表达式,将XJK和XJK2建立关联并显示3.6.3数据表查询数据表建立索引后,就可以使用FIND、SEEK等查询命令,快速定位记录,提高数据库应用系统的运行效率1.FIND命令:FIND<字符串>|<数值>2.SEEK命令:SEEK<表达式>
只有对已建立过索引的数据表才能使用这两条命令
索引文件的关键字必须是要查找的字段命令执行后将使记录指针指向所匹配的第一条记录,可以使用测试函数FOUND()判断检索成功。检索成功时,FOUND()返回.T.,EOF()返回.F.,RECNO()返回对应记录号;否则,FOUND()返回.F.,EOF()返回.T.,RECNO()返回末记录号+1若要继续查找所匹配的下一条记录,可以使用SKIP命令3.6.3数据表查询
【例3.34】对“学生”表按“学号”进行索引检索USEE:\VFP6\DATA\学生SETORDERTOTAG学号&&将“学号”索引项设置为当前索引FIND01020215&&或SEEK“01020215”【例3.35】对“学生”表按“性别”及“系别_性别”进行索引检索USEE:\VFP6\DATA\学生SETORDERTO性别FIND女 &&或SEEK“女”DISPLAYSETORDERTOTAG系别_性别CZ=“计算机”+“男”SEEKCZ&&或FIND&CZSKIP&&继续查找下一个匹配的记录3.6.4数据表统计与汇总____1.数据表的统计⑴计数(COUNT)COUNT[<范围>][FOR<条件>][WHILE<条件>][TO<内存变量名>]
【例3.36】统计“学生”表中总人数及没有贷款学生的人数USEE:\VFP6\DATA\学生COUNTTOZRS?“学生总人数为:”,ZRSCOUNTFOR!贷款否TOWDKS?“没有贷款的学生人数为:”+STR(WDKS,3)【练习】统计“学生”表中没有贷款学生在总人数中的百分比?“没有贷款学生在总人数中的百分比为:”,WDKS/ZRS*100,“%”3.6.4数据表统计与汇总____1.数据表的统计⑵求和(SUM)SUM<算术表达式表>[<范围>][FOR<条件>][WHILE<条件>][TO<内存变量名表>|ARRAY<数组名>]
【例3.37】统计“成绩”表中学号为“01020215”各门课程的总成绩USEE:\VFP6\DATA\成绩SUM成绩FOR学号=“01020215”3.6.4数据表统计与汇总____1.数据表的统计⑶求平均值(AVERAGE)AVERAGE<算术表达式表>[<范围>][FOR<条件>][WHILE<条件>][TO<内存变量名表>|ARRAY<数组名>]【例3.37】统计“成绩”表中学号为“01020215”各门课程的总成绩USEE:\VFP6\DATA\成绩AVERAGE成绩FOR学号=“01020215”USEE:\VFP6\DATA\成绩AVERAGE成绩TOZFCOUNTFOR成绩>ZF【练习】统计成绩大于总平均成绩的成绩数3.6.4数据表统计与汇总____2.数据表的分类汇总对数据表中的数值型字段,按照排序或索引关键字值的不同分类,然后各组分别求和命令:TOTALON<汇总关键字>TO<表文件名>
数据表必须事先按“汇总关键字”排序或索引
【例3.39】求每个学生各门课程的总成绩USEE:\VFP6\DATA\成绩INDEXON学号TAG学号TOTALON学号TOE:\VFP6\DATA\成绩汇总USEE:\VFP6\DATA\成绩汇总LISTUSE3.7建立数据字典数据库文件可以作为一个数据字典来存储和管理有关记录和字段的规则、缺省值、触发器、表间关系等数据库表是数据库的一部分,具有自由表所没有的一些属性,在“表设计器”下部可以设置这些属性数据库表所特有的属性3.7.1设置表的字段属性1.输入掩码:输入掩码是指定义字段中的值必须遵守的标点、空格和其他格式要求,以限制或控制用户输入的数据格式,屏蔽非法输入,从而减少人为的数据输入错误,保证输入的字段数据具有统一的风格,提高输入的效率2.格式:格式实质上就是一种掩码,它决定了字段在浏览窗口、表单、报表中的显示样式掩码含义掩码含义!小写字母转换为大写D使用系统日期格式#输入数字、空格和正负号L在数值前显示填充的前导零,分隔小数点左边的数字串N只允许输入字母和数字.规定小数点的位置T禁止输入字段的前导空格和结尾空格字符9允许数字和正负号X允许输入任何字符A使用系统日期Y只允许输入逻辑字符3.7.1设置表的字段属性3.标题:字段标题将作为该字段在浏览窗口中的列标题,以及表单表格中的默认标题名称3.7.1设置表的字段属性4.字段注释:为字段添加注释,使表更容易被理解此外,还可以在“表设计器”的“表”选项卡中“表注释”框为整个数据表添加注释3.7.2设置表的有效性规则1.字段级规则将用户输入的数据与所定义的规则表达式进行比较,如果输入的值不满足规则要求,系统即拒绝该值,从而控制输入到字段中的数据类型2.默认值在浏览窗口、表单或以编程方式输入数据时,VFP将自动为某个字段填入默认值,直到输入新值默认值可以是任何有效的表达式,但表达式的返回值必须和该字段的数据类型一致3.7.2设置表的有效性规则3.记录级规则可以控制用户输入到记录中的信息类型,检验输入的整条记录是否符合要求。字段级有效性规则只对应一个字段,记录级有效性规则通常用来比较同一辑录中的两个以上字段值,以确保它们遵守在数据库中建立的有效性规则。记录的有效性规则通常在输入或修改记录时被激活,在删除记录时一般不起作用设置是在“表设计器”的“表”选项卡的“记录有效性”框中完成3.7.3设置触发器触发器是指对记录进行输入、删除、更新等操作时,系统自动启动的一个程序,用来完成指定的任务⑴插入触发器是在表中插入记录时所触发的检测程序,该程序可以是表达式或自定义函数。检测结果为真时,接受插入的记录⑵更新触发器是在表中修改记录后按回车键时所触发的检测程序。检测结果为真时,保存修改后的记录;否则,不保存修改的结果,同时还原修改之前的记录值⑶删除触发器是在表中删除记录时所激发的检测程序。检测结果为真时,该记录可以被删除;否则,禁止删除该记录3.7.4创建永久关系永久关系是数据库表之间的关系,存储在数据库文件中建立关系的两个表通常具有公共字段或语义相关的字段,其中包含主关键字段的表称为父表,包含外部关键字段的表称为子表1.建立关系:对主关键字段和外部关键字段使用相同的索引表达式分别建立索引;然后打开“数据库设计器”,将父表的索引拖到子表相匹配的索引上(两表之间显示一条关系线)2.编辑关系:选择关系线快捷菜单的“编辑关系”命令3.删除关系:选择关系线快捷菜单的“删除关系”命令3.7.5设置参照完整性
参照完整性是指建立一组规则,当用户插入、更新或删除一个数据表中的记录时,通过参照引用另一个与之有关系的数据表中的记录,来检查对当前表的数据操作是否正确建立了关系的两个数据库表,通过实施参照完整性规则,可以确保:当父表中没有关联记录时,记录不得添加到子表中;当因改变主表的值而导致子表中出现孤立记录时,主表的值不能被改变;当主表记录在子表中有匹配记录时,该主表记录不能被删除设置方法:打开数据库设计器,选择“数据库/清理数据库”菜单命令,再选择“数据库/编辑参照完整性”菜单命令,在显示的“参照完整性生成器”对话框中分别定义更新规则、删除规则和插入规则3.8.1工作区的选择____1.工作区VFP允许在32767个工作区中打开和操作数据表。要同时使用多个数据表,必须在不同工作区中分别打开每个工作区都有一个编号(工作区号),用1、2、3等数字表示,对1~10号工作区,还可以用A~J字母表示
用户在某一时刻只能在一个工作区上(即当前工作区)操作
工作区中的记录指针彼此独立,分别指向本工作区数据表的当前记录。通常,在一个工作区中移动记录指针时不会影响其他工作区的记录指针3.8.1工作区的选择____2.选择工作区SELECT<工作区号|别名|0>功能:选择需要使用的工作区执行SELECT命令后,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厂房工程质量保修与赔偿合同(04版)
- 常州2024年度二手医疗器械交易合同使用说明
- 二零二四年电商行业竞争调查合同3篇
- 二零二四年度技术开发合同全新范本
- 国土变更合同
- 二零二四年度国际物流仓储服务合同
- 采购设备合同评估单
- 猕猴桃树苗购买合同
- 专业医院护工服务合同
- 航空工程项目管理实施方案
- 施工劳务承包合同精简版2页
- 分管教学副校长在期中质量分析会上的发言教学文稿
- AI表面质量检测系统产品介绍PPT课件
- 预缴税款的申报表(doc 2页)
- 餐饮服务单位(食堂)餐厨废弃物(泔水)处理记录台账
- 青少年特发性脊柱侧弯症中医诊疗方案4
- 研发系统积分考核管理办法
- 食品安全自查表格模板
- 加热装配计算
- 北师大版四年级数学上册第七单元教材分析
- 房屋买卖合同(维文)
评论
0/150
提交评论