《《表与数据库》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《表与数据库》PPT课件.ppt(93页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第3章 表与数据库本章主要内容v数据表的建立与基本操作v数据库的建立与基本操作v表的索引与排序v表间关系与参照完整性v数据共享v重点重点v表与数据库的建立v表的基本操作v表的索引v难点难点v表的索引v数据库表的多表间的关系v课时安排:课时安排:课时(理论课时,讲授课时)3.1 数据表的建立vVFP6.0中要处理的数据都是以二维表格的形式存放的,表文件的扩展名为.DBF。v表分为自由表和数据库表两种。v表由行和列组成,表中的每一行在VFP6.0中称为一条记录,每一列称为一个字段。v每个表包括表名、表结构和表记录三部分,如下表所示。3.1.1 表的基本概念学生信息表学号姓名性别出生日期班级照片备注
2、0301022王大伟男87/04/11计3班照片简历0301005李明亮男86/11/01计3班照片简历0302011赵 红女86/03/13计1班照片简历0203005张一敏男87/10/14计1班照片简历0203023李小萌女87/05/06计2班照片简历0302018欧阳伟强男85/09/22计1班照片简历3.1.2 设计表结构1.字段名字段名 字段名可以由字母、数字、下划线及汉字组成,但必须以字母或汉字开头,字段名中不允许有空格。自由表中的字段名长度不能超过10个字符,数据库表允许使用长字段名,最多可达128个字符。2.字段类型字段类型 VFP6.0提供了常用的11种字段类型3.字段宽
3、度字段宽度 字段宽度以字符为单位,用以表明该字段允许存放的最大字节数或数值位数。在建立表结构时,需要规定字符型、数值型、浮动型这3种字段的宽度,若有小数部分则小数点也占一位。货币型、日期型、日期时间型、双精度型字段宽度均为8字节,逻辑型字段宽度为1字节,整型、备注型字段和通用型字段宽度均为4字节。说明:备注型和通用型字段的内容都没有直接存放在表文件中,而是存放在一个与表文件同名的备注文件(扩展名为.fpt)中。4.小数位数小数位数 只有数值型与浮动型字段才有小数位数,小数位数至少应比该字段的宽度值小2。若字段值是整数,则应定义小数位数为0。表结构的建立字段名字段名字段类型字段类型 字段宽度字段
4、宽度小数位数小数位数表中每个字表中每个字段的名字,段的名字,它必须以汉它必须以汉字、字母或字、字母或下划线开头,下划线开头,由汉字、字由汉字、字母、数字或母、数字或下划线组成。下划线组成。长度也有规长度也有规定定该字段中存放该字段中存放数据的类型,数据的类型,是字段变量的是字段变量的类型。常用的类型。常用的主要类型有:主要类型有:C、N、L、D、M。根据需要。根据需要确定确定该字段存放数该字段存放数据所需的最大据所需的最大宽度。只有字宽度。只有字符型、数值型、符型、数值型、浮点型数据需浮点型数据需要用户输入宽要用户输入宽度,其他类型度,其他类型的字段宽度由的字段宽度由系统确定系统确定只有数值型
5、只有数值型与浮点型字与浮点型字段才有。段才有。是否是否允许为空允许为空是否允许字段是否允许字段接受空值接受空值(NULL)。3.1.2 建立表结构例:创建一个学生信息表,取名为student_info.dbf菜单方式 (1)选择VFP6.0主界面菜单【文件】|【新建】命令,出现“新建”对话框,在“文件类型”下选择“表”,单击【新建】按钮,弹出“创建对话框”。“新建新建”对话框对话框(2)在“创建”对话框中输入表文件名,选择保存类型及保存位置。单击【保存】按钮后便打开了表设计器。“创建创建”对话框对话框(3)在表设计器中输入各字段的字段名、字段类型、字段宽度和小数位等。图图3-4 表设计器表设计
6、器命令方式命令格式:命令格式:CREATE|?说明:使用?或省略该参数,将打开“创建”对话框,并提示输入表名并选择保存表的位置。CREATE命令执行后,屏幕上弹出表设计器窗口,以后的操作方法与菜单操作相同。利用复制命令创建新表 v命令格式一:COPY STRUCTURE TO FIELDS v功能:将当前表的结构复制到一个新的自由表中,但不复制任何记录数据。v说明:FIELDS 子句表示只复制字段名表中列出的字段,若省略该字句,则复制所有字段。v命令格式二:COPY TO FIELDS FOR|WHILEv功能:将当前表的结构和记录数据都复制到一个新的自由表中。v说明:FIELDS 选项指定要
7、复制的字段;和选项指定要复制的记录。若省略,复制所有字段和记录。3.1.3 输入记录 表结构建立完成后,选择“确定”按钮,这时弹出对话框,询问“现在输入数据记录吗?”,选择“是”,则进行记录的编辑窗口直接输入记录。否则用以下方法追加记录。1.从键盘直接输入记录从键盘直接输入记录菜单法:选择菜单【显示】|【浏览】命令,打开表记录的浏览窗口,再选择【显示】|【追加模式】命令,就可以输入记录了。命令法;命令格式:APPEND BLANK 功能:向打开的表文件的尾部添加新的记录。说明:BLANK子句表示在表的尾部追加一条空白记录 2.将其它表中的记录或数组中的数据追加到当前表中将其它表中的记录或数组中
8、的数据追加到当前表中菜单法 (1)打开欲追加记录的表,然后选择菜单【表】|【追加记录】命令,出现“追加来源”对话框,如图所示。“追加来源追加来源”对话框对话框(2)单击【选项】按钮,弹出“追加来源选项”对话框,可以对需要追加的记录和字段进行选择操作。“追加来源选项追加来源选项”对话框对话框命令法:v命令格式一:APPEND FROM|?FIELDS FOR v功能:从指定的表中向当前表尾部追加记录数据。v说明:v选择?子句表示若没有指定表,则从弹出的“打开”对话框中选择源表文件。v选择FIELDS子句表示只追加指定字段的数据。若省略,则追加两表中所有相同字段数据。v选择FOR 子句表示对满足条
9、件的记录进行追加。若省略,追加所有记录数据。v命令格式二:APPEND FROM ARRAY FIELDSFOR v功能:将数组中的数据作为新记录追加到当前表中。【例】用数组给学生信息表添加一条记录。DIME ST(2)ST(1)=”0203021”ST(2)=”周建平”USE student.info APPEND FROM ARRAY ST FIELDS st_number,st_name3.2 修改和使用表3.2.1 打开和关闭表打开和关闭表只有打开了的表才能被操作!1.打开表打开表菜单方式打开 选择【文件】|【打开】命令,弹出“打开”对话框,选中表文件后确定即可。命令方式打开命令格式:
10、USE 功能:打开指定的表文件。若未指定表名,使用?子句,则在“打开”对话框中指定。2.关闭表关闭表v命令格式命令格式1:USE IN|功能:关闭当前工作区中打开的表。功能:关闭当前工作区中打开的表。v命令格式命令格式2:CLOSE DATABASE功能:关闭所有打开的数据库文件和表文件。功能:关闭所有打开的数据库文件和表文件。v命令格式命令格式3:CLOSE ALL功能:关闭打开的的各种类型的文件。功能:关闭打开的的各种类型的文件。3.2.2 在项目中添加/移去表1.在项目中添加表在项目中添加表 在项目管理器中选择“自由表”项,然后单击【添加】按钮,在弹出的“打开”对话框中选择要添加的表,单
11、击【确定】按钮后所选择的表就被添加到了项目中。2.移去移去|删除表删除表 在项目管理器中选择要移去的表,单击【移去】按钮,弹出如图所示的对话框,单击【移去】或【删除】按钮完成相应的操作。“移去移去|删除删除”对话框对话框 3.2.3 修改表的结构1.浏览表结构浏览表结构v命令格式:命令格式:LIST|DISPLAY STRUCTURE TO PRINTER|TO FILE v功能:显示当前表的结构。显示的信息包括表文件名、记录总数、备注文件大小、最后一次修改日期、各字段属性等。v 说明:v (1)LIST和DISPLAY的区别在于,当要显示的内容超过一屏时,LIST连续显示,而DISPLAY分
12、屏显示。v (2)TO PRINTER|TO FILE:将所显示的内容送往打印机输出或保存在指定的文本文件中。2.修改表的结构修改表的结构 菜单方式 在项目管理器中选择表后单击【修改】按钮,或者首先打开要修改的表,选择【显示】|【表设计器】,在打开的表设计器中对表结构进行修改。命令方式v 命令格式:MODIFY STRUCTUREv 功能:打开表设计器对当前表结构进行修改。3.2.4 记录指针定位 1.绝对定位命令绝对定位命令 v 命令格式:GO|GOTO|IN工作区号|INv功能:将记录指针定位到指定的记录上。v说明:(1)GO和GOTO的作用完全一致。命令格式2中的命令 相当于GO。(2)
13、:将指针定位到第n条记录上。(3):将指针定位到首记录。(4):将指针定位到尾记录。(5)IN工作区号|IN:指出指针所在工作区,省略时为当前工作区。2.相对定位命令相对定位命令v命令格式:命令格式:SKIP n|-n v功能:以当前记录为基准,将记录指针向后(功能:以当前记录为基准,将记录指针向后(n)或向前)或向前(-n)移动)移动n 条。若省略条。若省略 n|-n,系统默认为,系统默认为1。v说明:若指针向后移时超出了表文件记录数,则说明:若指针向后移时超出了表文件记录数,则RECNO()函数返回值为记录数函数返回值为记录数+1,EOF()返回返回.T.。若向前移时超。若向前移时超出了首
14、记录,则出了首记录,则RECNO()返回值为返回值为1,BOF()返回返回.T.。【例】记录指针定位命令和函数举例。USE E:学籍管理系统student_info?RECNO()1&当前记录号为 GO BOTTOM?EOF().F.&指针没有处于文件尾 SKIP?EOF().&指针移到文件尾3.2.5 浏览表记录1.浏览记录浏览记录v命令格式:LIST|DISPLAY FIELDSFOR|WHILEOFFTO PRINTER|TO v功能:显示当前表中的部分记录和字段内容。v说明:可在ALL、RECORD、NEXT 和REST中选择一个范围参数。FIELDS:只显示中列出的字段内容,若省略,
15、显示所有字段。FOR|WHILE:显示满足的记录,若省略,则显示内限定的记录。OFF:不显示记录号,省略时显示记录号。TO PRINTER|TO:指出所显示结果的输出方向。TO PRINTER将显示结果送往打印机,TO 将显示结果存入文本文件。vLIST和DISPLAY的区别有两点:一是若显示的内容超过一屏,LIST以连续方式显示,DISPLAY分屏显示;二是若省略和选项,LIST显示所有记录,DISPLAY只显示当前记录。【例】LIST和DISPLAY命令举例。USE E:学籍管理系统student_info GO 4 DISPLAY LIST LIST st_name,st_sex,st_
16、date FOR st_sex=”男”DISP st_name,st_sex,st_date FOR st_sex=”男”2设置记录过滤命令设置记录过滤命令v命令格式:SET FILTER TO v功能:过滤记录v若要取消过滤的记录,则使用命令SET FILTER TO。3设置字段筛选命令设置字段筛选命令v命令格式:SET FIELDS TO v功能:筛选字段v若要取消字段筛选,使用命令SET FIELDS TO ALL。3.2.6 修改、插入和删除表记录修改、插入和删除表记录 1.修改表记录 命令格式1:EDIT|CHANGE FIELDSFOR|WHILE功能:打开表的的编辑窗口对指定记录
17、的指定字段内容直接进行修改。命令格式2:BROWSE FIELDSFOR|WHILE功能:打开表的浏览窗口对指定记录的指定字段内容直接进行修改。该命令还有一特殊功能,见P63命令格式3:REPLACE WITH ,WITH FOR|WHILE功能:在指定范围内对满足条件记录的字段值进行成批替换修改。说明:若和选项同时缺省,则只对当前记录进行替换修改。【例】计算学生成绩表中各条记录的总评成绩,并将结果填入表中。(假设总评=成绩*0.8+平时成绩*0.2)USE E:学籍管理系统school_report REPLACE ALL sum_achi 总评 WITH achieve*0.8+peace
18、_achi*0.22.插入新记录插入新记录命令格式:INSERT BEFORE BLANK功能:在当前表中插入一条新记录。说明:(1)BEFORE:在当前记录前插入新记录,省略此项,新记录插入在当前记录的后面。(2)BLANK:插入一条空白记录,留待用EDIT、BROWSE等修改命令添加其内容。【例】在学生信息表第3条记录前面插入一条新记录。USE E:学籍管理系统student_info GO 2INSERT 3.删除记录删除记录v删除记录的过程分两步:先对要删除的记录作删除标志(称为逻辑删除),再对作了删除标志的记录从表中彻底删除(称为物理删除)。作了删除标志的记录还可以恢复,彻底删除的记
19、录无法再恢复了。作删除标志(逻辑删除)命令格式:DELETE FOR|WHILE功能:对指定范围内满足条件的记录作删除标志。说明:省略又无时,只对当前记录作删除标志。恢复带删除标志的记录命令格式:RECALL DELETE FOR|WHILE功能:取消指定范围内满足条件的记录的删除标志。说明:省略又无时,只取消当前记录的删除标志。彻底删除(物理删除)命令格式:PACK功能:将所有带删除标志的记录彻底删除。说明:彻底删除后记录不能再恢复了,所以使用此命令时要小心。一次性删除所有记录。命令格式:ZAP功能:一次性将当前表的所有记录彻底删除。【例3.10】删除记录举例。USE E:学籍管理系统stu
20、dent_info GO 2 DELETE NEXT 2 LIST RRCALL RECORD 2 PACK LIST3.4 建立数据库3.4.1 建立数据库文件什么是数据库?为什么要使用数据库?如何使用?1.使用菜单创建数据库 与创建数据表的方法基本相同.2.使用命令建立数据库v命令格式:CREATE DATABASE|?v功能:新建一个数据库并打开它。3.4.2 对数据库的操作 1.打开数据库v命令格式:OPEN DATABASE|?EXCLUSIVE|SHARED NOUPDATE VALIDATE v功能:打开指定的数据库文件。v说明:v(1)EXCLUSIVE|SHARED:以独占|
21、共享方式打开数据库。独占方式即不允许其他用户在同一时刻使用该数据库,共享方式允许其他用户在同一时刻使用该数据库。默认的打开方式由SET EXCLUSIVE ON|OF的设置决定,系统默认设置为ON。v(2)NOUPDATE:指定数据库以只读方式打开,即不允许对数据库进行修改。默认方式为读|写方式。v(3)VALIDATE:检查在数据库中引用的对象是否合法。例如检查数据库中的表和索引是否可用,表的字段或索引标识是否存在等。2.关闭数据库命令格式:CLOSE DATABASE功能:关闭当前数据库,同时也关闭该库中所有打开的各种文件。3.修改数据库 命令格式:MODIFY DATABASE|?功能:
22、打开数据库设计器,可使用数据库设计器工具,对数据库对象进行操作。4.删除数据库命令格式:DELETE DATABASE|?DELETETABLES功能:从磁盘上删除指定的数据库文件。说明:若选择DELETETABLES项,删除数据库文件的同时删除库中所有的表文件。3.4.3 在数据库中添加、新建、移去或删除表 1.添加或新建表(1)在项目管理器中添加或新建表 图图3-34 在项目管理器中添加数据表在项目管理器中添加数据表(2)在数据库设计器中添加或新建表 打开数据库设计器,这时VFP6.0主界面菜单栏上出现【数据库】菜单,在其下拉菜单中选择【添加表】或【新建表】命令,也可在打开的数据库中添加或
23、新建表。(3)使用命令添加或新建表v命令格式:ADD TABLE|?v功能:在当前数据库中添加指定的表。v说明:使用ADD命令前必须打开数据库并指定了当前库。如果此时使用命令CREATE,则在当前库中建立一个新表文件。2.移动或添加表(1)从项目管理器中移去或删除表(2)在数据库设计器中移去或删除(3)使用命令移去或删除v命令格式一:vREMOVE TABLE|?DELETEv功能:将指定的表从当前数据库中移出。v说明:DELETE选项表示将表从磁盘上删除。v命令格式二:DROP TABLE|?v功能:删除当前数据库中指定的表。3.4.4 设置数据库表的属性1.设置字段的显示属性 格式、输入掩
24、码、标题 2.给字段加注释 3.设置字段的有效性规则v规则:指定实施字段级有效性检查的规则。v信息:指定当违反字段级有效性规则时,显示的错误提示信息。即当在表中输入了无效的数据时,在“信息”框中输入的有效性说明便会显示在屏幕上。v默认值:在向表中输入记录时,往往会碰到这种情况:多条记录的某个字段值相同。可以将这些频繁出现的值设置为该字段的默认值,这样就避免了反复输入同一数据的麻烦。v例如,为学生信息表的“st_sex”字段设置有效性规则。数据库表设计器数据库表设计器3.5 索引与排序3.5.1 表的索引1.索引文件的类型 VFP6.0索引文件有两种类型:单索引文件(.IDX)和复合索引文件(.
25、CDX)。2.索引的类型索引的类型(1)主索引 主索引是指在索引关键字或关键字表达式中不允许出现重复值的索引,每一个表只能建立一个主索引。自由表是没有主索引的。(2)候选索引 也是不允许关键字表达式中出现重复值的索引,对每个自由表和数据库表都可建立多个候选索引,由于候选索引禁止关键字表达式的重复值,它在表中有资格作为主索引的“候选项”。(3)唯一索引 为了保持与早期版本兼容,还可以建立一个唯一索引,以指定字段第一次出现的值为基础,对记录进行排序,唯一索引允许关键字表达式的重复值,但重复值在索引中只出现一次。(4)普通索引 普通索引是系统默认的索引类型,不要求关键字表达式的唯一性。表记录排序时,
26、会把关键表达式值相同的记录排在一起,并按自然顺序的先后排列。一个表可以创建多个普通索引,这是最基本的索引方式。3.建立索引文件(1)菜单方式【例】在学生信息表中按st_number字段的升序建立主索引,按st_date字段的降序建立普通索引。打开学生信息表的表设计器,在“字段”选项卡下选择st_number字段,单击“索引”列的下拉箭头,在打开的下拉列表中选择“升序”,在st_date字段的“索引”下拉列表中选择“降序”,如图所示。在表设计器中设置索引在表设计器中设置索引单击“索引”选项卡,弹出如图所示的“索引”选项卡,设置“st_number”的索引类型为“主索引”,“st_date”为“普
27、通索引”。图图3-39 表设计器的表设计器的“索引索引”选项卡选项卡 设置完毕确认后,就建立了一个结构复合索引文件student_info.CDX。打开high_school数据库设计器,可以看到表student_info.dbf中列出了新建的索引。“st_number”索引名前标有钥匙符号,表明“st_number”是主索引,如图所示。设置了索引的数据库表设置了索引的数据库表(2)命令方式 命令格式1:INDEX ON TO UNIQUEADDITIVE FOR 功能:对当前表中满足条件的记录按建立一个单索引文件。说明:建立的单索引文件按关键字表达式的升序排列。:指定记录重新排序的字段或字段
28、表达式。表达式中如果含有不同类型的字段,必须使用类型转换函数将其转换为相同类型的数据。UNIQUE:建立唯一索引。对于关键字值相同的多条记录,只有第一条出现在索引文件中。利用UNIQUE可以避免访问记录的重复值。ADDITIVE:指定在建立新的索引文件时不关闭已打开的的索引文件。若省略此项,表示建立新的索引文件时关闭除结构复合索引文件外的其它的索引文件。v命令格式2:vINDEX ON TAG OF UNIQUE ADDITIVE FOR ASCENDING|DESCENDINGv功能:对当前表中满足条件的记录按关键字表达式建立复合索引文件。v多重索引是通过字符型表达式实现。非字符字段要用ST
29、R()、DTOC()、DTOS()等函数转换成字符型字段,然后用+或-进行连接v说明:vTAG OF:创建复合索引文件并指定一个索引标识名。省略OF表示建立与表同名的结构复合索引,选择此项表示建立非结构复合索引。vASCENDING|DESCENDING:指定复合索引文件按关键字表达式的升序|降序排列。4.打开与关闭索引文件打开与关闭索引文件(1)打开索引文件v索引文件在使用前一定要打开。刚建立的索引文件处于打开状态,结构复合索引文件在打开表的同时会自动打开,此外,可以利用命令将其打开。v命令格式1:USE INDEX v功能:打开表的同时打开索引文件名表中列出的所有索引文件。【例】打开学生信
30、息表及其所有的索引文件。USE student_info INDEX CSRQv命令格式2:SET INDEX TO v功能:在表已经打开后单独打开索引文件。(2)关闭索引文件v 命令格式1:USEv 功能:关闭表的同时关闭所有打开的索引文件。v 命令格式2:SET INDEX TOv功能:单独关闭索引文件。结构复合索引文件在表关闭的同时才能被关闭。5.设置主控索引设置主控索引 v 命令格式:SET ORDER TO|TAGOFv 功能:确定主控索引。v 说明:v(1):指定在索引文件列表中第几个索引为主控索引。v(2):指定该单索引文件为主控索引。v(3)TAGOF:指定该索引标识作为当前索
31、引。v(4)省略所有可选项,表示取消主控索引。v【例】设置学生信息表中按st_date字段建立的索引为主控索引,并显示所有记录。v USE E:学籍管理系统student_infov SET ORDER TO st_datev LIST_date字段建立索引后的显示结果字段建立索引后的显示结果3.5.2 表的排序表的排序 v命令格式:SORT TO ON/A|/D,/A|/Dv功能:对当前表文件按指定的关键字表达式的升序(/A,默认)或降序(/D)排序,排序结果存入一个新表。v【例】对学生信息表按学号字段的降序建立排序文件,并显示排序记录。v USE student_infov SORT TO
32、 XH ON st_number/Dv USE XHv LIST查询与统计1.记录的定位查询v(1)顺序查询命令v命令格式:LOCATE FOR|WHILEv功能:在指定范围内按顺序查找满足条件的记录。v说明:v:指定查找范围,若省略,默认为ALL。vFOR:指定查询条件。v若找到,则将记录指针定位到满足条件的第一条记录上。找不到,记录指针定位到文件尾,并在状态栏显示信息:已到定位范围末尾。可用FOUND()函数测试查找结果。v(2)继续查找命令v命令格式:CONTINUEv功能:查找满足条件的下一条记录。v说明:LOCATE命令是把记录指针定位到满足条件的第一条记录上,若要继续查找,则使用C
33、ONTINUE命令。v【例】查找学生信息表中性别为女的记录。v USE E:学籍管理系统stusent_infov LOCATE FOR st_sex=”女”v DISP v CONTINUEv DISP(2)索引查询命令 v FIND命令v 命令格式:FIND|v 功能:在主控索引文件中查找索引关键字值与指定字符串或数字相匹配的记录。如果找到,记录指针定位到该条记录上,如果找不到,状态栏提示:没有找到。v 说明:使用FIND命令之前打开索引文件,并指定了主控索引。因为一个表在同一时刻只能有一个索引文件或索引标识为主控索引,因此,只能查找主控索引字段的值。查询的值可以是字符串或数值型数据。如果
34、是字符串,可以不用定界符括起来。查找字符串时,如果设置了SET EXACT OFF 命令,查找的字符串可以是索引关键字的全部或前几个字符,如果设置了SET EXACT ON命令,则字符串只能是索引关键字的全部。如果查找字符型变量,变量前必须使用宏替换函数&。v SEEK命令 v命令格式:SEEK v功能:在主控索引文件中查找索引关键字值与指定的表达式相匹配的记录。如果找到,记录指针定位到该条记录上,如果找不到,状态栏提示:没有找到。v说明:SEEK命令可以查询字符型、数值型、日期型或逻辑型表达式。如果查找字符串,必须使用定界符,查找字符型变量,变量前不必使用宏替换函数&。FIND和SEEK命令
35、查找成功后,将记录指针定位到查找到的第一条记录上,如果要继续查找,可以使用SKIP命令查找下一条相匹配的记录,直到所有相匹配的记录找到为止。v【例】查询命令举例。v USE E:学籍管理系统student_infov SET ORDER TO st_numberv FIND 03(或SEEK“03”)v DISP v SKIPv DISP vINDEX ON st_name TO NAMEv XM=”赵红”v FIND&XM(或SEEK XM)v DISP2数据的统计数据的统计(1)计数命令)计数命令v命令格式:命令格式:COUNT FOR|WHILETO v功能:统计指定范围内满足条件的记录
36、个数。功能:统计指定范围内满足条件的记录个数。v说明:说明:省略省略,默认为,默认为ALL。TO:将统计结果保存在内存变:将统计结果保存在内存变量中。若省略,则只在屏幕上显示。量中。若省略,则只在屏幕上显示。【例】统计学生信息表中1986年以后出生的人数。v USE E:学籍管理系统student_infov COUNT FOR YEAR(st_date)1986 TO N81(2)求和与求平均值命令v命令格式:SUM|AVERAGE FOR|WHILETO|TO ARRAYv功能:对当前表中满足条件的数值型字段或由数值型字段组成的表达式纵向求和或求平均值。v说明:如果省略,则对表中所有数值型
37、字段求和或求平均值。TO|TO ARRAY:求和或求平均值的结果可以保留在内存变量或数组中。【例】求学生成绩表中03级1班所有学生的课程编号为1101的成绩字段的平均分。v USE E:学籍管理系统school_reportv AVERAGE achieve FOR SUBSTR(st_number,1,4)=”0301”.AND.c_number=”1101”(3)汇总命令v命令格式:TOTAL TO ON FIELDS FOR|WHILE v功能:在当前表中,分别对关键字段的值相同的记录,针对数值型字段名表中的各个字段求和,结果保存到新表文件中。v说明:当前表必须已按指定的建立了索引并指定
38、为主控索引。原表记录按关键字表达式分类,关键字值相同的划为一组,在新表文件中合并为一条新记录,这条记录中,数值型字段的值是原表中该记录相应字段的值之和,其它类型字段的值则为该组记录中第一条记录相应字段的值。FIELDS:指定求和字段。若省略,对所有数值型字段分类求和。【例】在学生成绩表中按学号汇总成绩。USE E:学籍管理系统school_reportv INDEX ON st_number TO XHv TOTAL TO CJHZ ON st_numberv USE CJHZv LIST 3.6 多表操作3.6.1 工作区和数据工作期的概念工作区和数据工作期的概念 1.工作区 VFP6.0中
39、最多可以使用32767个工作区,工作区的表示有3种方法:(1)用数字132767作为工作区的编号。(2)用字母AJ,W11W32767给工作区编号,也称为工作区的别名。(3)在某工作区打开表时指定了别名,该别名就可以表示该工作区。2.数据工作期数据工作期 是当前动态工作环境的一种表示,每个数据工作期包含有自己的一组工作区,这组工作区含有打开的表、索引和表间的关系。3.6.2 选择当前工作区v 命令格式:SELECT 工作区号|别名|0v功能:选择一个工作区为当前工作区。v说明:(1)选择当前工作区后,在当前工作区打开的表成为当前表。(2)若使用命令SELECT 0,则系统选取当前未使用的最小工
40、作区作为当前工作区。3.6.3 在当前工作区操作其它工作区的表 v格式为:别名-字段名 或 别名.字段名 【例】多表操作举例。v SELECT Bv USE school_reportv SELECT Av USE student_infov DISP st_number,st_name,B-c_number,B-achieve3.6.4 建立表间关系建立表间关系 根据表中记录的对应关系,一般把两表所建立关系的类型分为3种:一对一、一对多和多对多 1.建立表间临时关系 临时关系是可以在任意类型表间建立的一种关系,自由表中只能建立临时关系。对于建立了临时关系的两个表,自己记录指针移动而导致其它相
41、关表中记录指针移动的表称为父表,与这个表关联的表称为子表。为了实现父表记录指针的移动导致子表记录指针的调整,在两表间建立临时关系后,子表的记录指针会随父表的记录指针移动而移动。两表间要建立临时关系,通常要求这两个表具有共同的字段,且子表必须根据共同字段或字段表达式建立索引,索引的类型可以根据子表的实际情况而定。例如,在high_school数据库中学生信息表和学生成绩表之间建立临时关系。2.建立表间永久关系建立表间永久关系 永久关系是建立在数据库表间的一种关系,这种关系不仅运行时存在,而且作为数据库的一部分一直保存在数据库文件中,在数据库的查询和视图中作为表间的默认连接。在数据库的两个表间建立
42、永久关系,两表必须按共同字段建立索引,且父表索引是主索引或者候选索引,而子表的索引类型决定了所建的永久关系类型。如果子表的索引类型是主索引或候选索引,所建的关系类型为一对一的;如果子表的索引类型是普通索引或唯一索引,则建立的关系是一对多的。但需要注意的是,永久性数据库表关系不控制表内记录指针的关系。3.6.5 设置参照完整性 参照完整性是指根据某些规则,在建立了永久关系的两个表之间当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否正确。1.更新规则:用于更改父表中索引字段值更新规则:用于更改父表中索引字段值时应遵循的规则。时应遵循的规则。v级联
43、:更改父表中的某一记录时,子表中相关记录将自动得到更改。v限制:更改父表中的某一记录时,如果子表中有相关记录,则禁止更改父表中的索引关键字的值。v忽略:更改父表中某个记录的索引关键字的值时,子表相关记录不受影响。2.删除规则:用于删除父表中记录时应遵循的规删除规则:用于删除父表中记录时应遵循的规则。则。v级联:删除父表中某一记录时,子表中的相关记录也被删除。v限制:子表中有相关记录时,不允许父表中删除此条记录。v忽略:删除父表中某条记录时,子表中相关记录不受影响。3.插入规则:用于在子表中插入或更新记录插入规则:用于在子表中插入或更新记录时应遵循的规则。时应遵循的规则。v限制:当父表中没有与子
44、表相关的记录时,禁止在子表中插入记录。v忽略:允许子表中插入记录,不管父表中是否有相关的记录。本章小结 本章首先介绍了表结构的设计与建立方法,向表中输入记录、修改表结构及表记录、打开、关闭表、添加、删除记录以及浏览表记录等自由表的基本操作。详细讲述了数据库及数据库表的设计与建立方法,自由表和数据库表的相互转换,数据库表的属性设置,包括字段级规则和记录级规则的设定等数据库的基本操作。阐述了逻辑排序与物理排序的含义,索引文件的类型与索引文件的建立和使用方法。通过事例讲解了顺序查询和索引查询命令,计数命令、求和与求平均值命令、统计汇总命令以及多工作区及多表操作、表间的临时关系和永久关系及设置参照完整
45、性。项目管理器项目管理器是按一定的顺序和逻辑关系,对数据库应用系统的文件进行有效组织的工具。可以有效的组织数据表、表单、数据库、菜单、类、程序和其它文件,并将它们编译成可独立运行的.APP或.EXE文件。vCREATE PROJECT v文件/新建/项目/新建文件/项目管理器v项目/新建文件 /添加文件 /修改文件 /打开文件 /移去文件 /重命名文件 /设置主文件项目管理器1.项目管理器的创建和打开创建 有二种方式:A:单击“文件”菜单中“新建”命令的“项目”选项,将弹出创建对话框,在项目文件位置输入项目名称后点保存。B:利用命令:create project 注:项目名为?时,将出现创建对
46、话框。项目中至少要新建一个文件(数据库等)。项目管理器打开 单击“文件”菜单中的“打开”或“工具栏”中的“打开”按钮。在弹出的“打开”对话框中的文件类型位置选择“项目”、在文件名位置选择文件名。2.项目管理器的界面项目管理器选项卡全部、数据、文档、代码、类、其它六个选卡,用于选择操作对象。命令按钮项目管理器新建:用于新建一个文件添加:用于将一个已有的文件添加到项目中修改:修改文件移去:从项目中移去文件或对象运行:执行选定的查询、表单或程序连编:连编一个项目或应用程序,在专业版VFP中,将产生可执行文件。注:要新建或打开项目时,菜单栏中有“项目”菜单。项目管理器3.定制项目管理器 指设定项目管理
47、器的可视区域。改变显示外观鼠标位于标题栏,拖动鼠标可移动项目管理器鼠标位于四边上变成双箭头时,拖动鼠标可改变项目管理器大小。鼠标单击 可折叠或恢复项目管理器拖开选项卡 折叠项目管理器后,光标在选项卡名上项目管理器拖动就可拖开选项卡,选项卡标题栏出现图标,单击该图标,选项卡将显示在最表层,同时图标变为 ,单击 或拖动到原位可使选项卡回到项目管理器中。4.项目管理器的操作 利用项目管理器可新建、添加、修改、游览、移去、查找文件(先打开一个项目)。创建和修改文件 先在项目管理器窗口中选择文件类型,项目管理器单击“新建”可“修改”按钮,按对话框提示操作。例1:新建一个数据库stu操作:在“数据”选卡中
48、选择“数据库”,点“新建”,点“新建数据库”,在弹出的对话框的文件名位置:stu,点“保存”,点X关闭数据库后在项目管理器中可看到数据库stu例2:新建一个自由表“学生”操作:在“数据”选项卡中选择“自由表”,项目管理器点“新建”,点“新建表”,在弹出的对话框的输入名称位置:学生,点“保存”,输入各个字段名及数据后,点“确定”,在“是否现在输入记录Y/N”时输入Y,随后输入若干记录。例3 修改“学生”自由表 在项目管理器中选择“学生”自由表,点“修改”,在弹出的对话框中进行修改操作。添加或移动文件添加:选择添加的文件类型与添加后的项目管理器位置,点“添加”,在弹出的对话框中选择要添加的文件。移
49、去:选择要移去的文件后,点“移去”,若删除则选择删除。例4:将“学生”表移去。在数据卡项选择自由表中的“学生”表,点“移去”,选择“移去”。例5:将“学生”表添加到自由表中。在数据卡项选择自由表,点“添加”,在对话框中选择“学生”,点“确定”。项目管理器查找数据文件选择“数据”卡,可找到所需数据文件。查找表单或报表文件选择“文档”卡,可找到所需数据文件。查看文件内容选择文件后,点“浏览”例6查看“学生”表的内容(记录)操作:选择“学生”表后,点“浏览”。注:若看“学生”表的结构,要点“修改”或双击“学生”表。v宏代换函数&字符型内存变量.字符表达式 功能:代换一个字符型内存变量的内容.例如:m=245*SQRT(4)?34+&m输出为524.00。例:abc=123a=“abc”?a?&a