第3章 数据库和表的设计_第1页
第3章 数据库和表的设计_第2页
第3章 数据库和表的设计_第3页
第3章 数据库和表的设计_第4页
第3章 数据库和表的设计_第5页
已阅读5页,还剩119页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章

数据库和表的设计与操作3.1数据库设计的步骤3.2表的创建3.3表的维护3.4表的排序、索引与查询3.5表的统计与汇总3.6多表使用3.7数据库的创建及基本操作3.8在数据库中添加和移去表3.9查看和修改数据库结构3.10数据字典本章学习目标本章主要讲解数据库和表的设计与操作的相关知识。通过本章的学习,读者应该掌握以下内容:数据库设计的步骤表的操作数据库的操作数据字典3.1数据库设计的步骤3.1.1数据库设计的一般步骤3.1.2数据需求分析3.1.3将需求分类放入表3.1.4表结构设计3.1.5表间关系确定3.1.6设计优化3.1.7创建数据库返回首页3.1.1数据库设计的一般步骤设计数据库的一般步骤是:(1)确定建立数据库的目的。(2)确定需要的表。(3)确定所需字段。(4)确定关系。(5)设计求精。(6)创建数据库。返回本节3.1.2数据需求分析数据库设计的第一步是明确数据库的目的,也就是说需要从数据库中得到哪些信息。明确目的之后,就可以确定需要保存哪些主题的信息(表),以及每个主题需要保存哪些具体信息(表中的字段)返回本节3.1.3将需求分类放入表表是关系数据库管理系统的基本数据存储结构。在VisualFoxPro中,一个表以记录(行)和字段(列)的形式存储数据,它与传统的数据库的概念等同,具有下列属性:表的一个“列”称为一个字段,其名称为字段名。表的一个“行”称为一个记录,同一记录中的所有数据同属于一个对象。表是构成数据库的基本元素之一,是数据库中数据组织并存储的单元。表中的数据具有相对的独立性,不会因为其存储形式的不同而改变其数据的值。返回本节3.1.4表结构设计1.字段名2.字段类型3.字段宽度4.小数位5.使用Null值字段号字段名数据类型宽度小数位数1学号*C8

2姓名C8

3性别C2

4班级C10

5家庭地址C12

6电话C8

7特长M4

表3.1学生表.DBF表3.2课程表.DBF返回本节表3.3成绩表.DBF3.1.5表间关系确定表之间的关系可以分为:一对一关系、一对多关系和多对多关系。在一对一关系中,表A的一个记录在表B中只能对应一个记录,而表B中的一个记录在表A中也只能有一个记录与之对应。在一对多关系中,表A的一个记录在表B中对应多个记录,而表B的一个记录在表A中只有一个记录与之对应,这是关系型数据库中最普通的关系。返回本节3.1.6设计优化表中是否带有大量并不属于某主题的字段?是否有些字段由于对很多记录不适用,而在那些地方保持空白?是否有大量的表,其中很多包含了同样的字段?返回本节3.1.7创建数据库在VisualFoxPro中,表分为自由表和数据表两类。自由表就是不在数据库中的表,即与数据库无关联的表,它的结构信息没有加入到数据库中,不受数据库的约束,可以自由打开和关闭,自由更新数据,所以称之为自由表;而数据表则是指在数据库中存在的表,即与数据库相关联的表,它受数据库各项规则的约束,要打开它必须先打开数据库。返回本节3.2表的创建3.2.1表结构的创建3.2.2表数据的输入3.2.3表文件的打开、关闭、显示和定位返回首页3.2.1表结构的创建1.命令方式格式:CREATE[<表文件名>]功能:建立一个表文件。(如图3-1--图3-4)2.菜单方式通过菜单方式创建表有两种方式,即“表向导”和“表设计器”。图3-1表的“创建”窗口图3-2“表设计器”窗口图3-3表结构创建图3-4MicrosoftVisualFoxPro窗口图3-5“新建”窗口图3-6“表向导”窗口(步骤1)图3-7“表向导”窗口(步骤1a)图3-8“表向导”窗口(步骤2)图3-9“表向导”窗口(步骤3)图3-10“表向导”窗口(步骤4)返回本节图3-11“另存为”窗口3.2.2表数据的输入1.创建表结构时输入2.使用浏览窗口追加数据3.添加记录4.插入记录1.创建表结构时输入格式:BROWSE功能:打开当前表(即正在使用的数据表)的浏览窗口,查阅表文件的同时进行修改。2.使用浏览窗口追加数据(1)命令方式。(2)菜单方式。图3-13表的浏览窗口3.添加记录格式:APPEND[BLANK]功能:在当前表的尾部添加记录。说明:①使用APPEND命令时,应先打开需要添加记录的表。②在命令窗口中输入APPEND命令并按回车后,将会出现一个编辑窗口,如图3-14所示,可以输入新记录的内容。③APPENDBLANK命令只是在当前表的末尾添加一条空记录,不打开编辑窗口。图3-14APPEND命令添加记录窗口4.插入记录格式:INSERT[BEFORE][BLANK]功能:在当前表中某个记录的前面或后面插入记说明:①INSERT表示在当前记录之后插入一条记录。②INSERTBEFORE表示在当前记录之前插入一条记录。③INSERTBLANK

或INSERTBEFOREBLANK分别表示在当前记录之后或之前插入一条空记录。④插入记录后,其后所有记录的记录号加1,空记录只有记录号而无内容。返回本节3.2.3表文件的打开、关闭、显示和定位1.打开与关闭2.表文件的显示3.记录指针的定位1.打开与关闭使用任何一个表以前,都必须首先打开表,也就是将存放在磁盘上的文件调入内存,以便对它进行操作。操作完毕以后,应该将其关闭,也就是将内存中的表文件再存入磁盘保存。若表是属于某一个数据库的数据表,在打开表前还必须打开这个数据库。格式:USE[<表文件名>]功能:打开或关闭当前使用的表文件。2.表文件的显示(1)结构的显示。格式:LIST/DISPLAYSTRUCTURE功能:显示当前表文件的结构。(2)记录的显示。格式:LIST/DISPLAY[OFF][<范围>][[FIELDS]<字段名列表>][WHILE<条件>][FOR<条件>]]功能:显示当前表文件的全部或部分记录内容。3.记录指针的定位(1)指针的绝对移动命令。格式:GO/GOTO[RECORD]<数值表达式>/TOP/BOTTOM功能:在当前表文件中,移动记录指针到指定的记录上。(2)指针的相对移动命令。格式:SKIP[<数值表达式>]功能:在当前表文件中,记录指针从当前位置向前(记录号减小方向)或向后(记录号增大方向)移动。返回本节3.3表的维护3.3.1表结构的修改3.3.2显示和编辑表中的数据3.3.3删除记录3.3.4文件的显示、复制、删除与更名3.3.5数组与表之间的数据交换返回首页3.3.1表结构的修改格式:MODIFYSTRUCTURE功能:显示并修改当前表文件的结构。说明:①执行此命令后,打开“表设计器”窗口,可以对表结构进行修改。②表结构的修改包括:增加或删除字段,修改字段名、类型、宽度等,还可以增加、删除或修改索引标识等。③改变表的结构时,系统会自动备份当前表文件。返回本节3.3.2显示和编辑表中的数据1.浏览修改命令BROWSE2.CHANGE/EDIT命令3.REPLACE命令4.修改通用型字段1.浏览修改命令BROWSE格式:BROWSE[FIELDS<字段名表>][LOCK<数值表达式>][FREEZE<字段名>][NOMENU][NOAPPEND][NOMODIFY][WIDTH<数值表达式>][FOR<逻辑表达式>][PARTITION<数值表达式>][LEDIT][REDIT][NOLINK]功能:打开浏览窗口,显示表文件的记录,可以用全屏幕编辑键移动光标对记录内容进行编辑和修改。2.CHANGE/EDIT命令格式:CHANGE/EDIT[<范围>][FIELDS<字段名表>][WHILE<逻辑表达式>][FOR<逻辑表达式>]功能:以CHANGE或EDIT窗口方式修改表的记录。图3-15EDIT/CHANGE窗口3.REPLACE命令格式:REPLACE[<范围>]<字段1>WITH<表达式1>[ADDITIVE][,<字段2>WITH<表达式2>[ADDITIVE]…][FOR<条件>][WHILE<条件>]功能:在当前表文件中,对指定范围内满足条件的记录进行批量修改。4.修改通用型字段格式:MODIFYGENERAL<通用型字段名表>[NOMODIFY][NOWAIT][INSCREEN]功能:修改表文件中当前记录的通用型字段的内容。返回本节3.3.3删除记录1.逻辑删除表中的数据(为记录做上删除标记)格式:DELETE[<范围>][WHILE<条件>][FOR<条件>]功能:给当前表文件中满足条件的记录加删除标记“*”。2.恢复表中逻辑删除的数据(去掉记录上的删除标记)如果想去掉记录上的逻辑删除标记“*”,可使用下面的RECALL命令。格式:RECALL[<范围>][FOR<条件>][WHILE<条件>]功能:将当前表文件中指定范围内带删除标记且满足条件的记录去掉删除标记。3.物理删除表中的数据(清除带有删除标记的记录)物理删除就是把表中已做逻辑删除的记录彻底删除掉。进行了物理删除的记录,是不能够恢复的。格式:PACK功能:将当前表中所有带删除标记的记录彻底删除。4.删除表中的所有记录格式:ZAP功能:将表中的所有记录做不可恢复性删除,只保留表的结构。图3-16“删除”窗口图3-17“恢复记录”窗口返回本节3.3.4文件的显示、复制、删除与更名1.文件目录的显示命令2.显示文件内容的命令3.文件的复制4.文件的更名5.文件的删除6.从其他表中向当前表文件成批添加记录1.文件目录的显示命令格式: DIR/DIRECTORY[<盘符>][<路径>][<文件名描述>]

DISPLAYFILES[<盘符>][<路径>][<文件名描述>]

LISTFILES[<盘符>][<路径>][<文件名描述>]功能:以上3个命令功能相同,都是用来显示指定盘、指定路径中符合<文件名描述>的文件目录。2.显示文件内容的命令格式:TYPE<文件名>功能:显示标准的ASCII码文本文件的内容。说明:①文件名中若有扩展名,必须带上扩展名。②文件名前可以加上盘符及路径,省略盘符及路径,表示当前盘当前路径3.文件的复制(1)任意类型文件的复制(2)表文件的复制。(3)表结构的复制。4.文件的更名格式:RENAME<源文件名>TO<新文件名>功能:将源文件名改成新文件名。5.文件的删除格式:ERASE<文件名>/?

DELETEFILE[<文件名>/?]功能:删除磁盘文件。6.从其他表中向当前表文件成批添加记录格式:APPENDFROM<表文件名>[FIELDS<字段名表>][WHILE<条件>][FOR<条件>]功能:将<表文件名>指定的表文件的内容追加到当前表文件的末尾。返回本节3.3.5数组与表之间的数据交换1.字段变量给数组赋值格式:SCATTER[FIELDS<字段名表>/FIELDSLIKE<字段名描述表1>/FIELDSEXCEPT<字段名描述表2>][MEMO]TO<数组名>/TO<数组名>BLANK/MEMVAR/MEMVARBLANK功能:将当前表中的当前记录指定字段的值顺序传送给指定数组的各个元素,且从数组的第一个元素开始存放。【例】

SCATTER命令使用举例。

USEE:\VFP\实例\学生表GO2SCATTERTOAMEMO &&将数据表中第2号记录中各字段值传递给数&&组A,包括备注型字段SCATTERFIELDS姓名,性别,班级TOB&&将数据表中第2号记录的姓名、性别、班级&&字段值传递给数组BGO5SCATTERMEMOMEMVAR&&将数据表中第5号记录各字段值传递给内存&&变量,包括备注型字段DISPMEMORY结果显示:A Pub A (1) C "20032101" (2) C "李广志" (3) C "男" (4) C "注册会计师" (5) C "唱歌" (6) C "西按市碑林区" (7) C "72465520" B Pub A(1) C "李广志"(2) C "男"(3) C "注册会计师"学号

Pub C "20036102"姓名

Pub C "孙立鹃"性别

Pub C "女"班级

Pub C "会计学"特长

Pub C "绘画"家庭住址

Pub C "北京市海淀区"电话

Pub C "68767521"

2.数组对字段变量的对应替换格式:GATHERFROM<数组名>/MEMVAR[FIELDS<字段名表>/FIELDSLIKE<字段名描述表1>/FIELDSEXCEPT<字段名描述表2>][MEMO]功能:从指定数组的第1个元素开始,将各元素的值顺序传送给当前记录的指定字段。返回本节3.4表的排序、索引与查询3.4.1表的排序3.4.2表的索引3.4.3表的查询返回首页3.4.1表的排序排序一般用于表中记录较少的情况。格式:SORTTO<表文件名>ON<字段名1>[/A][/D][/C][,<字段名2>[/A][/D][/C]…][ASCENDING/DESCENDING][<范围>][FOR<条件>][WHILE<条件>][FIELDS<字段名表>]功能:对当前表中指定范围内满足条件的记录,按指定字段的升序或降序重新排列,并将排序后的记录按FIELDS子句指定的字段写入新的表文件中。返回本节3.4.2表的索引索引文件是由指针构成的,这些指针逻辑上按照索引关键字的值进行排序。索引文件和表文件分别存储,并且不改变表中记录的物理顺序。独立索引文件只能包含一个单一的关键字或者组合关键字,其扩展名是.IDX。复合索引文件的扩展名是.CDX,在一个复合索引文件中可以包含多个索引选项,每个索引选项叫做索引标识(IndexTag)。返回本节1.索引文件的建立格式一(建立.IDX索引文件):INDEXON<关键字表达式>TO<独立索引文件名>[FOR<条件>][UNIQUE][COMPACT][ADDITIVE]格式二(建立.CDX索引文件):INDEXON<关键字表达式>TAG<标记名>[OF<复合索引文件名>][UNIQUE/CANDIDATE][ASCENDING/DESCENDING][ADDITIVE][FOR<条件>]功能:建立一个独立索引文件或复合索引文件的标识。2.索引文件的打开与关闭(1)打开表文件的同时打开索引文件。格式:USE<表文件名>/?[INDEX<索引文件名表>/?][ORDER[<算术表达式>/<IDX索引文件名>/[TAG]<标记名>[OF<复合索引文件名>][ASCENDING/DESENDING]]](2)在表文件己经打开的情况下打开索引文件。格式:SETINDEXTO[<索引文件名表>/?][ORDER[<算术表达式>/<IDX索引文件名>/[TAG]<标记名>[OF<复合索引文件>][ASCENDING/DESCENDING]][ADDITIVE](3)在打开的索引文件中设置主控索引。格式:SETORDERTO[<算术表达式>/<IDX索引文件名>/[TAG]<索引标记名>[OF<复合索引文件名>][ASCENDING/DESCENDING]]3.重新索引格式:REINDEX功能:重新建立打开的索引文件。说明:使用重新索引命令时,需要先打开表文件和需要更新的索引文件。4.删除复合索引文件中的标记格式一:DELETETAG<标记名1>[OF<复合索引文件名1>][,<标记名2>[OF<复合索引文件名2>]]…功能:从指定的复合索引文件中删除指定的索引标记。格式二:DELETEALL[OF<复合索引文件名>]功能:删除指定复合索引文件的全部标记,该复合索引文件将自动被删除。返回本节3.4.3表的查询1.FIND命令2.SEEK命令3.LOCATE和CONTINUE命令1.FIND命令格式:FIND<字符串或数值>功能:在索引文件中找到索引关键字值与指定字符串或数值相符的第1个记录并将指针指向它。2.SEEK命令格式:SEEK<表达式>[ORDER[<索引号>/IDX<索引文件名>]/[TAG]<标识名>[OF<CDX文件名>]][ASCENDING/DESCENDING]功能:在索引文件中查找关键字内容与表达式相同的第1条记录。3.LOCATE和CONTINUE命令格式:LOCATE[<范围>]FOR<条件>[WHILE<条件>]功能:把当前表的指针指向满足条件的第1条记录。返回本节3.5表的统计与汇总3.5.1表的统计3.5.2表的汇总返回首页3.5.1表的统计1.计数命令2.求和命令3.求平均值命令1.计数命令格式:COUNT[<范围>][FOR<条件>][WHILE<条件>][TO<内存变量名>]功能:在当前表文件中,对指定范围内满足条件的记录进行统计。2.求和命令格式:SUM[<字段表达式表>][<范围>][TO<内存变量名表>/TOARRAY<数组名>][FOR<条件>][WHILE<条件>]功能:对当前表中指定范围内满足条件的记录按指定数值型字段的列求和。3.求平均值命令格式:AVERAGE[<表达式表>][<范围>][TO<内存变量名表>/TOARRAY<数组名>][FOR<条件>][WHILE<条件>]功能:将当前表中的全部记录或指定记录的数值型字段求平均值。返回本节3.5.2表的汇总表的汇总又叫同类项合并、分类求和等,它可以按照关键字值的不同对数值型字段进行分类求和。格式:TOTALTO<新表文件名>ON<关键字>[FIELDS<字段名表>][<范围>][FOR<条件>][WHILE<条件>]功能:以关键字的不同字段值为类别,对指定范围内满足条件的记录的全部数值字段或由FIELDS子句指定的数值字段进行分类求和,并将结果保存在新表文件中。返回本节3.6多表使用3.6.1工作区的选择3.6.2表之间的关联3.6.3表之间的联接3.6.4表文件的更新返回首页3.6.1工作区的选择工作区的区号可以用正整数表示,其中1~10号工作区也可以用A~J这10个英文字母来表示。格式:SELECT<工作区号/别名>功能:选择需要使用的工作区。返回本节3.6.2表之间的关联表之间的关联是指建立关联的两个表的记录指针同步移动,这种关联仅在两个表之间建立一种逻辑关系,即建立记录指针之间的联系,而不产生一个新的表文件。这种操作也称为表间的逻辑联接。格式:SETRELATIONTO[<关键字表达式1>/<数值表达式1>INTO<工作区号>/<别名>[,<关键字表达式2>/<数值表达式2>INTO<工作区号>/<别名>…][ADDITIVE]]功能:当前工作区中的表文件与其他工作区中的表文件通过关键字建立关联。返回本节3.6.3表之间的联接表之间的联接也称为表之间的物理联接,是指将两个表文件联接生成一个新的表文件,新表文件中的字段是从不同的两个表中选取的。此项操作前后共有3个表文件,请大家在使用此命令时一定要注意。格式:JOINWITH<工作区号>/<别名>TO<新表文件名>[FIELDS<字段名表>]FOR<联接条件>功能:将不同工作区中的两个表文件进行联接,生成一个新的表文件。返回本节3.6.4表文件的更新用REPLACE命令可以实现数据的批量修改,但必须在同一个表文件中完成,UPDATE命令则可以实现用另一个表文件中的数据来修改当前表文件。格式:UPDATEON<关键字段名>FROM<工作区号>/<别名>REPLACE<字段名1>WITH<表达式1>[,<字段名2>WITH<表达式2>…][RANDOM]功能:当别名表文件中的记录与当前表文件中记录的关键字段值相同时,用指定表达式的值修改当前表文件中该记录指定字段的值。返回本节3.7数据库的创建及基本操作3.7.1创建数据库3.7.2打开数据库3.7.3关闭数据库3.7.4删除数据库返回首页3.7.1创建数据库1.命令方式格式:CREATEDATABASE<数据库名>功能:创建一个新的数据库。2.菜单方式通过菜单方式创建数据库有两种方式,新建文件方式和向导方式。返回本节3.7.2打开数据库如果想打开一个已经存在的数据库,则可以使用OPEN命令。格式:OPENDATABASE<数据库名>功能:打开指定的数据库文件。图3-19“创建”窗口返回本节图3-20“MicrosoftVisualFoxPro”窗口3.7.3关闭数据库如果想关闭一个已经打开的数据库,可以使用CLOSE命令。格式:CLOSEDATABASE或CLOSEALL功能:关闭所有打开的数据库和表。说明:CLOSEALL还可以关闭某些窗口,如表单设计器、标签设计器、查询设计器和报表设计器等。返回本节3.7.4删除数据库如果想删除一个不需要的数据库,可以使用DELETE命令。格式:DELETEDATABASE<数据库名>[DELETETABLES]功能:删除<数据库名>指定的数据库。返回本节3.8在数据库中添加和移去表3.8.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论