免费预览已结束,剩余44页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,本章要点,1理解和掌握visual foxpro 提供的数据类型。 2深刻理解表的概念、熟练掌握表的建立的有关命令。 3熟练掌握有关对表操作的有关操作与命令。 4深刻理解数据库的概念,熟练掌握有关数据库的操作的命令。 5. 理解工作区的概念。 6. 掌握数据库当中多个数据表关系的建立以及操作等。,2,对于开发数据库管理系统的人员来说,最关键、最重要的一个环节就是建立合理、完备的数据库。在一个数据库的应用系统中,建立一个良好的数据库,是关系到开发整个系统的安全、高效、完善的设计基础。,3,7.1 数据类型 7.2 表的建立 7.3 表的操作 7.4 数据库创建与操作 7.5 工作区与多个表连接,4,7.1 数据类型,在visual foxpro 6.0中文版中,系统提供了不同的数据类型,这些类型可用来将各种类型的数据保存在表、数组、变量及其他的数据容器中,并可使用各种操作来对其进行处理。visual foxpro 6.0中提供了多种数据类型。,5,1.字符型(character) 字符型数据由可打印的字符组成,包括字母、数字、空格、专用符号、标点符号及汉字代码字符组成的字符串。 字符型数据的长度是1 254个字符。字符型数据是大多数表中最常见的数据类型。 2.数值型(numeric) 数值型数据用来表示数量,包含数字0 9,也可加上一个正负号或小数点。在数值型字段中,小数部分的长度是在创建字段时确定的,这个长度是字段总长度的一部分。这种数据在存储器中占8字节,在表中占1 20字节,其值的范围为0999 999 999 9e+19 0999 999 999 9e+20。,6,3.浮点类型(float) 浮点类型是visual foxpro 6.0中文版出于兼容的日的而设立的一种数据类型,它实际上和numeric是一样的。 4.双精度类型(double) 这种数据类型同数值类型一样用来存储数字,只是这种类型的数据是一个双精度数,因此它用于那种要求数值精度很高的场合,比如高精度的实验数据。双精度型数据占用8个字节的存储单元,其值的范围为很大。它和numeric类型不同,用户在输入值时才决定小数点的位置。 5.整数类型(integer) 这种数据类型为无小数位的数值,即整数。这种数据类型可用于页号、订单行号等不需小数位的场合。它在表中以4字节存储,范围为 2147483647 2147483646,在表中使用整 数比使用其他数值类型要节省空间,其运算速度比要高于其他数值类型的数据。,7,6.货币型(currency) 货币型数据是用存取专门表示货币金额数值的数据类型,它默认保留4位小数,其在表中需要有8字节的固定存储空间。货币的范围为她9223372036854775807 922 337 203 685477.5807。 7.日期型和日期时间型(date ,datetime) 用于存储日期型和日期时间型数据,长度均为8字节。在visual foxpro 6.0中文版中对其表示方法进行了改进,它使用了一种严格的日期格式,无论对于何种日期设置,这种日期格式都能计算出相同的日期型或日期时间增值。,8,8.逻辑性(logic) 逻辑型数据只含有两个值:“真”(.t.))或“假”(.f.)。逻辑型字段可用来存储只具有两种状态的信息,例如男和女,发货与退货等。在表中通常将逻辑型字段作为复选框资源。 9.备注型(memo) 备注类型用于存储大数据块的文本数据。备注型字段的取值与字符型的相同,只是比字符型字段能容纳更多的字符。 备注型字段内容的多少是可变的,这受内存可用空间的限制,也与具体的操作有关。,9,10.通用型(general) 通用型数据类似于备注型数据,但它主要是用于存储ole对象的数据,其长度固定为4位,实际的数据长度仅与磁盘的空间有关。其中ole对象可以是电子表格、文档、图片等。 11.二进制字符型(character binary) 这种类型与字符类型相同,只是当代码页改变时,其值不能翻译出来。它可用于再表中存储不同同家的用户密码等。 12.二进制本注型(memo binary) 这种类型与备注类型相同,只是当代码页改变时,其值不能翻译出来。它可用于不同国家使用的记录稿等。,10,7.2 表的建立,在visual foxpro 6.0中,数据表可以是与数据库无关的自由表,也可以是与数据库有关的数据库表。在数据库设计过程中,是选择自由表还是数据库表取决于数据表中的数据与其他表之间关系紧密程度。如果本数据表与其他数据表没有关系或关系不大,则可采用自由表,否则应采用数据库表。 使用“表设计器”创建表 从菜单中选择【文件】中的【新建】命令,系统弹出【新建】对话框,选择【表】,如图7.1所示。 单击【新建文件】按钮,并为所建立的新表选择合适的名称(“仓库表”)和合适存储目录,然后单击【保存】按钮,弹出如图7.2的对话框。,11,12, 选择【字段】选项卡,并分别输入表中的每个字段的字段名、类型、宽度、小数位数、索引等。 当一个字段输入结束,可利用鼠标直接单击下一行“字段名”的位置,也可以通过单击旁边的【插入】按钮来增加一个字段。可以通过【删除】按钮来删除某个字段(必须要选中欲删除的字段),也可用字段左边的双箭头标志按钮调整位置,字段先后顺序不影响使用。“仓库表”表所有字段输入结束后,如图7.3所示。 单击右侧的【确定】按钮,完成表的创建。此时,显示一个消息框,如图7.4所示。如果用户需要立即录入数据,则单击【是】来输入数据,否则单击【否】来关闭消息框。,13,14,2.使用“项目管理器”创建表 当用户拥有一个项目时,要想在项目中创建表,可使用“项目管理器”来完成对表的创建功能。具体的操作如下: 打开【项目管理器】,并选择【自由表】,并单击【新建】按钮,出现【新建表】对话框。 在【新建表】对话框中选择【新建表】按钮,出现【创建表】对话框,输入表名,并单击【保存】按钮。此时进入【表设计器】窗口。 在【表设计器】窗口,单击【字段】选项卡,然后在【字段名】标题下输入字段的名称,选其类型、宽度、小数位和索引。其方法同“表设计器”创建表。 单击【确定】按钮,此时便创建了一个自由表。 3.使用“create”命令创建表 create table ,15,7.2.2 打开与关闭表,在创建表之后,无论进行关于表的什么操作,都应该首先将表打开,在使用结束时,都应该将表关闭。 打开表 在visual foxpro 6.0中,选择菜单【文件】中【打开】命令,在对话框中,选择所需打开的表,并单击【确定】按钮,则打开该表。 另外,还可以使用use命令打开表。 格式: use sharedexclusive 关闭表 使用use命令关闭表。 格式: use,16,7.2.3 修改表结构,当发现创建的表中需要增加或删除字段,或某个字段的字段名、类型、长度需要调整时则应该修改表的结构。这里介绍两种方法:使用“表设计器”和使用命令。 1用“表设计器”修改 在【项目管理器】中选择需修改结构的表,如“仓库表”,并单击【修改】按钮。 在系统弹出的“表设计器”对话框中: 要修改的字段,只要将光标移至此字段上直接修改即可。 要插入一个字段,在【表设计器】中选择【插入】按钮,在产生的新字段上输入字段名,设定数据类型、字段宽度等,即加入了一个新字段。 要删除某字段,只要将光标移动到该字段,单击【删除】按钮即可。,17,2用命令修改 在【命令】窗口使用“modify structure”命令。 格式: modify structure 在用命令修改表结构时,若没有确定当前表,则应该使用use命令打开所需修改的表。 3显示表结构 显示表的结构可以使用【表设计器】,也可以使用命令方式。无论使用哪一种方式显示表结构,都需要先将表打开。使用“表设计器”显示表的结构前面已经介绍,使用命令方式显示表的结构的格式为: listdisplay structure,18,7.3 表的操作,对于一个表来说,它包含着两部分:表的结构和表的记录。在表的结构创建好之后,便可以对表中的记录进行相关的操作,例如数据的录入、浏览、删除、移动表中指针等操作。,19,7.3.1 数据的录入,在录入时,可以采用单条记录的录入和批量记录的录入。 1单条记录的录入 菜单方式 使用数据表的追加方式输入的步骤如下: 选择【文件】的【打开】菜单项,弹出【打开】对话框,选择一个表。 选择【显示】中的【浏览】菜单项,弹出【浏览】界面。 选择【显示】的【追加方式】菜单项,便可以添加记录,一条记录输入完成后,系统自动添加一条空记录,在此空记录上修改即可。 命令方式 用append命令添加记录。 格式:append blank ,20,2. 批量记录的录入 当录入的数据量较大时,经常会用到数据库的导入功能。 菜单方式 数据导入方法如下: 选择【文件】的【导入】菜单项,激活【导入】对话框表。 选择被导入文件的类型,通过【导入】对话框的“类型”一栏选定。【类型】下拉菜单给出了visual foxpro 6.0所支持的被导入文件的类型,必须选择其一。 在“来源于”一栏中给出被导入文件的路径和文件名。 选定导入目标文件。 单击【确定】按钮即可。,21, 命令方式 格式:append from / fields for 功能:从中读入符合 的记录,追加到当前表的末尾。 其中: 表示显示【打开】对话框,从中可以选择从那个表中读入记录。 fields 是指定表中的哪些字段被添加。for 表示将符合的每一条记录均被加入到当前表中。,22,7.3.2. 记录的定位,在打开一个表时,系统给该表隐含地建立一个记录指针,用来指定当前记录的位置。记录定位就是将记录指针移到指定的记录上,记录指针指向的记录称为当前记录。vfp提供了下列绝对定位和相对定位两类命令。 1.记录的绝对定位 格式:go / go to record /top/bottom 功能:将记录指针直接定位到指定的记录上。 参数描述: :指定一个物理记录号,记录指针移至该记录上。 top:将记录指针定位在表的第一个记录上。 bottom:将记录指针定位在表的最后一个记录上。,23,2.记录的相对定位 相对定位与当前记录有关,它是把记录指针从当前位置作相对移动。 格式:skip 功能:将记录指针向前或向后作相对若干条记录的移动。 参数描述: :指定记录指针作相对移动的记录数据。,24,7.3.3记录的显示,如果需要了解输入的数据,需要将输入的记录显示出来。 格式:list/display off fields for while to printer prompt / to file 功能:显示当前表中的全部或部分记录和数据。 list和display的区别: display每显示一屏记录时暂停一次,按任意键后继续显示剩余的记录,而list没有周期性暂停,连续向下显示,直到记录显示完毕为止。 若省略所有可选项,则display命令显示当前记录,即范围为next 1,而list命令显示全部记录,即范围为all。,25,7.3.4 记录的修改,当记录中的数据是空的或错误时,则需要对已存在的记录进行更新和修改。修改的方法有多种。 1.利用菜单来修改数据 打开需修改的表,选择【显示】菜单的【浏览】菜单项,此时便可以把修改数据了。 2.利用命令修改数据 格式:browse fields 功能:打开浏览窗口,显示当前或选定的记录。 格式:edit fields for while 功能:显示要编辑的字段,进行编辑修改。,26,3.批量修改数据 格式:replace additive , with additive for while 功能:,根据命令中指定的条件和范围,用表达式的值去更新指定字段的内容。批替换命令replace可对字段内容成批自动地进行修改(替换),而不必在编辑状态下逐条修改。,27,7.3.5记录的删除,1.利用菜单删除 利用菜单删除表中的记录,首先要打开要删除记录的数据表,选择【显示】菜单中的【浏览】菜单项,系统会弹出数据一览表,选定要删除的记录,选择菜单【表】中的【删除记录】菜单项,此时仅仅是在要删除的记录的左边用黑色做了删除标记,并未真正的删除,当选择了菜单【表】中的【彻底删除】菜单项时,才真正的删除。,28,2.利用命令删除 逻辑删除(为记录做上删除标记) 格式:delete for while 功能:对当前表文件中指定的记录做删除标记。 物理删除(清除带有删除标记的记录) 格式:pack dbf memo 功能:省略选择项,该命令将从当前表中删除所有带删除标记的记录。选择dbf,表示仅清除逻辑删除的记录而不压缩备注文件,选择memo表示仅压缩备注文件中无用的空间而不清除被逻辑删除的记录。不带任何选择项时,pack命令既清除逻辑删除的记录,又压缩备注文件。,29, 恢复带删除标记的记录 格式:recall for while 功能:恢复当前表中带删除标记的记录,即去掉删除标记“*”号。当省略所有的选项时,仅恢复当前记录。 清除所有记录 格式:zap 功能:从当前表中清除全部记录,仅保留表的结构。 zap命令与delete all 和pack两条命令执行的结果相同,区别在于zap执行的速度更快,当表中的记录很多时尤为明显。,30,7.3.6数据的查询,1.直接查询命令 直接查询也叫顺序查询,是按照记录的物理顺序逐个比较,逐个查询。包括locate命令和continue命令。 locate命令 格式:locate for while 功能:按顺序搜索表,从而找到满足指定逻辑表达式的第一个记录。 参数描述: :指定要定位的记录范围。只有在范围内的记录才被定位。locate命令的默认范围是all。 for :locate命令按顺序搜索当前表以找到满足逻辑表达式的第一个记录。若逻辑表达式是可优化的表达式,则rushmore优化由locate for 创建的查询。为了获得最佳执行效果,可在for子句中使用可优化的表达式。 while :指定一个条件,只要逻辑表达式计算值为真,就继续查找记录。,31,2.快速查找命令 用locate命令查询的优点是不论表中的记录是否有序都能进行查找,而其主要的缺点是查找速度慢。当表中的记录较多,并且要查询的记录又在表的底部时,问题尤为突出。为了解决这一问题,vfp提供了二条快速查询命令:find和seek。 find命令 格式:find / 功能:它在已经建立索引并且表文件和索引文件均已打开的表中查找索引关键值与指定的字符串或数值型常量相匹配的第一条记录。如果找到,则把记录指针指向该记录,并且将found()函数的值置为“真”;如果没有找到与其相符的记录,则将记录指针指向表的末尾,且将found()函数的值置为“假”,将eof()函数的值置为“真”。,32, seek命令 格式:seek order / tag of ascending/ descending 功能:在打开的索引文件中快速查找与相匹配的第1 条记录。,33,7.3.7记录的统计,在visual foxpro 6.0中,不但可以对表进行索引、查询、修改等操作进行管理,而且还可能对数据进行统计、汇总等操作。 1.统计命令:count命令 格式:count for while to 功能:统计当前表中指定范围内满足条件的记录个数,并存于中。 2.求和命令:sum命令 格式:sum for while to / to array 功能:对当前表中指定范围内满足条件的数值型字段或是由字段组成的数值型表达式累加求和,并把结果存放在对应的标识的变量中。,34,3.平均值命令:average命令 格式:average for while to | to array 功能:对当前表中指定范围内满足条件的记录的数值型字段求算术 平均值,并把结果存入中或存入指 定的数组中。,35,74 数据库创建与操作,利用多个表存储和显示一组相关的数据,就是在共享数据的前提下把多个表联系起来组成了一个数据库,可以利用各表的相互关系共享数据资源,方便数据的存放。 1.新建数据库 数据库可以直接建立,如果库中没有添加数据表,则这个库是个空库。建立数据库的常用方法有以下几种: 项目管理器中建立数据库 “新建”对话框建立数据库 用命令交互建立数据库 格式:create database 数据库名 其中参数 数据库名 给出了要建立的数据库名称;如果不指定数据库名称或使用问号都会弹出创建对话框请用户输入数据库名称。,36,2.打开数据库 当打开多个数据库时,系统最后打开一个被认为是当前数据库。而此后所作的创建或添加、修改等任何表或对象的操作,都是对当前数据库而言的。 用【项目管理器】打开数据库的步骤如下: 打开【项目管理器】,激活相应对话框。 单击【数据】选项卡,并选择【数据项】,展开该项目中各数据库。 选择欲设置为当前数据库的库名,并打开。 在命令窗口中输入打开数据库的命令。 格式:open database 数据库名 ,37,3.关闭数据库 当数据库使用完毕,用户应将其关闭,为其他用户腾出空间。 用【项目管理器】关闭数据库 在【项目管理器】中,选择要关闭的数据库(如果要所选择的数据库是打开的,则右侧会出现【关闭)对话框按钮。如果所选择的库未打开,则会出现【打开】按钮)。单击右侧的【关闭】按钮。 在命令窗口中输入关闭数据库的命令。 格式:close database,38,4.向数据库添加表 新的数据库建立后,就可以向库中新建或添加要使用的表。前面已经建立表,这里主要将这些建立的表添加到数据库中。 用【数据库设计器】,操作步骤如下: 打开【数据库】,进入【数据库设计器】。 在系统菜单中选择【数据库】中的【添加表】菜单项,系统给出选择数据表文件的对话框。 选择加入数据库的表文件,并单击【确定】按钮。若要加入多个表则只需要重复上述操作即可。 用命令添加表。 格式:add table 表名,39,5.从数据库中移去表 当某个数据表在数据库已不需要时,往往需要将其从数据库中移去。步骤如下: 打开【项目管理器】对话框,选择【数据】选项卡,选中要操作的数据库。 选择要移去的表,单击【移去】按钮。弹出【移去】对话框。 在【移去】对话框中如果单击【移去】按钮,则数据库仅从库中移去,即逻辑上的“移去”。该数据表文件仍在磁盘中。如果单击【删除】按钮,则该数据表不但从该库中移去,且从磁盘上进行了物理删除。 在命令窗口上输入打开“数据库”的命令。在用remove将数据库移走。 格式:remove table 表名,40,7.4.2 数据字典,1.标题 用来指定显示代表字段的标题。visual foxpro 6.0中的数据库表允许长字段名和长表名,最多可包含128个字符。在定义数据表的字段名称时,一般都比较简练,或使用字母、缩写等。 2.字段的注释 在定义数据库表的字段时,除了给字段设置标题外,还可以在“表设计器”中的“字段注释”文本框中给字段输入一些注释信息,来提醒自己或他人表中的字段所代表的意思。当在“项目管理器”中选择了这个字段时,会显示该字段的注释。,41,3.设置字段的默认值 用户在向表中输入记录时,往往会遇到这种情况:多条记录的某个字段值相同。为此,visual foxpro 6.0提供了字段默认值。用户可以将一些频繁出现的值设置为该字段的默认值,这样就避免了反复输入同一数据的麻烦,还可以提示输入格式,减少输入错误。 4.有效性规则 有效性规则是一个与字段或记录相关的逻辑表达式,当字段或记录输入完成后,计算这个表达式的值,如果表达式的值为真,则认为字段的输入可以通过有效性规则的验证,否则拒绝该值。有效性规则只在数据库表中存在,如果从数据库中移去一个表,则所有属于该表的字段级和记录级规则都会从数据库中删除。,42,5.输入掩码 指定字段输入值的格式。使用输入掩码可屏蔽非法输入,减少人为的数据输入错误,提高输入工作效率,保证输入的字段数据格式统一、有效。 x: 表示可输入任何字符。 9: 表示可输入数字和正负符号。 #: 表示可输入数字、空格和正负符号 $: 表示在固定位置上显示当前货币符号。 $:表示显示当前货币符号。 * :表示在值的左侧显示星号。 : 表示用点分隔符指定数值的小数点位置。 ,: 表示用逗号分割小数点左边的整数部分,一般用来分隔千分位。,43,6.设置触发器 触发器是在插入、修改或删除记录时触发执行的一个表达式或一个过程,在数据库表设计器的【表】选项卡的【触发器】区内设置。 插入触发器:指定向表中插入或追加记录时触发的一个规则。 更新触发器:指定更新表中记录时触发的一个规则。 删除触发器:指定从表中删除记录时触发的一个规则。 触发规则可以是一个表达式、一个过程或函数,当它们返回假(.f.)时,显示“触发器失败”信息,以阻止插入、更新或删除操作。,44,7.设置完整性规则 处理表中数据时,最大的问题就是失去一致性。为了确保相关表之间的数据一致性,即当对某表进行插入、更新、删除等操作时,要保证其关联表数据的一致性。例如,在“学生档案”数据库中,出现在“学生基本情况”表里的一名学生由于某种原因被退学,而相应的记录被删除。那么在“学生成绩”表中的相应的记录也应删除。否则,就会导致数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 60335-2-3:2022/AMD1:2025 EN-FR Amendment 1 - Household and similar electrical appliances - Safety - Part 2-3: Particular requirements for electric irons,ironing boards
- 【正版授权】 IEC TS 63346-2-3:2025 EN Low-voltage auxiliary power systems - Part 2-3: Design criteria - Low-voltage AC auxiliary power systems for substations
- GB 46521-2025烟花爆竹生产机械设备安全技术规范
- 水电定子线圈行业深度研究报告
- 活动量爪卡尺行业深度研究报告
- 2023年全球市场电机转子铁芯 GIR3480中文总体规模、主要生产商、主要地区、产品和应用细分研究报告
- 印刷跟行业深度研究报告
- 中国少量大麻素市场现状研究分析与发展前景预测报告
- 2025年年终总结会-干部述职评议表
- 无线负控终端机行业深度研究报告
- 2025年滁州海关招聘协管员10人备考考试题库附答案解析
- 华为ICT大赛中国区(实践赛)-基础软件赛道往年考试真题试题库(含答案解析)
- 直辖市城投集团固定资产管理制度
- 医疗机构消毒技术规范(2023年版)
- GH/T 1117-2015桂花茶
- 精品课程《人文地理学》完整版
- 公司废弃物清单
- 杂种优势利用课件
- 《幼儿园中班个别化学习活动中科学区域活动材料的投放与思考》讲座课件
- 旅游产业经济MA
- AI人工智能(PPT页)(共37张PPT)
评论
0/150
提交评论