数据库表及其操作_第1页
数据库表及其操作_第2页
数据库表及其操作_第3页
数据库表及其操作_第4页
数据库表及其操作_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

本章内容简介本章介绍数据库与数据表的设计、创立、使用及表属性的设置。学习目标理解关系型数据库保存数据的特点,重点掌握数据库中表间的联系,学习数据库与数据表的设计、建立与使用的方法,学会在VisualFoxPro中操作数据库与数据表。通过对本章学习,理论上要求能深入地理解关系型数据库的特点,掌握设计数据库表的方法,理解索引的功能和数据完整性的意义。学习切入点及方法以数据管理的需求分析为切入点,通过分析数据库的表间联系来加深对关系型数据库的理解,多上机练习,掌握数据库与数据表的操作方法。建议学时课堂讲授8~10学时,上机15~20学时。另外学生在课后应有预习、复习及练习设计各种不同的数据库的时间。2023/7/2013.1设计数据库3.2数据库的创立和操作3.3数据表的创立3.4数据表的根本操作3.5索引3.6数据完整性2023/7/202VisualFoxPro是一个关系数据库管理系统。关系型数据库管理系统以表的形式管理所有的数据。数据库:指存储在外存上的有结构的数据集合。在VisualFoxPro中,数据库用于存储数据库表的属性,组织、关联表和视图,创立存储过程。在VisualFoxPro中,表分为数据库表和自由表两类。属于某一数据库的表称为数据库表;不属于任何数据库而独立存在的表称为自由表。2023/7/203设计数据库一般包括以下几个根本过程:1.分析数据需求:确定需要数据库保存那些信息。2.确定需要的表:按不同的主题将信息分配到不同的数据表中。3.确定所需字段:确定每个表中要保存哪些信息。4.确定表间联系:分析数据库中的表间联系。5.完善设计:对设计进一步分析,查找错误,对设计方案进一步完善。在数据库应用系统中,数据库的设计是一项非常重要的工作,数据库性能的优劣将直接影响到最终应用系统的性能。经过长期摸索,人们提出了数据库设计方法以及各种设计准那么和规程,这就是标准化设计方案。3.1设计数据库确定所需字段包括以下几个方面:

1.字段唯一性2.字段无关性

3.使用主关键字4.外部关键字

5.收集所需的全部信息6.以最小的逻辑单位存储信息2023/7/204设计数据库3.1.1分析数据需求数据库设计的第一步是明确数据库的使用目的。需要从数据库中得到哪些信息,数据库是作什么用途。明确目的之后,才可以确定需要保存哪些主题的信息〔表〕,以及每个主题需要保存哪些信息〔字段〕,这些主题之间的关系如何。3.1.2确定数据库表在关系型数据库中,每一个关系都是一个二维表。在一个数据库中可以有假设干个关联的二维表〔关系〕。

确定所需字段字段:是表中最小的数据单位,决定了表中要保存的信息类型。为了保证数据的不多余性且不遗漏信息,在确定表中所需字段时应考虑字段的唯一性、无关性及主关键字和外部关键字等要求。2023/7/2053.1.4确定表间联系VisualFoxPro将表间的联系归结为3种:一对一、一对多和多对多。3.1.4.1一对一联系如果A表的一个记录在B表中只能对应一个记录,而B表中的一个记录在A表中也只能有一个记录与之对应,那么两表之间就是一对一的联系。例如:一个单位人事部的职工表和财务部的工资表就是一对一的联系。2023/7/2063.1.4确定表间联系3.1.4.2一对多联系如果对于A表中的任意一个记录,在B表中可以有多个记录与之对应,但反过来B表中的任意记录,在A表中只有一个记录与之对应,那么两表之间就是一对多的联系。在一对多联系中,位于“一〞端的表称为父表,和父表关联的那个表为子表。父表也称为主表或主控表,子表又称为相关表或受控表。在一对一或一对多联系中,位于“一〞端的表中用于建立联系的字段必须是主关键字字段,而位于“多〞端的表中用于建立联系的字段是外部关键字字段。2023/7/2073.1.4确定表间联系3.1.4.2一对多联系例如学校里的班级和学生:一个班级有多个学生,而一个学生只能在一个班级里,所以班级和学生之间就是一对多的联系。班级表和学生表通过编号建立起了一对多联系。一对多关系示意图2023/7/2083.1.4确定表间联系3.1.4.3多对多联系如果A表的一个记录在B表中可以对应多个记录,同样B表中的一个记录在A表中也可以对应多个记录,那么两表之间就是多对多的联系。在设计数据库时,应将多对多联系分解成两个一对多联系,其方法就是在具有多对多联系的两个表之间创立第三个表。用于分解多对多联系的表称为“纽带表〞。因为它在两表之间起着纽带的作用,可以把两个表的主关键字都放在这个纽带表中。纽带表可以只包含它所链接的两个表的主关键字,也可以包含其它信息。在纽带表中,两个字段连在一起就能使每个记录具有唯一值。2023/7/2093.1.4确定表间联系3.1.4.3多对多联系例如学校里的课程和学生:一门课程有多个学生学习,而一个学生也要学习多门课程,所以课程和学生之间就是多对多的联系。因为学生学习的每门课程都有相应的成绩,可以通过成绩将课程和学生联系起来。“成绩〞表就是“学生〞表和“课程〞表之间的纽带表。多对多关系的分解2023/7/20103.1.4确定表间联系3.1.4.3多对多联系多对多关系分解成两个一对多关系的分解示意图2023/7/20113.1.5完善数据库设计在试验最初的数据库时,很可能会发现需要改进的地方。①是否遗忘了字段?是否有需要的信息没有包括进去?如果是,是否属于已创立的表?如果不在创立的表中,需要另外创立一个表。②是否为每个表选择了适宜的主关键字?在使用主关键字查找记录时,它是否很容易记忆和输入?要确保主关键字值不会出现重复。③是否在某个表中重复输入了同样的信息?如果是,需要考虑将此表分成两个一对多联系的表。④是否有字段很多、记录却很少的表,而且许多记录中的字段值为空?如果是,要考虑重新设计该表,使它的字段减少,记录增多。2023/7/20123.1.6例如数据库:“世界杯〞数据需求:存放各届足球世界杯举办的时间、地点、参赛队以及冠军、最正确球员、最正确射手归属等方面的信息。可以查出每届的参赛队成绩、每届的冠军、最正确球员、最正确射手的信息;以及每个参赛队参赛次数、参赛成绩等信息。设计要求:数据表信息如下:“基本信息”各届世界杯的基本信息,如:举办的时间、地点、举办国、是否点球决以及冠军得主等。“参赛队”参赛队的有关信息。包括参赛队名称,所属的地区(在哪个洲)等。“参赛成绩”各个参赛队的在历届世界杯中的比赛成绩。“最佳球员”历届世界杯所评选的最佳球员的信息。“最佳射手”历届世界杯所评选的最佳射手的信息。2023/7/2013字段及主关键字:届次、日期、举办国、队数、冠军、点球决胜、举办背景、照片。参赛队、地区、备注。届次、参赛队、成绩。届次、姓名、国籍。“根本信息〞“参赛队〞“参赛成绩〞“最正确球员〞“最正确射手〞届次、姓名、国籍、进球数。3.1.6例如数据库:“世界杯〞2023/7/2014世界杯数据库中各表间关系表间关系:3.1.6例如数据库:“世界杯〞2023/7/2015创立数据库的常用方法有以下3种:1.在“工程管理器〞中创立数据库;2.使用“文件〞菜单的“新建〞命令创立数据库;3.在“命令〞窗口中输入创立数据库的命令。

VisualFoxPro数据库文件的扩展名是.DBC。建立.DBC文件的同时,自动建立.DCT〔备注〕和.DCX〔索引〕文件。3.2数据库的建立和操作3.2.1创立数据库2023/7/2016例如,在工程管理器中创立数据库。在前面已创立的“世界杯〞工程中创立数据库的操作步骤如下:①在“世界杯〞工程中选择“数据〞选项,选择“数据库〞,单击“新建〞按钮,翻开“新建数据库〞对话框。②在“新建数据库〞对话框中单击“新建数据库〞按钮,翻开“创立〞对话框。③在“创立〞对话框的“数据库名〞文本框中输入“世界杯〞作为数据库文件的名称;选择保存数据库文件的文件夹“D:\世界杯〞;保存类型为默认的“数据库〔*.DBC〕〞。④单击“保存〞按钮,翻开“数据库设计器〞对话框。3.2数据库的建立和操作3.2.1创立数据库2023/7/20173.2.2操作数据库3.2.2.1在工程中添加/移出数据库3.2.2.2翻开/关闭数据库3.2.2.3翻开数据库设计器“数据库设计器〞窗口是一个带有工具栏的设计窗口。“数据库设计器〞工具栏一般随“数据库设计器〞窗口同时翻开,如果“数据库设计器〞工具栏没有翻开,可选“显示〞菜单下的“工具栏〞命令,在“工具栏〞对话框中选中“数据库设计器〞工具栏将其翻开。“数据库设计器”和“数据库设计器”工具栏3.2.2.4给数据库添加注释3.2.2.5使用多个数据库3.2.2.6数据库错误

2023/7/20183.2.2.7操作数据库的常用命令3.2.2操作数据库建立数据库:CREATEDATABASE<数据库名>翻开数据库:OPENDATABASE<数据库名>翻开数据库设计器:MODIFYDATABASE[<数据库名>]设置当前数据库:SETDATABASETO[<数据库名>]显示当前数据库结构:DISPLAYDATABASE[<数据库名>]关闭数据库:CLOSEDATABASE[ALL]删除数据库:DELETEDATABASE<数据库名>2023/7/20193.3数据表的创立前面建立的“世界杯〞数据库还是一个空数据库。在使用“世界杯〞数据库之前,需要先将前面为这个数据库设计的的5个表:“根本信息〞、“参赛队〞、“参赛成绩〞、“最正确射手〞和“最正确球员〞表建立起来。在VisualFoxPro中,创立一个新表分为两个步骤:步骤一:创立表的结构。即说明表包含哪些字段,每个字段的长度及数据类型等。步骤二:输入记录。即向表中输入数据。2023/7/20203.3数据表的创立3.3.1建立表结构3.3.1.1表的特征表可存储假设干条记录。每条记录可以有假设干个字段,而且每条记录的字段结构相同,也就是具有相同的字段名、字段类型和字段顺序。字段可以是不同的类型,以便存储不同类型的数据。记录中每个字段的顺序与存储的数据无关。每条记录在表中的顺序与存储的数据无关。2023/7/20213.3数据表的创立3.3.1建立表结构3.3.1.2设计字段属性一个表中的所有字段组成了表的结构,字段属性决定了表的结构。

字段属性包括:字段名称、类型、宽度、小数位数及是否允许为空。字段类型说明2023/7/20223.3数据表的创立3.3.1建立表结构3.3.1.3创立数据库表可以使用以下3种方法启动数据库表的创立:方法一:在“工程管理器〞中选择“数据库〞的“表〞选项,单击“新建〞按钮,即可创立属于该数据库的数据库表。方法二:在“数据库设计器〞中,从“数据库〞菜单中选择“新建表〞命令或单击“数据库设计器〞工具栏上的“新建表〞按钮。方法三:选择“文件〞菜单中的“翻开〞命令翻开数据库,然后再选择“文件〞菜单中的“新建〞命令来创立表,此时创立的新表自动成为当前数据库中的数据库表。2023/7/20233.3数据表的创立3.3.1建立表结构3.3.1.3创立数据库表采用前述3种方法,都将进入创立方法选择框,可以选择表向导或表设计器来创立数据库表。下面将分别采用表设计器和表向导来创立世界杯数据库中的4个数据库表,而“根本信息〞表,可以从自由表转为数据库表。为方便管理,在“D:\世界杯〞下创立一个名为“表〞的文件夹,用于存放所有创立的表。保存类型为“表/DBF〔*.DBF〕〞,将创立的表保存为.DBF文件。2023/7/20243.3数据表的创立3.3.1建立表结构3.3.1.3创立数据库表“世界杯”数据库中的5个表表结构创立完成后,将得到右图所示的工程管理器窗口,显示世界杯数据库中的5个数据表。2023/7/20253.3数据表的创立3.3.2记录的输入和删除3.3.2.2浏览窗口的使用1.浏览记录滚动条、Tab键、Shift+Tab键、PageUp键、PageDown键当前记录:记录指针查看备注型或通用型字段:双击该字段。2.改变列宽和行高3.调整字段顺序在浏览窗口改变列宽和列的排列顺序不会影响字段的实际结构。4.翻开或关闭网格线选择“显示〞菜单中的“网格线〞命令可显示或隐藏浏览窗口中的网格线。2023/7/20263.3数据表的创立3.3.2记录的输入和删除5.切换显示方式两种显示方式:浏览方式和编辑方式2023/7/20273.3数据表的创立3.3.2记录的输入和删除6.拆分浏览窗口将鼠标指向窗口左下角的拆分条,鼠标指针变为左右箭头对接的形状,将拆分条拖到所需的位置。

调整拆分窗口的大小,只需向左或向右拖动拆分条即可。默认情况下,两个窗口是链接的。取消“表〞菜单中“链接分区〞的选中状态,可以中断两个窗口之间的联系,使它们的功能相对独立。拆分“浏览〞窗口可以查看同一表中的两个不同区域或者分别用浏览和编辑方式查看同一记录。2023/7/20283.3数据表的创立3.3.2记录的输入和删除3.3.2.3追加记录利用其他表中已有的相同内容,可以快速给新表追加记录。1.追加源表中的所有记录①将需要追加记录的表在浏览窗口中翻开。②选择“表〞菜单下“追加记录〞命令。

2.有选择的追加记录和字段在“追加来源〞对话框中单击“选项〞按钮,翻开“追加来源选项〞对话框。如只想追加第8届世界杯的记录,表达式为:届次=〞08〞〔因届次为查找方便定义成字符型,字段变量的值应加上英文双引号〕。2023/7/20293.3数据表的创立3.3.2记录的输入和删除3.3.2.1在浏览窗口中输入记录在“工程管理器〞中选择表,单击“浏览〞按钮即可翻开“浏览〞窗口。翻开“浏览〞窗口后,选择“显示〞菜单下的“追加方式〞命令,即可在“浏览〞窗口中输入数据。在输入记录的字段值时,只能输入数据类型有效的值。备注型字段和通用型字段的内容不能直接在“浏览〞窗口中输入。双击该字段,翻开专门的备注型字段或通用型字段输入窗口,即可在其中输入备注型字段或通用型字段的内容。输入完所有的记录后,单击浏览窗口右上角的关闭按钮。2023/7/20303.3数据表的创立3.3.2记录的输入和删除3.3.2.4修改记录内容在“浏览〞窗口中修改表中字段的内容,只需找到记录中要修改的字段所在的单元格,输入正确的内容即可。编辑“备注型〞字段,可在“浏览〞窗口中双击该字段。这时会翻开一个“编辑〞窗口,其中显示了“备注型〞字段的内容。通过双击“浏览〞窗口中的“通用型〞字段,可以编辑这个对象。2023/7/20313.3数据表的创立3.3.2记录的输入和删除3.3.2.5删除记录在VisualFoxPro中删除记录的过程,分为两大步骤:第一步:对要删除的记录作删除标记,又称为逻辑删除。第二步:彻底删除,又称为物理删除。在浏览窗口中,记录前的小方块就是记录的删除标记条。记录删除标记条变成了黑色,表示记录已被作了删除标记。此时系统就不能对记录进行任何操作,但记录仍然保存在表中。对已作了删除标记的记录,用户既可以将其彻底删除,也可以将其恢复。2023/7/20323.3数据表的创立3.3.2记录的输入和删除3.3.2.5删除记录条件删除:使用“删除〞对话框进行条件删除。①翻开“浏览〞窗口。②选择“表〞下“删除记录〞,出现“删除〞对话框。③在“作用范围〞列表框中选择操作范围:All:全部记录。Next:从当前记录开始的假设干个记录。Record:特指某个记录。Rest:从当前记录开始直到最后一个记录。“删除”对话框1.作删除标记逐一删除:在浏览窗口中,用鼠标单击记录前的删除标记条,使其变黑,就给该记录加上了删除标记。④选择“For〞或“While〞构造逻辑表达式来设置删除记录需要满足的条件。⑤单击“删除〞,符合条件的记录打上删除标记。2023/7/20333.3数据表的创立3.3.2记录的输入和删除3.3.2.5删除记录2.彻底删除假设要将已作了删除标记的记录真正地从表中删除,从“表〞菜单中选择“彻底删除〞命令,在弹出的“移去已删除记录〞对话框中单击“是〞按钮也可以在“命令〞窗口使用PACK命令。3.删除全部记录如果想删除表中的所有记录,只留下表的结构,可使用ZAP命令。在“命令〞窗口中输入“ZAP〞命令将彻底删除表中的所有记录。注意:此命令破坏性极大,应慎用。2023/7/20343.3数据表的创立3.3.2记录的输入和删除3.3.2.6复原记录标记记录并不等于删除记录。可以撤销删除标记,恢复成原来的状态。逐一恢复:用鼠标单击记录前的删除标记,使其恢复为白色,取消删除标记。条件恢复:“表〞菜单中的“恢复记录〞命令。操作和“删除记录〞命令相似。注意:执行“彻底删除〞命令后,带有删除标记的记录被从磁盘上彻底删除。被彻底删除的记录不能再用“恢复记录〞命令恢复。2023/7/20353.4数据表的根本操作3.4.1在数据库设计器中操作表3.4.1.1翻开/关闭表1.翻开表方法一:在“工程管理器〞窗口中选定要翻开的表,单击“浏览〞按钮,那么会翻开该表并在“浏览〞窗口中显示出来。方法二:从“文件〞菜单中选择“翻开〞命令或直接单击工具栏上的“翻开〞按钮,然后在“翻开〞对话框中选择要翻开的表将其翻开。方法三:在“命令〞窗口输入“USE<表名>〞命令。例如,要翻开“根本信息〞表,在命令窗口中输入以下命令:USE根本信息2.关闭表在“命令〞窗口输入不带<表名>参数的“USE〞命令即可。2023/7/20363.4数据表的根本操作3.4.1在数据库设计器中操作表3.4.1.2在“数据库设计器〞中查看表

1.展开或折叠表2.重排数据库的表3.在数据库中查找表或视图4.选择显示的对象世界杯数据库中的表2023/7/20373.4数据表的根本操作3.4.1在数据库设计器中操作表3.4.1.3数据库表和自由表

VisualFoxPro中的数据表可以有两种存在状态:自由表〔即没有和任何数据库关联的.DBF文件〕和数据库表〔即与数据库关联的.DBF文件〕。数据库表和自由表可以互相转换:当用户将数据库表从一个数据库中移出,数据库表便成了自由表;反之,如将自由表参加到某一个数据库中,自由表便成了数据库表。数据库表只能属于一个数据库,如想将一个数据库中的表移到其他数据库,必须先将该表从数据库中移出变为自由表,再将其参加到另一数据库中。数据库表和自由表相比,具有一些自由表所没有的属性,如主关键字、触发器、默认值、表间联系等。将表组合到数据库内,可以使它们协同工作。2023/7/20383.4数据表的根本操作3.4.1在数据库设计器中操作表3.4.1.4在数据库设计器中添加、移出或删除表1.添加数据库表2.移出或删除数据库表添加、移去或删除数据库表的操作也可以直接在工程管理器中进行。1.在“工程管理器〞窗口中添加数据库表2.在“工程管理器〞窗口中移出或删除数据库表3.4.1.5在“工程管理器〞中添加、移出或删除表2023/7/20393.4数据表的根本操作3.4.2设置数据库表属性3.4.2.1查看或修改表结构在“工程管理器〞窗口的“数据〞选项卡中选择需要查看或修改结构的表,单击“修改〞按钮,翻开“表设计器〞对话框。在“表设计器〞中可以查看或改变已有表的结构,如增加或删除字段、改变字段的数据类型及宽度等。注意:在将字段宽度值改小时,超出字段宽度的字符会自动丧失,如果字段是数值型那么会溢出,这时在表的浏览窗口中看到的是几个“*〞号,并且丧失的字符或数字不能通过将字段长度改为原有长度而得到恢复。改变字段的数据类型也可能导致数据的丧失。2023/7/20403.4数据表的根本操作3.4.2设置数据库表属性3.4.2.2设置数据库表的属性数据库表的表设计器比自由表的表设计器多了一些选项:在数据库表的表设计器的“字段〞选项卡的下部,有“显示〞、“字段有效性〞、“字段注释〞和“匹配字段类型到类〞4个输入区域。数据库表具有自由表所没有的一些属于数据字典的属性,例如长字段名和长表名、掩码、默认值、字段级和记录级规那么及触发器等。属性被作为数据库的一局部保存起来,如果表被从数据库中移出,那么原来拥有的这些属性都将失去。2023/7/20413.4数据表的根本操作3.4.2设置数据库表属性3.4.2.2设置数据库表的属性1.设置字段的显示属性·格式规定字段显示时的样式。格式决定了字段的显示风格。例如,将系统日期格式设置为年/月/日,年为四位,在表设计器中设置“根本信息〞表的“日期〞格式为D,那么在浏览窗口中显示日期为yyyy/mm/dd格式。·输入掩码指定字段输入值的格式。使用输入掩码可屏蔽非法输入,减少人为的数据输入错误,提高输入工作效率,保证输入的字段数据格式统一、有效。·标题指定显示代表字段的标题。最多可包含128个字符。·字段的注释在“工程管理器〞中选择了这个字段时,在“工程管理器〞的底部显示该字段的注释文本。2023/7/20423.4数据表的根本操作3.4.2设置数据库表属性3.4.2.2设置数据库表的属性2.输入字段的默认值例如,在输入“参赛队〞表中数据时,如果当前正在输入非洲的球队,可将地区默认值设置为“非洲〞。3.表名和表注释·表名指定正在创立或修改的表的名称。但并不是文件名。·表注释在表注释区可以输入对表的注释。与字段注释一样,在选定一个表时,在“工程管理器〞窗口底部显示表的注释文本。2023/7/20433.4.3数据过滤和字段筛选3.4.3.1定位记录在翻开的表中只有一条记录是“当前记录〞。在浏览窗口,当前记录前有一个黑三角标志。1.用“查找〞命令查看数据2.用“转到记录〞命令查看数据“转到记录〞子菜单“定位记录”对话框3.4数据表的根本操作2023/7/20443.4.3数据过滤和字段筛选3.4.3.2数据过滤与字段筛选假设有多个记录都符合定位的条件,使用“定位〞命令只能定位表中的第一个符合条件的记录,假设想同时查出所有记录,那么需使用数据过滤功能。1.记录过滤例如,想在“浏览〞窗口中只显示第17届和18届的世界杯的根本信息。“工作区属性”对话框3.4数据表的根本操作2023/7/20453.4.3.2数据过滤与字段筛选2.字段筛选例如,在“浏览〞窗口中显示“根本信息〞表中的“届次〞,“举办国〞和“冠军〞字段。“字段选择器”对话框3.4数据表的根本操作3.4.3数据过滤和字段筛选2023/7/20463.4.4工作区与多表操作3.4.4.1工作区和工作期的概念1.工作区工作区:是一个编号的区域,用来标识一个翻开的表。最多可以有32767个工作区。在每个工作区中只能同时翻开一个表,在工作区中翻开表时,原来在该工作区中翻开的表自动关闭。选择工作区使用SELECT命令:SELECT<工作区标识>工作区标识可以是0~32767的编号,也可以是表的别名。如果执SELECT命令中的“工作区标识〞为0时,表示选择了空闲的最小号工作区。如果翻开了多个工作区,那么当前工作区是指最后执行SELECT命令所选择的工作区。3.4数据表的根本操作2023/7/20473.4.4.1工作区和工作期的概念2.数据工作期“数据工作期〞是当前动态工作环境的一种表示,每个数据工作期包含有自己的一组工作区,这些工作区含有翻开的表、表索引和联系。3.在“数据工作期〞窗口查看工作区从“窗口〞菜单项选择择“数据工作期〞命令,或在“命令〞窗口中输入SET命令,翻开“数据工作期〞窗口,并显示在当前数据工作期中的工作区中翻开的表的别名。“数据工作期”窗口3.4数据表的根本操作3.4.4工作区与多表操作2023/7/20483.4.4.2在工作区中翻开/关闭表1.在工作区中翻开表在“数据工作期〞窗口中单击“翻开〞按钮,在“翻开〞对话框中选择要翻开的表及翻开的方式〔是否以“独占〞的方式翻开〕。2.在工作区中关闭表在“数据工作期〞窗口中选定要关闭的表别名,然后单击“关闭〞按钮。或使用SELECT命令选择工作区后再用USE命令翻开或关闭当前工作区中的表。当在同一工作区中翻开其他表时,自动关闭原工作区中已翻开的表。3.4数据表的根本操作3.4.4工作区与多表操作2023/7/20493.4.4.3使用表别名1.创立用户自定义别名例如,可以使用以下命令翻开表文件“根本信息.dbf〞,指定别名“JBXX〞:SELECT0USE根本信息ALIASJBXX2.使用VisualFoxPro指定的别名在前10个工作区中指定的默认别名是工作区字母A~J,在工作区11~32767中指定的别名是W11~W32767。别名是指定给一个表或表达式的另一个名称,通常用来缩短在代码中引用的名称。表的别名是用来引用工作区中翻开的表的。当翻开一个表时,自动将表名作为默认的别名。也可以另外指定一个别名。3.4数据表的根本操作3.4.4工作区与多表操作2023/7/20503.4.4.3使用表别名3.使用别名选择工作区如果执行了下面两条命令:SELECT1USE根本信息ALIASJBXX那么下面三条命令是等价的:SELECT1SELECTASELECTJBXX4.引用在其他工作区中翻开的表在别名后加上点号分隔符“.〞或“->〞操作符,然后再加字段名,可以引用其他工作区中的字段。例如,访问其他工作区中翻开的“根本信息〞表的“冠军〞字段:根本信息.冠军如果要引用的表是用别名翻开的,那么也可以使用别名。例如:JBXX.举办国3.4数据表的根本操作3.4.4工作区与多表操作2023/7/20513.4.5操作表的常用命令建立与修改、翻开与关闭表的命令〔1〕建立数据表:CREATE<表文件名>〔2〕翻开数据表:USE<表名>[IN<工作区号>|<表别名>]〔3〕关闭数据表:USE[IN<工作区号>|<表别名>]〔4〕关闭所有工作区中的数据表:CLOSETABLESALL〔5〕关闭所有翻开的文件:CLOSEALL〔6〕翻开表设计器〔显示/修改表结构〕:MODIFYSTRUCTURE〔7〕翻开“浏览〞窗口〔显示/修改表记录〕:BROWSE[FIELDS<字段名>]3.4数据表的根本操作2023/7/20523.4.5操作表的常用命令3.4.5.2显示表结构与表记录的命令〔1〕显示表结构DISPLAY|LISTSTRUCTURE[TOPRINTER[PROMPT]|TOFILE<文件名>]〔2〕显示表记录DISPLAY|LIST[<范围>][FIELDS<字段名表>][FOR<条件表达式>][WHILE<条件表达式>][TOPRINTER[PROMPT]|TOFILE<文件名>]当“范围〞省略时,DISPLAY命令默认为当前记录,而LIST默认为全部记录。3.4数据表的根本操作2023/7/20533.4.5操作表的常用命令3.4.5.3更新、添加与删除表记录命令〔1〕交互式修改记录EDIT|CHANGE[<范围>][FOR<条件表达式>][WHILE<条件表达式>]〔2〕直接修改记录REPLACE<字段名1>WITH<表达式1>[,字段名2WITH表达式2...][范围][FOR<条件表达式>]|[WHILE<条件表达式>]〔3〕在表的末尾追加〔空白〕记录:APPEND[BLANK]〔4〕利用已有文件追加记录APPENDFROM<文件名>[FIELDS<字段名表>][FOR<条件表达式>][SDF]〔5〕在当前记录之后〔之前〕插入〔空白〕记录:INSERT[BEFORE][BLANK]〔6〕删除记录〔删除标记〕:DELETE[范围][FOR<条件表达式>][WHILE<条件表达式>]〔7〕恢复记录〔去删除标记〕:RECALL[范围][FOR<条件表达式>][WHILE<条件表达式>]〔8〕从磁盘上删除表中有删除标记的记录:PACK〔9〕从磁盘上删除表中所有的记录:ZAP注意:如果在表上建立了主索引或候选索引,那么不能用以上的APPEND或INSERT命令插入记录,必须使用SQL的INSERT命令。3.4数据表的根本操作2023/7/20543.4.5操作表的常用命令3.4.5.4查找与定位、过滤与筛选及移动记录指针的命令〔1〕查找〔定位〕记录LOCATEFOR<条件表达式>[范围][WHILE<条件表达式>]〔2〕继续查找〔满足LOCATE条件的〕下一记录CONTINUE〔3〕过滤记录SETFILTERTO[<条件表达式>]〔4〕筛选字段SETFIELDSTO[<字段名表>|ALL]〔5〕定位记录指针GO|GOTO<记录号>|BOTTOM|TOP〔6〕移动记录指针SKIP[数值表达式]3.4数据表的根本操作2023/7/20553.4.5操作表的常用命令3.4.5.5其他命令〔1〕复制表文件的结构:COPYSTRUCTURETO<新表文件名>[FIELDS<字段名表>]〔2〕复制表文件:COPYTO<新文件名>[范围][FOR<表达式>][WHILE<条件>][FIELDS<字段名表>]〔3〕将表文件复制成文本文件:COPYTO<新文本文件名>TYPEDELIMITED〔4〕文件复制命令:COPYFILE<源文件名>TO<新文件名>〔5〕将表的结构复制成记录内容:COPYSTRUCTUREEXTENDEDTO<新表文件名>[FIELDS<字段名表>]〔6〕选择当前工作区:SELECT<工作区号>|<表别名>〔7〕物理排序:SORTTO<新表文件名>ON<字段名1>[/A|/D][/C][,<字段名2>[/A|/D][/C]...][ASCENDING|DESCENDING][FIELDS<字段名表>][FOR<条件表达式>]〔8〕显示文件内容:TYPE<文件名>[TOPRINTER[PROMPT]|TOFILE<文件名>]〔9〕设置是否以独占的方式翻开数据表:SETEXCLUSIVEON|OFF3.4数据表的根本操作2023/7/20563.4.5操作表的常用命令3.4.5.6使用命令对表中记录排序所谓“排序〞,就是指定记录排列的先后顺序。建表时,输入到新表的记录按照输入顺序存储,在浏览表时,记录按输入的顺序出现。SORTTO<新表文件名>ON<字段名1>[/A|/D][/C][,<字段名2>[/A|/D][/C]...][ASCENDING|DESCENDING][FIELDS<字段名表>][FOR<条件表达式>]/A|/D:/A按升序排列,/D按降序排列,默认为按升序排列;/C:排序时不区分大小写字母,默认区分大小写;ASCENDING|DESCENDING:除了用/A|/D说明升序或降序的字段外,其他参与排序的字段的排序方式,默认为按升序排列;例如,要将“根本信息〞表生成一个按届次降序排序的新表:SORTON届次/DTOJBXX1排序后并不改变原表的顺序,但可以生成一个排过序的新表。3.4数据表的根本操作2023/7/2057VisualFoxPro表中的索引是一个记录号的列表,它指向待处理的记录,并确定了记录的处理顺序。表索引存储了一组记录指针。索引并不改变表中所存储数据的顺序,只改变VisualFoxPro读取每条记录的顺序。用户可以用索引快速显示、查询或者打印记录,还可以选择记录、控制重复字段的输入并支持表间的联系操作。索引对于数据库内表之间创立关联至关重要。在数据库中要建立各表之间的联系,就要正确合理地建立所有表中的索引。3.5索引3.5.1索引的概念2023/7/20583.5.1.1索引文件的类型1.结构复合索引文件扩展名为.CDX。结构复合索引文件具有与表相同的文件名,当翻开与它同名的表时也自动翻开该结构复合索引文件,关闭的同时自动关闭它。当在表中进行记录的添加、修改和删除时,系统会自动对结构复合索引文件中的全部索引记录进行维护。2.单独索引文件只包含单个索引项,扩展名为.IDX,其主文件名称不能和相关表同名,而且该文件不会随着表的翻开而自动翻开。3.非结构复合索引文件包含多个索引项,扩展名为.CDX。必须用命令翻开,只有在该文件翻开时,系统才能维护索引标记。可以看作是多个.IDX文件的组合。结构复合索引文件是在数据库中最普遍也最重要的一种索引文件。以下讨论的是.CDX结构复合索引文件。3.5索引3.5.1索引的概念2023/7/20593.5.1.2索引的类型3.5索引3.5.1索引的概念四种索引类型:主索引、候选索引、普通索引和唯一索引。1.主索引不允许在索引关键字中出现重复值的索引。对于每一个表只能建立一个主索引。自由表没有主索引。2.候选索引在索引关键字中不允许出现重复值的索引,作为主索引的候选者出现,一个表可以创立多个候选索引。3.唯一索引唯一索引无法防止重复值记录的建立。但在唯一索引中,只在索引文件中保存第一次出现的索引值。4.普通索引除上述三种索引之外的索引就是普通索引。索引关键字段和表达式允许重复值出现,可用普通索引进行表中记录的排序或搜索。2023/7/20603.5.2.1使用“表设计器〞创立或修改索引3.5索引3.5.2创立索引1.创立单字段普通索引2.创立复合字段索引“表设计器”对话框的“索引”选项卡2023/7/20613.5.2.1使用表设计器创立或修改索引3.5索引3.5.2创立索引3.筛选记录通过在“表设计器〞对话框的“索引〞选项卡中的“筛选〞框中输入一个筛选表达式,可以控制哪些记录可包含在索引中。4.修改、删除或插入索引在“表设计器〞对话框的“索引〞选项卡中可以对表中的索引进行修改。修改:鼠标单击欲修改处,然后加以修改。删除:选择欲删除的索引,单击“删除〞按钮。插入:选择欲插入的索引所在的位置,单击“插入〞按钮,然后输入或选择索引名、类型和索引表达式。在“表设计器〞对话框中设置好索引后,只要关闭“表设计器〞对话框,系统便会在表文件的保存目录中自动创立一个扩展名为.CDX的结构复合索引文件。2023/7/20623.5.2.1使用“表设计器〞对话框创立或修改索引3.5索引3.5.2创立索引“世界杯〞数据库表,在“表设计器〞对话框中设置各表的索引。“根本信息〞表:“届次〞为主关键字,设置为主索引,“日期〞设置为候选索引〔因为每届的举办时间没有重复值〕,“举办国〞设置为普通索引以方便以举办国为线索进行查询;“参赛队〞表:主索引为“参赛队〞,“地区〞设置为普通索引;“参赛成绩〞表:“届次〞和“参赛队〞都是外部关键字,只能设置为普通索引,将“届次+参赛队〞设置为“参赛成绩〞表的主索引;“最正确球员〞表:“届次〞是主索引。“最正确射手〞表:“届次〞是普通索引。2023/7/20633.5.2.1使用“表设计器〞创立或修改索引3.5索引3.5.2创立索引世界杯数据库中各表的索引和表间的“永久联系”有钥匙标志的是主索引。2023/7/20643.5.2.2使用命令创立索引3.5索引3.5.2创立索引创立索引的命令为INDEX,INDEX命令的格式如下:INDEXON<索引表达式>TO<单独索引文件名>|TAG<索引标识>[OF<非结构复合索引文件名>][FOR<条件表达式>][COMPACT][ASCENDING|DESCENDING][UNIQUE|CANDIDATE][ADDITIVE]2023/7/20653.5.3.1使用索引建立永久联系3.5索引3.5.3使用索引建立表间联系创立方法:在“数据库设计器〞窗口中,选择主表中想要关联的索引名,然后把它拖到相关表匹配的索引名上即可。联系特点:在数据库的两个表中要建立固定联系,要求两个表的索引中至少有一个是主索引,必须先选择主表的主索引,而子表中的索引类型决定了要创立的永久联系的类型:如果子表中的索引类型为主索引或候选索引,那么建立起的就是一对一联系;如果子表中的索引类型为普通索引或唯一索引,那么建立起的就是一对多联系。2023/7/20663.5.3.2使用索引建立临时联系3.5索引3.5.3使用索引建立表间联系永久联系是同一数据库中数据库表间的关联,这种联系存储在数据库文件中,可以作为查询、视图、表单以及报表中所使用的表间的默认关联。有时也需要能控制不同工作区中记录指针联动的临时联系。要建立临时联系,在“数据工作期〞窗口中通过单击“关系〞按钮建立。也可以使用命令:SETRELATIONTO<索引表达式>INTO<工作区号|表别名>“工作区号|表别名〞用来指定和要和当前工作区中的表建立关联的表;“索引关键字〞指定关联所用的索引关键字。2023/7/20673.5索引3.5.4使用索引排序在“浏览〞窗口中从“表〞菜单中选择“属性〞命令,翻开“工作区属性〞窗口。在“索引顺序〞框中选择要用的索引名,根据索引值的大小顺序显示记录。

例如,对于“根本信息表〞,已按日期降序建普通索引,中选择“索引顺序〞为日期时,将按日期降序排序记录。选择按日期降序排序记录使用索引排序不改变表中记录的存储顺序〔物理顺序〕,只改变了读取每条记录的顺序,称为逻辑排序,SORT命令排序称为物理排序。2023/7/20683.5索引3.5.5索引的常用命令〔1〕翻开索引文件SETINDEXTO<索引文件名表>〔2〕设置当前索引SETORDERTO[<索引序号>|[TAG]<索引标识>][ASCENDING|DESCENDING]〔3〕使用索引定位记录SEEK<索引表达式值>[ORDER<索引序号>|[TAG]<索引标识>][ASCENDING|DESCENDING]〔4〕删除索引DELETETAG<索引标识>|ALL2023/7/20693.6数据完整性3.6.1实体完整性与主关键字数据完整性是指保证数据库中的数据正确的特性。数据完整性一般包括实体完整性、域完整性和参照完整性等。实体完整性是保证表中记录唯一的特性,即在表中不允许有重复的记录。在VisualFoxPro中利用主关键字或候选关键字来保证实体的唯一性。VisualFoxPro中将主关键字作为主索引,候选关键字作为候选索引。2023/7/20703.6数据完整性3.6.2域完整性与有效性规那么数据库的有效性规那么即是对字段或记录的约束。用来检验数据库中输入的数据是否合法有效。3.6.2.1有效性规那么的概念有效性规那么分为:字段级有效性规那么和记录级有效性规那么。字段级规那么:对一个字段的约束称之为字段级规那么。字段级有效性规那么检查单个字段中信息输入的数据是否有效。记录级规那么:对一个记录的约束称之为记录级规那么,当插入或修改记录时激活,常用来检验数据输入的正确性。

温馨提示

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

评论

0/150

提交评论