VisualFoxpro程序设计上海交通大学出版社12:0324.1数据库的基本操作创建第4章数据库及表的操作菜单操作方式选择“文件/新建”菜单项,打开“新建”对话框。命令操作方式Createproject|database[文件名]【例】Createprojectxuesheng&&创建一个”xuesheng”项目管理器,并打开。Createdatabase学生&&创建一个“学生”数据库打开菜单操作方式选择“文件/打开”菜单项,打开“打开”对话框。12:033第4章数据库及表的操作关闭删除CloseDatabase[all]关闭当前数据库和表。若没有当前数据库,则关闭所有工作区内所有打开的自由表、索引和格式文件,并选择工作区1。DeleteDatabase[文件名][DeleteTable][Recycle]命令操作方式Modifyproject|database[文件名]Opendatabase[文件名][Noupdate][Exclusive|Shared]【例】Modifyprojectxuesheng&&打开一个”xuesheng”项目管理器。Opendatabase学生&&撕开一个“学生”数据库12:0344.2表文件的基本操作第4章数据库及表的操作表文件是指按某一结构存储的一组相似数据。一个表文件由表结构和记录数据两部分组成,表结构描述了数据存放形式以及存放的,是由若干个字段集合构成;表记录是由该表的字段值构成,字段是构成记录的基本单元。在VF6.0环境中,表文件分为自由表和数据库表两种,不属于任何数据库而独立存在的表称为自由表,属于某一数据库的表称为数据库表。如果创建表时数据库是打开的,则创建的表默认为当前数据库表,否则创建的表为自由表。创建好的自由表和数据库表之间也可以相互转换。创建要创建表,首先要设计表的结构,再通过表设计器创建表的结构。若创建的表是数据库表,则在表设计器中会提供对表数据进行定义的数据字典。菜单操作方式选择“文件/新建”菜单项,打开“新建”对话框。命令操作方式Create[文件名]12:035第4章数据库及表的操作【例】Createstudents&&启动表设计器,创建一个”students”数据表。CreateTable---SQL语言CREATETABLE|DBF表文件名[FREE](FieldName1FieldType[(nFieldWidth[,nPrecision])][NULL|NOTNULL][CHECKExpression1[ERRORcMessageText1]][DEFAULTeExpression1][PRIMARYKEY|UNIQUE][,FOREIGNKEYeExpression2TAGTagName1[NODUP][REFERENCESTableName2[TAGTagName2]][,FieldName2...][,…………])【例】Createtablestudents(xhc(8)notnullprimarykey,xmc(8),xbc(2)checkxb=”男”orxb=”女”error”只能输入’男’或’女’default”男”,csrqd,ssmcl,rscjn(5,3),grjlm,photog)12:036第4章数据库及表的操作输入记录命令操作方式Append[blank]菜单操作方式选择“表/追加新记录”菜单项,打开“记录编辑”窗口,在其中可逐个输入记录。Edit状态Browse状态12:037第4章数据库及表的操作备注型字段的数据输入通用型字段的数据输入命令操作方式Appendmemory备注字段名From文件名[Overwrite]Appendgeneral通用字段名From文件名12:038第4章数据库及表的操作表文件的打开与关闭表文件的修改菜单操作方式选择“窗口/数据工作期”菜单项,打开“数据工作期”对话框。命令操作方式Use表文件名[Noupdate][Exclusive|Shared][In工作区号]Use[In工作区号]Close[All]Clear[All]Quit表文件的删除自由表的删除:DeleteFile[表文件名][Recycle]此命令可删除任何未打开的文件,一次只能删除一个文件,使用通配符时一次可删除多个文件。数据库表的删除:RemoveTable[表文件名[Delete][Recycle]]此命令中表文件名不可加扩展名,默认的操作对象包括表文件(.dbf)、索引文件(.cdx)、备注文件(.fpt)12:039第4章数据库及表的操作【例】usestudents&&在当前工作区中打开students表usecoursein2shared&&在第2工作区中以共享方式打开course表useteachersin0exclusive&&在未被使用最小工作区中以独占方式打开teachers表use&&关闭当前工作区中的表usein2&&关闭第二工作区中的表useinteacherscloseall&&关闭所有的数据库、表、设计器、项目管理器窗口cleaall&&清除系统所有内存信息quit&&退出VFP系统环境Select2use【例】useinxs&&关闭自由表xsdeletefilexs.dbf&&删除xs.dbf表文件,此命令也可使用通配符。RemoveTablexsdeleterecycle&&从当前数据库中移去xs表文件(包括.dbf、.cdx、.fpt),并从磁盘上删除,放在回收站中。12:0310第4章数据库及表的操作表文件结构的修改在打开表文件情况下执行:ModifyStructure,打开“表设计器”修改表结构。AlterTable----SQL语言ALTERTABLETableName1ADD[COLUMN]FieldName1FieldType[(nFieldWidth[,nPrecision])][…]ALTERTABLETableName1ADDPRIMARYKEYeExpression3TAGTagName2ALTERTABLETableName1ALTER[COLUMN]FieldName2[NULL|NOTNULL][SETDEFAULTeExpression2][SETCHECKlExpression2[ERRORcMessageText2]][DROPDEFAULT][DROPCHECK]ALTERTABLETableName1DROP[COLUMN]FieldName3ALTERTABLETableName1DROPPRIMARYKEYALTERTABLETableName1RENAME[COLUMN]FieldName4TOFieldName512:0311第4章数据库及表的操作【例】altertablexsaddemailc(16)&&在xs表中增加email字段,字符型长度16altertablexsaddcylml&&在xs表中增加cylm(团员)字段,逻辑型altertablexsadduniquexmtagxm&&在xs表中增加xm字段候选索引,标识为xm.altertablexsalterxmc(10)notnull&&将xs表中xm字段长度改为10,且不为空值。altertablexsdropemail&&从xs表中删除email字段altertablexsrenamegrjltojl&&将xs表中字段名grjl改为jl。表结构的显示List|Displaystructure[ToPrinter[Prompt]|Tofile文件名]【例】usexs&&打开xs表liststru&&显示xs表结构dispstrutoabc.txt&&显示xs表结构,并保存到默认路径的abc.txt文件中.12:0312第4章数据库及表的操作AllNextnRecordnrest表记录指针的定位绝对定位[Go[To]]记录号|Top|Bottom相对定位Skip[数值表达式]表记录的修改Replace字段1with表达式1[Additive][,字段2with表达式2[Additive][,…]][For条件][范围]表的显示与维护表记录的显示List|Display[Fields表达式表][For|While条件][范围][ToPrinter[Prompt]|Tofile文件名]【例】usestudentslistnext5fieldsxh,xm,xb,csrqdispalllistforxb=“男”andrscj600Go6Goto28GotopGobottomSkipSkip2*3Skip-5+112:0313第4章数据库及表的操作【例】usestudentsreplacexmwith“张明”,csrqwith{^1991-05-20}forxm=“张大明”disp表记录的添加在表文件末尾追加一条或多条记录Append[Blank]在另一个表文件中追加记录AppendFrom文件名[Fields表达式表][For条件][范围][[Type]Sdf|Delimited|[WithTab|定界符|Blank]]【例】usecourseappendblankreplacekchwith“043001”,kcmcwith“体育”,xswith20,xfwith1appendmemokcjjfromtykcjj.txtdispappendfrom课程信息表forleft(kch,3)=“044”12:0314第4章数据库及表的操作Insert----SQL语言INSERTINTOdbf_name[(fname1[,fname2,...])]VALUES(eExpression1[,eExpression2,...])INSERTINTOdbf_nameFROMARRAYArrayName|FROMMEMVAR【例】Insertintocoursevalues(”043001”,”体育”,20,1,”大一、二年级公共课”)Insertintogradevalues(”07021009”,”011001”,85,”2”,”0101”)Insertintostudents(xh,xm,xb,csrq,ynty,bh,rxcj);values(”07011011”,”张天成”,”男”,{^1990/05/21},.t.,”JZ0701”,601)Update----SQL语言UPDATE[DatabaseName1!]TableName1SETColumn_Name1=eExpression1[,Column_Name2=eExpression2...]WHEREFilterCondition1[AND|ORFilterCondition2...]]【例】Updategradesetcj=cj+5wherekch=”021001”andtbh=”0201”Updatecoursesetxs=24,xf=1.5wherekch=”021001”12:0315第4章数据库及表的操作表记录的删除逻辑删除Delete[For|While条件][范围]隐藏/显示逻辑删除的记录SetDeletedOn|Off撤消逻辑删除Recall[For|While条件][范围]物理删除已逻辑删除的记录Pack物理删除全部表记录Zap【例】usestudents5deletedeleteforbh=“JZ0702”setdeleondispallsetdeleoffdispallrecallfor性别=“男”recallalldeleteforleft(xh,5)=“07021”packlistzapDelete----SQL语言DELETEFROM[DatabaseName!]TableName[WHEREFilterCondition1[AND|ORFilterCondition2.