版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11-12章数据库和表主要内容介绍数据库、数据表的基本概念数据库和数据表的建立编辑表中的数据、记录修改与删除表的索引等有关操作。概念数据库(.dbc)就是一个关于某一特定主题或目标的信息集合。一个数据库是由一个或多个表组成的,数据库可以看成是数据表的容器.表(.dbf)一组相关联的数据按行和列排列的二维表格
记录(record):表的每一行称为一个记录.字段(field):表的每一列称为一个字段.关键字(key):若某个字段值能唯一地确定一个记录,该字段称为关键字.索引(index):将一个表按照某种特定的顺序排列.数据库表和自由表属于一个数据库的表称为数据库表独立存在的表称为自由表类型代号说明字段宽度字符型C汉字或字符最多254个字符,汉字占2个字符数值型N整数或小数最多20位,小数点和正负号各占一位货币型Y保留4位小数8个字节日期型D格式为MM/DD/YY8个字节日期时间型T日期和时间8个字节逻辑型L逻辑值“真”或“假”1个字节浮点型F整数或小数,同数值型整型I存放整数4个字节双精度型B存放精度较高的数值8个字节备注型M接收字符型数据,存放在文件名与表明相同的“.FPT”文件中4个字节通用型G存放图形、声音等OLE对象(对象链接与嵌入),与备注型存放位置相同4个字节字符型(二进制)同前述“字符型”,但是当代码页更改时字符值不变同“字符型”备注型(二进制)同前述“备注型”,但是当代码页更改时备注不变同“备注型”创建数据表设计数据表结构使用“表设计器”新建表在表中添加记录修改表结构基本命令创建数据表:create打开数据表:use<数据表名>关闭数据表:use添加(空)记录:append[blank]修改表结构:modifystructure查看表中的数据使用“浏览”窗口(相应命令:browse)编辑/浏览方式添加方式
BROWSFIELDS姓名,期中
BROWSEFREEZE期中
其他查看记录的命令:LIST与DISPLAYLIST [FIELDSFieldList][Scope][FORlExpression1][WHILElExpression2] DISPLAY[[FIELDS]FieldList][Scope][FORlExpression1][WHILElExpression2]范围是如下之一:ALL全部记录NEXTn包括当前记录开始的n条记录RECORDn只对第n条记录操作REST当前记录开始到文件尾。For<条件>
对范围内的所有记录执行该命令;若没有指定范围默认为ALL移动指针移动指针的命令:绝对移动:Gobottom|top|<记录号>相对移动:Skipn|-n与指针相关的部分函数Bof()测试指针是否指向文件头Eof()测试指针是否指向文件尾Reccount()返回数据表的记录数Recno()返回当前指针的指向的记录号修改表结构使用表设计器:MODIFYSTRUCTURE使用命令:ALTERTABLE(修改结构)
CREATETABLE(建立结构)CREATETABLEStudent(xhc(10),xmc(6),xbl,csrqd(8),zyc(20),smm,zpg)
可以建立包含xh、xm、xb、csrq、zy、sm、zp等字段的一个新的数据表Student.dbf。编辑表中的数据批替换命令:REPLACE字段名1WITH表达式1[,字段名2WITH表达式2]... [范围][FOR条件][WHILE条件]若没有范围,只对当前记录进行替换操作。生成新表与追加记录以当前表为基础,生成新表:COPYTO<新表名>FIELDS<字段列表>FOR<逻辑表达式>复制当前表结构:COPYSTRUCTURETO<新表名>FIELDS<字段列表>从其他表中追加记录:APPENDFROM<表名>FIELDS<字段列表>FOR<逻辑表达式>删除记录逻辑删除与物理删除逻辑删除:将记录打上删除标记物理删除:将记录从表中移去菜单操作在浏览窗口中删除记录:单击记录左边的方框。菜单“表”->“删除记录”菜单“表”->“彻底删除”逻辑删除:DELETE[范围][条件]恢复打上删除标记记录:
RECALL物理删除:
PACK删除所有记录:
ZAP与删除记录有关的系统设置:SETDELETEON|OFF[默认]使用命令删除记录删除记录命令示意正常记录打上逻辑删除标记的记录DELETERECALL物理删除不能恢复的记录PACKZAPDELETEALLPACK有选择的只对部分记录操作SETFILTERTO<逻辑表达式>
界面:表/属性/数据过滤器 取消过滤条件: SETFILTERTO
有选择的显示部分字段BROWSE|LIST|DISPLAYFIELDS<字段表>SETFIELDSTO
界面:表/属性/字段筛选显示所有字段:SETFIELDSTOALL过滤数据表11.6数据表的索引建立索引的最直接的理由是为了排序。11.6.1基本概念1.索引与索引表达式数据表的索引:按指定的索引表达式对数据表建立的一个文件——索引文件。索引文件:是一个记录号的列表(指针列表),它指向待处理的记录,并确定了记录的处理顺序,即按新顺序存储着数据表所对应的记录号。索引表达式:表中的字段或字段的组合,又称为索引字段。
索引并不改变表中所存储数据的顺序,它只改变VFP读取每条记录的顺序。可以利用索引对数据表中的数据进行排序,以便加速检索数据的速度。还可以选择记录、控制重复字段值的输入并支持表间的关系操作。索引对于数据库内表之间创建关联也很重要。建立索引文件索引类型主索引:可保证字段输入值的唯一性,一个数据表只能有一个主索引并且只能在数据库表中建立。候选索引:可保证字段输入值的唯一性,允许建立多个候选索引普通索引:允许出现重复的字段值。唯一索引:打开索引后,相同字段值的记录只显示一个。数据表的索引新建索引:在表设计器中建立索引命令方式:INDEXON<索引表达式>TAG<索引名>
[{ASCENDING|DESCENDING}]
打开|关闭索引SETORDERTO<索引名>建立复杂的索引包含多个字段的索引表达式如:按性别与入校成绩进行索引,其表达式应为INDEON性别+STR(入校成绩)TAGXBCJ建立和打开索引索引应遵循原则(1)为了提高速度,用普通索引、候选索引或主索引(2)控制字段的重复值对数据库“表”用“主索引”或“候选索引”,对于“自由表”,用“候选索引”。与索引相关的查找命令FIND<字符串>|<数值>SEEK<表达式>若找到相应记录,则FOUND()函数值为.T.顺序查找命令:LOCATEFOR<条件>继续查找命令:CONTINUE查找记录【例11-15】下述命令在学生表std_da中查找第一个姓李的同学,并显示该同学的信息:USEstd_daINDEXONxmTAGxmSETORDERTOTAGxmFIND李DISP【例11-16】下述命令在学生表std_da中查找第一个出生日期为1981年3月12日的同学,并显示该同学的信息:USEstd_daINDEXONcsrqTAGcsrqSETORDERTOTAGcsrqSEEKCTOD("03/12/1981")?FOUND()DISP【例11-17】下述命令在学生表中查找姓李的同学,并显示该同学的信息:CLEARUSESTD_DALOCATEFORxm="李"DISPCONTINUEDISPVFP可以同时打开32767个表,每个表都在不同的工作区中。工作区切换:SELECT<编号>|<别名>编号1-32767;或A-J;或用Alias指定的名称Use<表名>[in<工作区编号>alias<别名>]
(1)在当前工作区打开和关闭表
USEcj(2)在最低可用工作区中打开表
可以在USE命令IN子句后面加工作区0。
USEcjIN0
说明:在一个工作区中,不能同时打开多个表。
(4)关闭所有工作区中打开的表
使用命令CLOSEALL可以关闭所有工作区中已打开的表,并将1号工作区置为当前工作区。多表操作引用其他工作区中打开的表
指定非当前工作区中表的字段值:<别名>-><字段名>或<别名>.<字段名>STD_cj.总成绩B.总成绩可以在一个表所在的工作区之外,使用表名或表别名来明确标识该表。例:USESTD_CJIN2 DISPb.总成绩 &&注意命令所工作区必须有打开的数据表使用“数据工作期”窗口
使用“数据工作期”窗口“数据工作期”窗口是VFP提供的一个管理工作区的工具。使用“数据工作期”窗口,可以查看在一个VFP工作期中已打开表的列表,还可以在工作区中打开表、关闭表。SETRELATIONTO[<关键字表达式1>>INTO<工作区别名1>|<表别名1>设置表间临时关系的步骤:1.在不同工作区打开父表和子表2.子表按关键字表达式中的关键字段建立索引(或指定已存在的索引为主控索引)3.在父表工作区执行命令SET
RELATION
TO…INTO…
表间临时关系可以实现指针的联动例1:指针的联动(LSGX.PRG)例2:利用表(XS.DBF/CJ.DBF)
A.显示所有学生的姓名、入校成绩、总成绩(LSGX_2.PRG)
B.为所有会计专业学生平时加10(LSGX_3.PRG)
。设置表间临时关系closeALLCLEARUSExsIN1 &&在1号工作区中打开xs表(主表)USEcjIN2 &&在2号工作区中打开cj表(从表)SELECTcj &&选定从表工作区INDEON学号TAGxh &&从表建立索引SELECTxs &&选定主表工作区SETRELATIONTO学号INTOcj&&创建主表与从表的之间的关联listfields姓名,入校成绩,b.总成绩CLEARCLOSEALLSELE1USEXSINDEON学号TAGXHSELE2USECJSETRELATIONTO学号INTOALIST姓名,A.专业,平时WAITreplall平时WITH平时+10FORA.专业="会计"LIST姓名,A.专业,平时【例12-2】设有一个单科(VFP编程)成绩表:d_cj.dbf(xh(C,10),cj(N,3)),试用d_cj.dbf中的成绩来修改cj2.dbf中的相应成绩。相应的命令如下:*lsgx_修改成绩.PRGUSETCH_PKLOCATEFOR课程名="VFP编程"no=课程代号SELECT2USEd_cjINDEXON学号TAGxhSELECT1USEcj2SETRELATIONTO学号INTObREPLALL成绩WITHb->成绩FOR学号=b->学号AND课程代号=NO
注意:有的时候需要将“多表”设为主表,“一表”设为从表。3.关联单个表中的记录可以在单个表中创建记录间的关系,即自引用关系。若需要的所有信息都存储在单个表中,这种关系很有用。【例12-3】如果遍历xs表中的班级,随着记录指针从一个班级到另一个班级的移动,每个班级的学生自动更改。
若要创建自引用关系,可以两次打开同一个表,在一个工作区中打开一个表,并使用USEAGAIN命令在另外工作区中再次打开此表,然后使用索引来关联记录。例如,可以使用以下代码,根据“zy”(专业)字段对xs表进行排序,然后创建索引标识ZY2,并以此建立并浏览一个自引用关联:lsgx_自关联.prgSELECT0USExsALIASxsSELECT0USExsAGAINALIASxs_aINDEXONzyTAGZY2SETORDERTOZY2SELECTxsSETRELATIONTOzyINTOxs_aADDITIVESELECTxs_aBROWSENOWAITSELECTxsBROWSENOWAIT
在“命令窗口”依次执行上述命令,在“数据工作期”窗口中浏览表xs和xs_a,当在xs“浏览”窗口中移动记录指针时,会自动刷新xs_a“浏览”窗口,并在其中显示隶属于选定专业的学生,如图12-2所示。VisualFoxPro的数据库数据库(.dbc)就是一个关于某一特定主题或目标的信息集合。一个数据库是由一个或多个表组成的,数据库可以看成是数据表的容器.数据库表和自由表属于一个数据库的表称为数据库表独立存在的表称为自由表新建数据库CREATEDATABASE注:数据库建立后,自动产生同名但类型不同的三个文件:.DBC(数据库文件)、.DCT(数据库备注文件)、.DCX(数据库索引文件)。后两个文件依附于数据库文件,但不可缺少,数据库备份时一定要同时备份其他两个文件,否则备份后的数据库将不能使用。打开数据库OPENDATABASE[〈数据库文件名〉|?][EXCLUSIVE|SHARED]SETDATABASETO数据1MODIFYDATABASE&&打开设计器关闭数据库CLOSEDATABASE数据库的基本操作关于数据表的操作在数据库中添加表ADDTABLE{〈表文件名〉|
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校消防安全管理制度
- 莎车县伊什库力乡2026年阔依其(17)村农村道路建设以工代赈项目水土保持报告表
- 泥江口镇竹产业园配套锅炉房集中供热项目环境影响报告表
- 中职《精神病学(人卫 第8版)》同步课件 第16章 睡眠 觉醒障碍
- 2026佛教招聘面试题及答案
- 2026干细胞技术员面试题及答案
- 2026安顺社工面试题及答案解析
- 中考作文九大主题-情景开头结尾45例
- 第十课 翻新老照片-照片处理之修复技术教学设计初中信息技术(信息科技)八年级上浙教版(广西、宁波)
- 第4课 春夏的色彩教学设计小学美术赣美版二年级下册-赣美版
- 农村兄弟二人分家协议书范文
- 小吃店食品安全规章制度
- 装修现场临时用电施工方案
- 初中人教版历史教学大纲
- 2024年湖北高考化学试卷(真题+答案)
- DL-T5496-2015220kV-500kV户内变电站设计规程
- 两办意见八硬措施煤矿安全生产条例宣贯学习课件
- 机器学习实战:基于ScikitLearn
- 《儿童福利机构社会工作服务指南》
- 炼钢理论基础(炼钢工艺)
- 汽煤柴油加氢装置操作工(技师)考试复习题库宝典(含答案)
评论
0/150
提交评论