VisualFoxPro第3章数据库与表的创建及使用课件.ppt
《VisualFoxPro第3章数据库与表的创建及使用课件.ppt》由会员分享,可在线阅读,更多相关《VisualFoxPro第3章数据库与表的创建及使用课件.ppt(89页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、l数据库概述l数据库的创建和使用l表的创建和使用l永久性关系与参照完整性第3章 数据库与表的创建及使用3.1 数据库概述3.1.1 数据库的设计过程第第1步:步:确定建立数据库的目的,这有助于确定需要确定建立数据库的目的,这有助于确定需要VFP保存哪些信息;保存哪些信息;第第2步:步:确定需要的表;确定需要的表;在明确了建立数据库的目的之后,就可以着手把信息分成独立的主题,例在明确了建立数据库的目的之后,就可以着手把信息分成独立的主题,例如如“Student”(学生情况)或(学生情况)或“Grade”(学生成绩)等。每个主题都可以是(学生成绩)等。每个主题都可以是数据库中的一个表。数据库中的一
2、个表。第第3步:步:确定所需字段;确定所需字段;确定在每个表中保存哪些信息。在表中,每类信息称为一个字段,浏览表确定在每个表中保存哪些信息。在表中,每类信息称为一个字段,浏览表时在表中显示为一列。例如,在时在表中显示为一列。例如,在Student表中,可以有这样的字段:表中,可以有这样的字段:“学号学号”、“姓名姓名”、“性别性别”等。等。第第4步:步:确定关系;确定关系;分析每个表,确定一个表中的数据和其它表中的数据有何关系。必要时,分析每个表,确定一个表中的数据和其它表中的数据有何关系。必要时,可以在表中加入字段或创建一个新表来明确关系。可以在表中加入字段或创建一个新表来明确关系。第第5步
3、:步:设计求精。对设计进一步分析,查找其中的错误。创建表时,在设计求精。对设计进一步分析,查找其中的错误。创建表时,在表中加入几个示例记录,看能否从表中得到所想要的结果。表中加入几个示例记录,看能否从表中得到所想要的结果。1.分析数据需求l首先列出需数据库回答的问题清单。如:本学期每个人每首先列出需数据库回答的问题清单。如:本学期每个人每门课的期末考试成绩是多少?有哪些人的哪些课程不及格门课的期末考试成绩是多少?有哪些人的哪些课程不及格?哪些学生的学业成绩达到了获奖学金的标准?哪些学生?哪些学生的学业成绩达到了获奖学金的标准?哪些学生在考试中哪门课程舞弊了?等等。在考试中哪门课程舞弊了?等等。
4、l其次收集所有的表单和报表。这些表单和报表包含了应该其次收集所有的表单和报表。这些表单和报表包含了应该由数据库提供的各种信息。如期末考试成绩需要录入哪些由数据库提供的各种信息。如期末考试成绩需要录入哪些信息等。信息等。l最后,期末考试成绩册如何打印等等。最后,期末考试成绩册如何打印等等。2.确定需要的表确定数据库表是数据库设计过程中技巧性最强的一步。确定数据库表是数据库设计过程中技巧性最强的一步。应注意以下几个方面的问题:应注意以下几个方面的问题:一个表只保存一个主题的内容;一个表只保存一个主题的内容;同一信息只保存一次,这将减少出错的可能性;同一信息只保存一次,这将减少出错的可能性;防止删除
5、有用信息。防止删除有用信息。以建立以建立Gxglxt数据库中的表为例:数据库中的表为例:在学习成绩表中,每位学生所学的课程不属于一位学生,因而需要有一在学习成绩表中,每位学生所学的课程不属于一位学生,因而需要有一个学习课程表。同样,一个班级不只一名学生,要有一个班级主题的表个学习课程表。同样,一个班级不只一名学生,要有一个班级主题的表等。等。Student表和表和Grade表都与学生有关,但关于学生个人情况的信息保存在表都与学生有关,但关于学生个人情况的信息保存在Student表中,表中,Grade表中只保存与成绩有关的信息。表中只保存与成绩有关的信息。当一个班的学生毕业后,可能要删除这个班级
6、,但不能删除这个专业,当一个班的学生毕业后,可能要删除这个班级,但不能删除这个专业,最好的方法是建立一个最好的方法是建立一个“专业(专业(Specialty)”表。表。3.确定表的字段确定表字段的几点技巧:确定表字段的几点技巧:每个字段直接和表的主题相关每个字段直接和表的主题相关;不要包含可推导得到或通过计算可以得到的字段不要包含可推导得到或通过计算可以得到的字段;收集所需的全部信息收集所需的全部信息;以最小的逻辑单位存储信息。以最小的逻辑单位存储信息。使用主关键字段使用主关键字段 VFP不允许在主关键字中有重复值或不允许在主关键字中有重复值或null值。因此,不能选择包含有值。因此,不能选择
7、包含有这类值的字段作为主关键字。这类值的字段作为主关键字。因为要用主关键字的值来查找记录,所以它不能太长,以方便记忆因为要用主关键字的值来查找记录,所以它不能太长,以方便记忆和键入。主关键字可由一定长度的字母和数字组成,或是某一范围内和键入。主关键字可由一定长度的字母和数字组成,或是某一范围内的值。的值。主关键字的长度直接影响数据库的操作速度,因此,在创建主关键主关键字的长度直接影响数据库的操作速度,因此,在创建主关键字时,该字段值最好使用能满足存储要求的最小长度。字时,该字段值最好使用能满足存储要求的最小长度。4.确定表之间的关系 表之间有三种关系:即表之间有三种关系:即一对一关系、一对多关
8、系和多对多关系一对一关系、一对多关系和多对多关系 在一对一关系在一对一关系 在实际应用中不常见,因为两个表之间如果是在实际应用中不常见,因为两个表之间如果是“一对一一对一”关系,则通常可以将他们合并成一个表。关系,则通常可以将他们合并成一个表。在一对多关系中要建立这样的关系,就要把关系中在一对多关系中要建立这样的关系,就要把关系中“一方一方”的主关键字的主关键字字段添加到字段添加到“多方多方”的表中。在关系中,的表中。在关系中,“一方一方”用主关键字或候选索引用主关键字或候选索引关键字,而关键字,而“多方多方”使用普通索引关键字。使用普通索引关键字。在多对多关系中向在多对多关系中向VFP正确指
9、定关系之前,需要改变数据库的设计,正确指定关系之前,需要改变数据库的设计,即创建第三个表,把多对多关系分解为二个一对多关系。这第三个表即创建第三个表,把多对多关系分解为二个一对多关系。这第三个表称作称作“纽带表纽带表”,纽带表可能只包含这两个表的主关键字,也可能包含,纽带表可能只包含这两个表的主关键字,也可能包含其它信息。其它信息。5.设计的优化对所设计的表分析,查找是否存在如下问题:对所设计的表分析,查找是否存在如下问题:表中是否带有大量的并不属于这个主题的字段?表中是否带有大量的并不属于这个主题的字段?表中是否有些字段由于对很多记录不适用而始终保持空白?表中是否有些字段由于对很多记录不适用
10、而始终保持空白?是否有大量的表包含了同样的字段?是否有大量的表包含了同样的字段?是否遗忘了字段?是否有需要的信息没包括进去?如果有,是否遗忘了字段?是否有需要的信息没包括进去?如果有,它们是否属于已创建的表?如果不包含在已创建的表中,那就它们是否属于已创建的表?如果不包含在已创建的表中,那就需要另外创建一个表。需要另外创建一个表。是否为每个表选择了合适的主关键字?在使用这个主关键字是否为每个表选择了合适的主关键字?在使用这个主关键字查找具体记录时,它是否很容易记忆和键入?查找具体记录时,它是否很容易记忆和键入?是否有字段很多、记录却很少的表,而且许多记录中的字段是否有字段很多、记录却很少的表,
11、而且许多记录中的字段值为空?值为空?查找到存在的问题后,就要修改表的结构,以改进设计方案。查找到存在的问题后,就要修改表的结构,以改进设计方案。3.1.2 数据库的组成 从项目管理器窗口中可以看出从项目管理器窗口中可以看出VFPVFP数据库包含数据库包含5 5个项个项目:表、本地视图、连接和存储过程。目:表、本地视图、连接和存储过程。1.表(Table)表式存放数据的容器,而数据库又是表的容器,表式存放数据的容器,而数据库又是表的容器,VFPVFP中表可以分为:中表可以分为:数据库表数据库表和和自由表。自由表。表与数据库之间的相关性是通过表文件和库文件表与数据库之间的相关性是通过表文件和库文件
12、之间的双向链表实现的。之间的双向链表实现的。数据库文件数据库文件前链前链前链前链后链表文件后链表文件后链表文件后链表文件2.视图 所谓所谓视图视图是由一个或多个表组合成的一个是由一个或多个表组合成的一个“虚表虚表”,VFPVFP中的视图分为中的视图分为本地视图本地视图和和远程视图远程视图。特点:特点:(1 1)使用查询语句从一个或多个表中获得数据,与查询相似)使用查询语句从一个或多个表中获得数据,与查询相似(2 2)虽然是虚表,但可以对其内容进行更行。)虽然是虚表,但可以对其内容进行更行。l连接 连接是保存在数据库中的一个定义,指定了数据源连接是保存在数据库中的一个定义,指定了数据源的名称,用
13、于连接远程数据库,来创建远程视图。的名称,用于连接远程数据库,来创建远程视图。l存储过程 存储过程是在数据库数据上执行特定操作并存储在存储过程是在数据库数据上执行特定操作并存储在数据库文件中的程序代码,并在打开数据库时加载数据库文件中的程序代码,并在打开数据库时加载到内存中。到内存中。3.1.3 数据字典 数据字典是指存储在数据库中用于描述所管理的表和对象数据字典是指存储在数据库中用于描述所管理的表和对象的数据,即描述数据的数据,称之为的数据,即描述数据的数据,称之为“元数据元数据”。VFP中,每一个数据库都带有一个数据字典,其数据存放中,每一个数据库都带有一个数据字典,其数据存放在数据库文件
14、中,可用于创建和制定以下内容:在数据库文件中,可用于创建和制定以下内容:(1)表中的字段的标题、注释、默认值、输入掩码和显示格)表中的字段的标题、注释、默认值、输入掩码和显示格式等。式等。(2)表的索引关键字)表的索引关键字 (3)长表名和表注释)长表名和表注释 (4)字段级和记录级有效性规则)字段级和记录级有效性规则 (5)存储过程)存储过程 (6)插入、更新和删除事件的触发器)插入、更新和删除事件的触发器3.2 数据库的创建、打开和使用3.2.1 数据库的创建 VFP VFP中为数据库设计提供了两个工具:中为数据库设计提供了两个工具:数据库向导数据库向导和和数据库设计数据库设计器器。1.1
15、.界面操作创建数据库界面操作创建数据库文件新建2.命令方式创建数据库 格式:格式:CREATE DATABASE CREATE DATABASE|?|?功能:创建由数据库名指定的数据库,若选?或不功能:创建由数据库名指定的数据库,若选?或不带任何参数,执行此命令时打开创建对话框,然后带任何参数,执行此命令时打开创建对话框,然后输入数据库名输入数据库名 VFP VFP中每创建一个新的数据库都将在磁盘上保存中每创建一个新的数据库都将在磁盘上保存三个文件:数据库文件三个文件:数据库文件(.DBC)(.DBC)、关联的数据库备注、关联的数据库备注文件文件(.DCT)(.DCT)和数据库索引文件和数据库
16、索引文件(.DCX)(.DCX)。3.2.2 数据的打开和关闭(1)用界面打开数据库(2)用命令打开数据库格式:OPEN DATABASE|?EXCLUSIVE|SHAREDNOUPDATEVALIDATE功能:打开由数据库名指定的数据库说明:说明:1 1)EXCLUSIVEEXCLUSIVE以独占方式打开数据库,所谓独占方式以独占方式打开数据库,所谓独占方式是指在同一时刻不允许其他用户使用数据库是指在同一时刻不允许其他用户使用数据库2 2)SHAREDSHARED以共享方式打开数据库,所谓共享方式是以共享方式打开数据库,所谓共享方式是指在同一时刻允许其他用户使用数据库指在同一时刻允许其他用户
17、使用数据库3 3)NOUPDATENOUPDATE以只读方式打开数据库。选此子句不能以只读方式打开数据库。选此子句不能对数据库作任何修改,但不影响对表的存取,若让对数据库作任何修改,但不影响对表的存取,若让数据库表也为只读,在用数据库表也为只读,在用USEUSE打开表时加打开表时加NOUPDATENOUPDATE参数参数4 4)VALIDATEVALIDATE是检验数据库中的引用对象是否有效,是检验数据库中的引用对象是否有效,如检查数据库表和索引是否可用,被引用的字段和如检查数据库表和索引是否可用,被引用的字段和索引表是否存在表和索引中索引表是否存在表和索引中 可以同时打开多个数据库,但只有一
18、个是当前数据库,默认为最后一个打开的数据库,可以使用命令:set database to 来制定当前数据库3.关闭数据库格式:CLOSE DATABASE ALL功能:关闭当前数据库,及所有表。若选ALL子句,关闭所有打开的数据库和表关闭指定的数据库 set database to jxsj close database4.删除数据库格式:DELETE DATABASE|?DELETE TABLES RECYCLE功能:删除由数据库名指定的数据库,从磁盘上删除数据库,要求数据库必须是关闭状态说明:1)选DELETE TABLES子句是在删除数据库同时也从磁盘上将数据库表删除2)选RECYCLE
19、子句是将删除的数据库与表放入回收站中3.3 表的创建与使用3.3.1 表结构概述 在在VFPVFP中,建立表的步骤是中,建立表的步骤是:(1):(1)先设计表的结构,先设计表的结构,保存。保存。(2)(2)再向表中添加数据再向表中添加数据 表结构:表的字段、数据类型、宽度表结构:表的字段、数据类型、宽度(最大字节数最大字节数)等。等。空值:用来指示记录中的一个字段空值:用来指示记录中的一个字段”有或没有有或没有”的的数据标识。数据标识。3.3.2 利用表设计器创建表 VFP VFP中创建表后,系统以扩展名中创建表后,系统以扩展名.DBF.DBF保存表文件。保存表文件。如果表中有备注型字段或通用
20、型字段,则自动产生如果表中有备注型字段或通用型字段,则自动产生一个与表同名但扩展名为一个与表同名但扩展名为.FPT.FPT的备注文件。的备注文件。1.1.利用表设计器创建表结构利用表设计器创建表结构 第一步第一步 创建一个项目创建一个项目 第二步第二步 在项目管理器中创建的自由表在项目管理器中创建的自由表 第三步第三步 为表中添加记录为表中添加记录 2.2.创建数据库表及修改表的结构创建数据库表及修改表的结构3.3.3 字段属性与表属性1.字段的扩展属性 数据库表的每个字段除具有字段名、类型、宽度数据库表的每个字段除具有字段名、类型、宽度等基本属性外,还可以设置标题、注释、格式、等基本属性外,
21、还可以设置标题、注释、格式、输入掩码、默认值等扩展属性。输入掩码、默认值等扩展属性。(1)字段的标题和注释字段的标题和注释 注意:注意:标题只是一些界面中代表字段的标签,在标题只是一些界面中代表字段的标签,在引用字段时引用字段时 必须使用段名,如给必须使用段名,如给xm字段,添加字段,添加标题标题”姓名姓名”,select*from xs where 姓名姓名=张三张三&错的错的 select*from xs where xm=张三张三&正确正确(2)字段的显示属性 字段的显示属性用来指定输入和显示字段时的格式,字段的显示属性用来指定输入和显示字段时的格式,包括包括格式格式和和输入掩码输入掩码
22、。字段的格式字段的格式:用于指定字段显示时的格式,包括:用于指定字段显示时的格式,包括浏览窗口、表单或报表中显示时的大小写和样式。浏览窗口、表单或报表中显示时的大小写和样式。输入掩码输入掩码:用于指定字段中输入数据的格式。:用于指定字段中输入数据的格式。(3)(3)默认值默认值 向表中添加新纪录时,为字段所指定的最初的值称向表中添加新纪录时,为字段所指定的最初的值称为该字段的默认值。为该字段的默认值。如给如给xsxs表中的表中的xbxb字段设置默认值为字段设置默认值为”男男”。(4)字段的有效性规则和有效性信息 字段的有效性规则:字段的有效性规则:用来控制输入到字段中的数据用来控制输入到字段中
23、的数据的取值范围。的取值范围。有效性信息:有效性信息:用于指定在不满足规则要求时所显示用于指定在不满足规则要求时所显示的消息框中的说明信息。的消息框中的说明信息。例如,设置学生表中成绩字段为例如,设置学生表中成绩字段为0100之间,使用逻之间,使用逻辑表达式辑表达式”cj=0.and.Cj“打开”l在数据库工作期窗口中单击“打开”l在项目管理器窗口中选择需要打开的表,然后单击“修改”或“浏览”(2)使用命令打开表在命令窗口中,可以使用USE命令打开一个表。该命令的基本语法格式:USE TableName IN nWorkArea|cTableAlias1 AGAIN ALIAS cTableA
24、lias2 NOUPDATEIN:指定在哪个工作区中打开,缺省在当前工作区中打开AGAIN:用于说明表再次被打开ALIAS:子句用于定义表的别名NOUPADTE:指定表打开后不允许修改结构和数据。例如:USE xs&在当前工作区中打开xs表,别名为xs USE js ALIAS jiaoshi IN 4 USE cj IN 0 NOUPDATE USE xs AGAIN IN 5 USE xs AGAIN IN 15注意:如果以个表同时在多个工作区中开开并且均未指定别名,则在第一次打开的工作区中,别名与表名相同,其他工作区中用AJ以及W11W32747。4.表的关闭如果在以个工作区中已经打开了
25、一个表,则在该工作区中打开另一个表,先前的表自动关闭。(1)通过界面操作:在数据工作期中(2)使用命令 USE IN nWorkArea|cTableAlias 关闭所有打开的表 CLOSE TABLE ALL5.表的独占与共享 在默认状态下,表是以独占方式打开的,可以使用set exclusive 命令来设置:set exclusive off&设置“共享”为默认打开方式 set exclusive on&设置“独占”为默认打开方式 或者在打开表的时候设置 USE xs SHARED USE js EXCLUSE 3.3.5 记录的处理1.记录的输入表记录的输入可以在创建完表结构后进行。(1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualFoxPro 数据库 创建 使用 课件
限制150内