大学程序设计-数据表基本操作.ppt
《大学程序设计-数据表基本操作.ppt》由会员分享,可在线阅读,更多相关《大学程序设计-数据表基本操作.ppt(161页珍藏版)》请在三一办公上搜索。
1、第4章 数据表基本操作,数据表的建立数据表操作命令数据表的排序与索引数据表的查询与统计数据表之间的操作,数据表分为自由表和数据库表两种。自由表是指单独存在的,未包含在任何数据库中的表;数据库表则是从属于某个数据库的数据表,并且通常还与该数据库中的其他数据表有一定的联系数据表的扩展名为.DBF,若数据表中备注型或通用型字段,则产生一个同名的.FPT文件,文件命名与其它文件命名相同数据表文件由表结构和记录(内容)组成,4.1 数据表的建立,4.1.1 表结构的建立与修改,问题 建表工具是什么?怎样打开工具?建表的步骤?如何修改表结构?如何打开表文件?,1.表结构的建立,建表工具 表设计器打开工具的
2、方法,新建表时会打开该工具 菜单方法 命令方式,CREATE,表结构的建立过程“文件”“新建”选“表”,按“确定”在“表设计器”中输入(1)字段名(2)字段类型(3)字段宽度(4)NULL值建完之后,按”确定”,请先确认自己的工作目录字段名由英文字母、中文字、数字和下划线组成,不能含空格,且必须以汉字或字母开头,自由表的字段名至多10个字符,数据库表至多128个字符字段数最多255个,注意事项,类型13种类型:字符型、数值型、货币型、日期型、日期时间型、逻辑型、备注型、通用型、整型、浮点型、双精度型、二进制字符型与二进制备注型,注意事项,字段宽度除字符型、二进制字符型、数值型和浮点型外,其它9
3、种字段宽度是固定不变的,小数点占一位,数值型与浮点型不得超过20,有效位为16位,小数位数不超过9位,注意事项,如果表结构中包含有“备注型”或“通用型”字段,则创建两个文件,扩展文件名为:dbf与fpt;否则,只创建一个dbf文件,方法一:“文件”打开”,或按”打开”按钮.选择文件类型(.dbf)文件名方法二:USE 表名建议用此方法打开表文件 注意:打开与显示不同,状态栏上显示表是否打开。,2.打开表文件,修改表结构的过程打开表文件“显示”“表设计器”(1)修改字段属性(2)插入字段(3)删除字段(4)调整字段位置,3.表结构的修改,问题手工追加多条记录的菜单命令是什么?手工追加多条记录的窗
4、口命令是什么?追加一条记录的菜单命令是什么?如何输入备注型与通用型数据?,4.1.2 表记录数据的输入,输入多条数据菜单命令显示浏览显示追加方式窗口命令 Append追加单条记录显示浏览表追加新记录从其它文件中追加显示浏览表追加记录,如何输入数据一般字段的输入 日期型输入格式:mm/dd/yy,用set date to ymd,set century on备注字段的输入备注窗口打开:双击(或Ctrl+Pgdn)备注窗口关闭:关闭(或ctrl+W)保存,Esc(Ctrl+Q)放弃,Memo表示有数据,通用字段的输入通用窗口打开:双击(或Ctrl+Pgdn)“编辑”+“插入对象”(“选择性粘贴”)
5、通用窗口关闭:关闭(或ctrl+W)保存,Esc(Ctrl+Q)放弃,Gen表示有数据,如何浏览数据?浏览方式如何切换?如何修改数据?,4.1.3 表数据的浏览与维护,浏览数据 打开表文件显示浏览 两种浏览方式切换 显示浏览 显示编辑 在浏览窗口修改记录 删除记录显示浏览表删除记录(彻底删除),4.2 数据表操作命令,4.2.1 表结构操作命令建表结构的命令?打开表的命令?关闭表的命令?显示表结构的命令?修改表结构的命令?复制表结构的优点与命令?如何复制表结构与记录?,创建表结构命令 格式:CREATE/?功能:新建一个Visual FoxPro数据表文件名可以包含盘符与路径CREATE=CR
6、EATE?,这时会弹出创建对话框如:CREATE XSCJ,打开数据表命令 格式:USE 功能:打开指定的数据表或关闭数据表表打开时,记录指针指向首记录表打开同时,自动打开相应备注文件(FPT)当缺省,关闭当前工作区中的表文件如:USE ZGDA,关闭数据表命令 格式1:CLOSE DATABASES 关闭数据库与表文件 格式2:CLOSE ALL 关闭所有文件 格式3:CLEAR ALL 关闭所有文件,清除内存 格式4:QUIT 关闭所有文件,退出VFP,显示表结构命令 格式1:LIST STRUCTURE 格式2:DISPLAY STRUCTURE注意:DISPLAY是分屏显示,如:USE
7、 ZGDA DISP STRU LIST STRU,修改表结构命令 格式:MODIFY STRUCTURE 功能:打开“表设计器”窗口,显示并修改当前数据表的结构注意:系统自动备份原数据表文件,其扩展文件名变化:.dbf.bak,.fpt.tbk 如:USE ZGDA MODI STRU,复制表结构命令 格式:COPY STRUCTURE TO FIELDS 功能:对当前数据表结构进行复制,形成一个指定名称的新表结构。,例1 创建新表zgbak.dbf,使其结构与zgda.dbf一样 use zgda copy stru to zgbak use zgbak list stru use,复制数
8、据表命令 格式:COPY TO FOR WHILE FIELDS TYPE 功能:对当前数据表中指定范围内符合条件的记录进行复制,形成一个指定名称的新数据表。注意:(1)缺少所短语时,新文件是和原表文件完全相同的表文件(2)选择TYPE短语时,新文件的类型与TYPE所指定的文件类型一致,例2 由表zgda创建表nanzgfile保存男职工的记录,创建文本文件nvzgfile保存女职工的记录 USE ZGDA COPY TO NANZGFILE FOR 性别=男“COPY TO NVZGFILE FOR 性别=“女“TYPE SDF USE NANZGFILE LIST!NOTEPAD NVZG
9、FILE USE,4.2.2 追加与插入记录命令 如何手工追加记录?如何从其它文件中追加记录到当前表文件?如何插入一条空记录?,追加记录命令 格式:APPEND BLANK 功能:在当前数据表的末尾增加新记录注意:缺省BLANK,弹出记录编辑窗口,这时等价菜单命令:“显示”“追加方式”。APPEND BLANK类似于菜单命令:“表”“追加新记录”,从其他表追加记录命令 格式:APPEND FROM FOR WHILE FIELDS TYPE 功能:将指定表文件中指定范围内符合条件的记录自动添加到当前数据表的末尾注意:若由TYPE指定类型,则从指定类型的文件添加,常见的有txt,xls等,否则为
10、表文件。等价于菜单命令:“表”“追加记录”,例3 创建nanzg与nvzg表,并分别从nanzgfile.dbf与nvzgfile.txt追加数据 use zgda copy stru to nanzg use nanzg append from nanzgfile brow last,use zgda copy stru to nvzg use nvzg append from nvzgfile type sdf brow last use,注意:copy structure toappend from等价于copy to,3.插入记录命令 格式:INSERT BLANK BEFORE 功能
11、:在当前数据表指定的位置上插入一条新记录。注意:选BLANK时,插入空记录,否则,弹出记录编辑窗口;选BEFORE时,在当前记录前插入,否则,在当前记录后插入。如:USE NANZG GO 3 INSERT BLANK,4.2.3 记录指针移动命令怎样移动记录指针?相对移动与绝对移动有什么不同?其它命令会移动记录指针吗?,记录指针的绝对移动 格式1:GOTO 功能:将记录指针移到第条记录。格式2:GOTO TOP 功能:将记录指针移到当前表的第一条记录。格式3:GOTO BOTTOM 功能:将记录指针移到当前表最后一条记录。,记录指针的相对移动 格式:SKIP 功能:相对于当前记录,记录指针向
12、上或向下移动若干条记录。说明:当的值为正数时,向下移动条记录;当的值负数时,向上移动条记录;缺省时,默认向下移动一条记录。当expN有小数时,只取整数部分,go 1.9与go 1等价,skip 2.5与skip 2等价,关于记录指针的问题如果记录指针指向文件的开头,则bof()为.T.,否则为.F.如果记录指针指向文件的结尾,则eof()为.T.,否则为.F.Recno()返回记录号,即记录指针指向记录的序号,如recno()为3,表示第3条记录的开头,第2条记录的结尾.Reccount()计算表文件的记录个数.简写为recc()表文件刚打开时,recno()为1,但并不是表文件的开头,第一条
13、记录不是表文件的开头,但在文件的开头时,记录号还是为1.换言之,recno()为1并不一定在文件开头,bof()可能为.t.,也可能为.f.,但bof()为.t.时,recno()一定为1当指向最后一条记录时,并不是文件的结尾.若文件总共有14条记录,当recno()为14时,表示指向第14记录的前面,若recno()为15时,表示在14条记录的后面,此时,eof()为.t.当go 1或go top后,再skip-1,记录不会减1,但bof()的值变为.t.,当go bottom 或go recc()后,再skip 或skip 1,记录号会加1,且eof()的值变为.t.,Use zgda?r
14、eccount()?recno()Go 5?recno()Go top?recno()?bof()Skip 5Recno(),Skip与go命令不能超过记录的范围.Use zgdaSkip-3?recno()Skip 6?recno()Go bottom?recno()?eof()Skip 1?recno()?eof(),4.2.4 显示记录命令 如何在主窗口中显示记录 显示记录与浏览记录有什么差别?,显示记录命令格式1:LIST FOR WHILE FIELDS OFF TO PRINT格式2:DISPLAY FOR WHILE FIELDS OFF TO PRINT 功能:输出指定范围内满
15、足条件的各个记录的有关内容。注意:LIST的缺省范围为ALL,DISPLAY的缺省范围为当前记录,但有条件短语时,默认范围为ALL.选OFF,不输出记录号,例4(1)显示zgda中男职工记录的编号与姓名(2)第8条记录的编号与姓名 use zgda list 编号,姓名 for 性别=男或 disp 编号,姓名 for 性别=男或 list for 性别=男 fiel 编号,姓名 go 8 disp 编号,姓名或 list record 8或 disp record 8思考:list 8是什么意思?Disp 8呢?,4.2.5 删除记录命令怎样逻辑删除?即delete命令使用.物理删除(pac
16、k)与逻辑删除的不同.恢复逻辑删除数据的命令是什么?Recall的使用.Zap的意义?,1.逻辑删除记录命令 格式:DELETE FOR WHILE 功能:对指定范围内满足条件的记录打上删除标志(逻辑删除)。注意:(1)缺省范围与条件选项时,仅对当前记录删除;(2)SET DELETED ON 可以屏蔽删除记录,即不显示;(3)用测试函数deleted()可以显示当前记录是否有删除标志,例5 创建zgda表的备份文件zgbak,然后把zgbak中年龄大于等于45岁的记录打上删除标志,最后彻底删除 use zgda copy to zgbak use zgbak dele for 年龄=45 b
17、row list set deleted on&屏蔽有删除标志的记录 brow list pack use,2.去除删除标志命令 格式:RECALL FOR WHILE 功能:去除指定范围内满足条件的记录已有的删除标志。注意:缺省范围和条件短语时,仅去当前记录的删除标志,Use zgdaCopy to tmpUse tmpGo 1Dele?deleted()Recall?Deleted()UseDele file tmp.dbf,3.物理删除记录命令 格式:PACK 功能:对当前数据表进行压缩,剔除带有删除标志的记录,永久删除。如:use zgda copy to zgbak use zgba
18、k dele for 年龄=45?reccount()pack?reccount()use思考:相应的菜单命令是什么?Delete呢?,4.一次性删除全部记录命令 格式:ZAP 功能:删除当前数据表中的所有记录,使其成为只剩有表结构的空表文件。注意:zap=dele all+pack,但zap速度更快如:use zgda copy to tmp use tmp list zap list use,4.2.6 修改记录命令EditChangeBrowse如何成批替换记录?Replace命令的使用.,4.2.6 修改记录命令1.编辑修改命令 格式1:EDIT FOR WHILE FIELDS 格式
19、2:CHANGE FOR WHILE FIELDS 功能:弹出编辑窗口对记录进行修改。如:use zgbak edit for 性别=“男”,2.浏览修改命令 格式:BROWSE FIELDS LOCK FREEZE NOAPPENDNOMODIFY 功能:以浏览窗口方式显示当前数据表数据并供用户进行修改。注意:(1)此命令等价“显示”“浏览”;(2)NOAPPEND:禁止追加,NOMODIFY:禁止修改(3)LOCK:锁定指定的字段,FREEZE:光标冻结在该字段上,如:use zgda copy to zgbak use zgbak brow lock 3 brow freeze 姓名 u
20、se,3.成批替换修改命令 格式:REPLACE FOR WHILE WITH,WITH.功能:对指定范围内符合条件的记录,用指定的值替换指定的内容。注意:(1)缺少范围与条件短语时,只改变当前记录(2)表达式类型与字段类型必须一致,例6(1)将zgbak中的年龄增加一岁,基本工资增加20%;(2)将zgbak第13条件记录的性别改为男;(3)将zgbak中的高工的工资加300。use zgda copy to zgbak use zgbak repl all 年龄 with 年龄+1,基本工资 with 基本工资*1.2,repl reco 13 性别 with“男”repl all 基本工
21、资 with 基本工资+300 for 职称=高工 use zgbak,小结菜单命令:建表、修改表结构、显示、追加记录、修改记录窗口命令(建议使用窗口命令)表结构:创建、显示、修改、复制表基本操作:打开、关闭表的复制:复制命令(结构与数据一起复制)记录添加:追加、插入、从其它文件追加记录移动:相对、绝对记录显示:显示、浏览,记录删除:逻辑、物理、全部删除、恢复记录修改:手工修改、成批修改,思考 已知表文件zgda.dbf,创建zjgz.dbf,包含编号、姓名、基本工资,并相应字段的记录由zgda追加到zjgz中.添加新字段:增加额,类型为N(7,2).添加新字段:总工资,类型为N(8,2).7
22、0年前出生的职工的增加额置为200,70年以后(70年出生的)出生的职工为100,总工资为基本工资与增加额的和.最后删除60年以前出生的男职工.请写出命令序列.,4.3 数据表的排序与索引,要点物理排序:Sort on建立索引:Index on打开索引:Set index to主控索引:Set order to索引的三个要素:排序关键字表达式、索引名(标识)、文件名索引使用:建索引打开索引指定主控索引,排序方式:物理排序、逻辑排序物理排序会把排序的结果放到一个新文件中,即产生一个新数据表.逻辑排序方法是建立索引表,记载关键字或索引表达的值与记录号,其索引表是一个单独的文件,但相对于数据表来说所
23、占空间小.逻辑排序速度快、效率高、数据冗余少,基本概念,4.3.1 物理排序 格式:SORT ON/A/C/D,/A/C/D.TO FOR WHILE FIELDS 功能:对指定范围内满足条件的记录按指定之值的大小重新排序后生成一个给定名称的新数据表文件,物理排序,注意:(1)缺省范围和条件短语时,范围为ALL(2)生成的文件放在TO短语所指定的文件中,其结构由FIELDS所指定,缺省是与原表的结构相同(3)/A、/D表示升序与降序,同时指定则以最后的为准,默认为升序,/C表示不区分大小写(4)ASCENDING表示所关键都按升序、DESCENDING表示所关键都按降序(5)不能对备注字段和通
24、用字段排序,物理排序,例7 对zgda表中的基本工资按升序,若相同再按出生日期的降序进行排序,排序生成文件名为zggzb.dbf,且文件中只包含姓名、职称、基本工资、出生日期,并显示结果 use zgda sort on 基本工资/A,出生日期/D to zggzb fields姓名,职称,基本工资,出生日期 use zggzb list,物理排序,思考:对ZGDA表中性别与职称的降序排序生成文件xbzc.dbf,请写出命令。SORT ON 性别/D,职称/D to xbzc,物理排序,4.3.2 索引类型索引文件类型索引项的类型索引的三个要素是什么?文件名 索引名 关键字,索引类型,索引文件
25、的类型单索引文件:扩展名为.IDX(index),只包含一个索引项复合索引文件:扩展名为.CDX(compound index),可以包含多个索引项并以压缩方式存储结构复合索引文件:与数据表同名的.CDX文件非结构复合索引文件:与数据表不同名的.CDX文件,索引类型,索引类型,Zg.dbf,用”姓名”建单索引文件xm,索引单索引文件,Xm.idx,关键字表达式,建单索引文件,标识Xm,1.用”工号”建复合索引zgsy,索引标识为gh2.用”姓名”建复合索引zgsy,索引标识为xm,索引复合索引文件,Zgsy.cdx,标识:gh,标识:xm,关键字,关键字,索引的类型(1)主索引:(2)候选索引
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 程序设计 数据表 基本 操作

链接地址:https://www.31ppt.com/p-6266444.html