
第07讲 数据库基本操作(二).ppt
35页《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》第七讲数据库表间关联及特殊操作9/17/20241《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.3 建立数据库表间关联9/17/20242《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》•表间关联表间关联: :不同工作区中打开的表的记录指针是独立移动的但在实际问题中常有这种情况:一项操作所涉及的内容被分别存储在两个或两个以上的表中,如果能按照记录号或表之间的共有字段建立起关联,使多个表的记录指针同步移动,就会简化指针分别定位的操作,提高数据处理效率建立关联命令提供的就是这个功能9/17/20243《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.3.1 一对一关系 建立两个表之间的“一对一”关系,首先要使两个表都具有相同属性的字段;然后定义父表中该字段为主索引或候选索引字段(其字段值是惟一的),子表中与其同名的字段为候选索引或主索引(其字段值是惟一的)由于两个表中的相同属性的字段值具有一对一的对应关系,因此两个表之间便可以建立“一对一”的关系 9/17/20244《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.3.1 一对一关系9/17/20245《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.3.2 一对多关系 建立两个表之间的“一对多”关系,首先要使两个表都具有相同属性的字段;然后定义父表中该字段为主索引或候选索引字段(字段值是惟一的),子表中与其同名的字段定义为普通索引字段或惟一索引字段(其字段值是重复的)。
由于两个表中的相同属性的字段值具有一对多的对应关系,因此两个表之间便可以建立“一对多”的关系 9/17/20246《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.3.2 一对多关系9/17/20247《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.3.3 多对一关系 建立两个表之间的“多对一”关系,首先要使两个表都具有相同属性的字段;然后定义父表中该字段为普通索引字段或惟一索引字段(其字段值是重复的),子表中与其同名的字段定义为主索引或候选索引字段(字段值是惟一的)由于两个表中的相同属性的字段值具有多对一的对应关系,因此两个表之间便可以建立“多对一”的关系9/17/20248《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.3.3 多对一关系9/17/20249《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》• •1.1.建立关联建立关联: :格式:set relation to 表达式 into 工作区|表别名 [additive]说明:(1).表达式一般为两个表的共有字段2).在两个表中分别以该共有字段建立索引。
3).建立关联时,需打开表和相关的索引文件(4).选择[additive]将不解除先前建立的关联,否则将解除此前建立的关联2.2.取消关联取消关联:set relation to3. 3. 例例:“ :“职工档案职工档案” ”和和“ “工资情况工资情况” ”二表联动在命令窗口分别输入并执行二表联动在命令窗口分别输入并执行以下命令以下命令: :set defa to d:\2007vfp&&设置默认目录OPEN DATABASE \物业费管理 EXCLUSIVE&&打开ry数据库use 业主 in 0&&在当前尚未使用的编号最小的工作区中打开表index on 房号 tag fh1&&以编号字段为关键字建立索引标识为fh1的复合索引 set order to tag fh1 &&指定fh1为表的控制索引文件或标志sele 0 &&选择当前尚未使用的编号最小的工作区 use 房屋 index on 房号 tag fh2set order to tag fh2select 业主 set relation to 房号 into 房屋brow fields 业主.房号,业主.姓名,房屋.入住时间close database &&关闭数据库,其中的表随之关闭9/17/202410《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.4 数据库表的特殊操作p9/17/202411《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》9/17/202412《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》9/17/202413《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》9/17/202414《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》属性类别属性名称作用字段属性字段显示属性格式确定字段内容在被显示时的样式确定字段内容在被显示时的样式输入掩码指定字段中输入数据的格式(即所输入的任何内容指定字段中输入数据的格式(即所输入的任何内容均显示成此符号)均显示成此符号)标题在浏览表时用此名称代替意义不够直观的字段名在浏览表时用此名称代替意义不够直观的字段名字段验证规则规则使所输数据符合设定的条件使所输数据符合设定的条件信息当所输数据违反规则时,系统提示错在哪里当所输数据违反规则时,系统提示错在哪里默认值减少输入重复性数据时的工作量减少输入重复性数据时的工作量字段注释 使字段具有更好的可读性使字段具有更好的可读性表属性长表名 与表文件名不同,设置了长表名可以一目了然与表文件名不同,设置了长表名可以一目了然记录验证规则规则使所输记录符合设定的条件使所输记录符合设定的条件 信息当所输记录违反规则时,系统提示错在哪里当所输记录违反规则时,系统提示错在哪里触发器插入触发器当所插记录符合此规则时,才可以插入到表中当所插记录符合此规则时,才可以插入到表中更新触发器当修改后的记录符合此规则时,才可以进行修改当修改后的记录符合此规则时,才可以进行修改删除触发器当待删记录符合此规则时,才可以被删除掉当待删记录符合此规则时,才可以被删除掉表注释 使表具有更好的可读性使表具有更好的可读性数据库表的高级属性数据库表的高级属性9/17/202415《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》字段级规则:•一种与字段相关的有效性规则,在插入或修改字段值时被激活,多用于数据输入正确性的检验。
9/17/202416《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》为字段设置验证规则的方法为字段设置验证规则的方法1. 在表设计器中选定要建立规则的字段名2.在“规则”方框旁边选择“…”按钮3.在表达式生成器中设置有效性表达式,并选择“确定”4.在“信息”框中,键入用引号括起的错误信息5. 在“默认值”框中,键入合理的初值6.注意不同类型数据的表示方法选择“确定” 9/17/202417《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》记录级规则:•一种与记录相关的有效性规则,当插入或修改记录时激活,常用来检验数据输入和正确性记录被删除时不使用有效性规则记录级规则在字段级规则之后和触发器之前激活,在缓冲更新时工作 9/17/202418《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》触发器:•在一个插入、更新或删除操作之后运行的记录级事件代码不同的事件可以对应不同的动作它们常用于交叉表的完整性 9/17/202419《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》 为了在浏览表中数据时能更清晰、为了在浏览表中数据时能更清晰、方便,可以自定义字段标题。
方便,可以自定义字段标题 如果用户不设置字段标题,则该表如果用户不设置字段标题,则该表的标题显示的是字段名的标题显示的是字段名 5.4.1 设置字段显示标题9/17/202420《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.4.1 设置字段显示标题9/17/202421《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.4.2 设置字段注释信息 为了提高数据表的使用效率及其共享为了提高数据表的使用效率及其共享性,可以在建立数据表结构时,对字段加性,可以在建立数据表结构时,对字段加以注释,提醒、注明相关信息这样能够以注释,提醒、注明相关信息这样能够清楚地掌握字段的属性、意义及特殊用途清楚地掌握字段的属性、意义及特殊用途等,便于设计或其他用户使用等,便于设计或其他用户使用 9/17/202422《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.4.2 设置字段注释信息9/17/202423《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.4.3 设置字段默认值 为了提高表中数据输入的速度和为了提高表中数据输入的速度和准确性,可以在向表输入数据前定义准确性,可以在向表输入数据前定义某一字段数据的默认值。
某一字段数据的默认值 9/17/202424《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.4.3 设置字段默认值9/17/202425《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.4.4 设置字段有效规则 为了提高表中数据输入的速度和准确性,除了定义字段的默认值外,还可以定义字段的有效规则 9/17/202426《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.4.4 设置字段有效规则9/17/202427《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.4.5 设置表注释信息 当一个表有了注释信息,在“项目管理器”中若选中该表,项目管理器的底部将显示表注释文本 9/17/202428《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.4.5 设置表注释信息9/17/202429《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.4.6 设置表触发器 若想对数据维护的合法性进行控制,就要通过数据库级的记录触发器控制触发器是在某些事件发生时触发一个表达式或一个过程,以此来控制记录的插入、删除和更新操作。
9/17/202430《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.4.6 设置表触发器9/17/202431《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.4.6 设置表触发器打开数据库打开表数据库修改表设计器删除触发器浏览器9/17/202432《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.4.7 设置参照完整性 在数据库中的表建立关联关系后,可以设置管理关联记录的规则这些规则可以控制相关表中记录的插入、删除或修改 9/17/202433《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》5.4.7 设置参照完整性9/17/202434《《《《VFPVFP程序设计程序设计程序设计程序设计》》》》作业3 :P119三、1,2实验四 数据库和数据表的操作 本讲到此结束,感谢各位光临!9/17/202435。
