《(精品)沈阳农业大学vf课件第三章.ppt》由会员分享,可在线阅读,更多相关《(精品)沈阳农业大学vf课件第三章.ppt(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第三章第三章VFP数据库及其操作数据库及其操作第章第章 VFP数据库及其操作数据库及其操作 3.1 项目目管理器的基本操作管理器的基本操作 3.2 创建数据建数据表表 3.3 数据表数据表的基本操作与维护的基本操作与维护 3.4 数据表数据表排序与索引排序与索引 3.5 创建数据库创建数据库 3.6 建立建立数据数据字典字典 3.7 多数据表操作多数据表操作Go Go Go Go Go Go Go Visual FoxPro 6.0数据库与程序设计 项目是文件、数据、文档和项目是文件、数据、文档和VFP对象的集合,它包对象的集合,它包含了一个应用系统开发过程中使用的各种数据库、表、含了一个应用
2、系统开发过程中使用的各种数据库、表、查询、表单、报表、应用程序及其他文件。查询、表单、报表、应用程序及其他文件。扩展名:扩展名:pjx 用户在开发一个应用系统时,通常是先从创建项目用户在开发一个应用系统时,通常是先从创建项目开始的。开始的。1.建立项目文件建立项目文件 菜单方式菜单方式:文件文件/新建新建 命令方式命令方式:create project2.打开项目文件打开项目文件 菜单方式菜单方式:文件文件/打开打开 命令方式:命令方式:modify project3.13.1项目管理器的基本操作项目管理器的基本操作项目管理器的基本操作项目管理器的基本操作 数据库表数据库表表表 自由表自由表3
3、.23.2创建数据表创建数据表创建数据表创建数据表 一个数据表由一个数据表由数据表名数据表名、数据表的结构数据表的结构、数据数据表的记录表的记录三要素构成。三要素构成。学生成绩表学生成绩表创建表方法:创建表方法:菜单方式:文件菜单方式:文件/新建新建 命令方式:命令方式:create 表名表名3.2.1 定义表结构定义表结构 定义表中的字段个数、字段名、字段类型、字定义表中的字段个数、字段名、字段类型、字段宽度等。段宽度等。学生信息学生信息表结构表结构 3.2.2 输入记录输入记录 (1)建立结构后,选择)建立结构后,选择“是是”可进入数据输入窗可进入数据输入窗口。口。(2)表处于打开状态下:
4、)表处于打开状态下:显示显示/浏览浏览 或显示或显示/编辑编辑 显示显示/追加方式追加方式 (3)表末打开情况:)表末打开情况:先打开表先打开表 再使用(再使用(2)中方法。)中方法。常见错误常见错误1.表结构还没设计完呢,误关窗口,如何继续?表结构还没设计完呢,误关窗口,如何继续?显示显示/表设计器表设计器2.不小心关闭了输入数据窗口,想继续输入数据怎办不小心关闭了输入数据窗口,想继续输入数据怎办?显示显示/浏览,显示浏览,显示/追加方式继续输入数据追加方式继续输入数据3.在输入数据时,发现表结构有错,怎么办?在输入数据时,发现表结构有错,怎么办?关闭输入数据窗口,显示关闭输入数据窗口,显示
5、/表设计器,修改表结构并表设计器,修改表结构并保存,显示保存,显示/浏览,显示浏览,显示/追加方式继续输入数据。追加方式继续输入数据。4.如何改变表结构顺序?如何改变表结构顺序?按住左边的小方块,拖动鼠标。按住左边的小方块,拖动鼠标。5.如何输入备注内容如何输入备注内容/通用字段内容?通用字段内容?双击双击memo/gen 3.33.3数据表数据表数据表数据表的基本的基本的基本的基本操作与操作与操作与操作与维护维护维护维护3.3.1 数据表的打开与浏览数据表的打开与浏览 3.3.2 记录的定位记录的定位 3.3.3 修改表结构修改表结构 3.3.4 添加记录添加记录 3.3.5 修改记录修改记
6、录 3.3.6 删除记录删除记录 3.3.8 数据表的复制数据表的复制 3.3.7 表与数组之间的数据交换表与数组之间的数据交换 3.3.1 数据表的打开与浏览数据表的打开与浏览1.1.打开数据表文件打开数据表文件打开数据表文件打开数据表文件菜单方式菜单方式菜单方式菜单方式:文件文件文件文件打开打开打开打开命令方式命令方式命令方式命令方式:USE USE 表文件名表文件名表文件名表文件名例例例例:打开学生打开学生打开学生打开学生.dbf.dbf。2.2.浏览与显示表结构浏览与显示表结构浏览与显示表结构浏览与显示表结构菜单方式菜单方式菜单方式菜单方式:显示显示显示显示表设计器表设计器表设计器表设
7、计器命令方式命令方式命令方式命令方式:list/display structure:list/display structure例例例例:浏览与显示学生浏览与显示学生浏览与显示学生浏览与显示学生.dbf.dbf表结构。表结构。表结构。表结构。注意:总计比字段之和多注意:总计比字段之和多注意:总计比字段之和多注意:总计比字段之和多1 1。是用来存放删除标记的。是用来存放删除标记的。是用来存放删除标记的。是用来存放删除标记的。例例例例:筛选出学生表中男筛选出学生表中男筛选出学生表中男筛选出学生表中男生记录。生记录。生记录。生记录。3.3.浏览与显示表记录浏览与显示表记录浏览与显示表记录浏览与显示表
8、记录(1)(1)菜单方式菜单方式菜单方式菜单方式:显示显示显示显示浏览或编辑浏览或编辑浏览或编辑浏览或编辑(2)(2)命令方式命令方式命令方式命令方式:browse:browse例例例例:浏览与显示学生浏览与显示学生浏览与显示学生浏览与显示学生.dbf.dbf表记录。表记录。表记录。表记录。(3)(3)在浏览窗口中有选择地浏览数据:筛选记录、在浏览窗口中有选择地浏览数据:筛选记录、在浏览窗口中有选择地浏览数据:筛选记录、在浏览窗口中有选择地浏览数据:筛选记录、选择字段。选择字段。选择字段。选择字段。菜单方式筛选记录菜单方式筛选记录菜单方式筛选记录菜单方式筛选记录:表表表表属性属性属性属性 课堂
9、练习:课堂练习:课堂练习:课堂练习:筛选出筛选出DJKS表中考场为表中考场为401的男生记录。的男生记录。思考:如何取消筛选?思考:如何取消筛选?思考:如何取消筛选?思考:如何取消筛选?方法:表方法:表属性属性命令方式筛选记录命令方式筛选记录命令方式筛选记录命令方式筛选记录:set filter to :set filter to 条件条件条件条件例例例例:筛选出学生表中男生记录。筛选出学生表中男生记录。筛选出学生表中男生记录。筛选出学生表中男生记录。Set filter to Set filter to 性别性别性别性别=“男男男男”注意注意注意注意:set filter to :set f
10、ilter to 为取消筛选。为取消筛选。为取消筛选。为取消筛选。菜单方式选择字段菜单方式选择字段菜单方式选择字段菜单方式选择字段:表表表表属性属性属性属性 例:查看学生表中学号、姓名和系别三个字段。例:查看学生表中学号、姓名和系别三个字段。例:查看学生表中学号、姓名和系别三个字段。例:查看学生表中学号、姓名和系别三个字段。命令方式选择字段命令方式选择字段命令方式选择字段命令方式选择字段:set fields to :set fields to 字段列表字段列表字段列表字段列表例:查看学生表中学号、姓名和系别三个字段。例:查看学生表中学号、姓名和系别三个字段。例:查看学生表中学号、姓名和系别三
11、个字段。例:查看学生表中学号、姓名和系别三个字段。Set fields to Set fields to 学号学号学号学号,姓名,系别姓名,系别姓名,系别姓名,系别注意:取消字段的选择:注意:取消字段的选择:注意:取消字段的选择:注意:取消字段的选择:Set fields to all Set fields to all 3.3.2 记录的定位记录的定位Go Go SkipSkipLocate for Locate for 条件条件条件条件3.3.3 修改表结构修改表结构菜单方式菜单方式菜单方式菜单方式:显示显示显示显示表设计器表设计器表设计器表设计器命令方式命令方式命令方式命令方式:modi
12、fy structure:modify structure修改已有的字段修改已有的字段修改已有的字段修改已有的字段增加字段增加字段增加字段增加字段删除字段删除字段删除字段删除字段改变字段顺序改变字段顺序改变字段顺序改变字段顺序3.3.4 添加记录添加记录1.1.在浏览窗口中追加记录在浏览窗口中追加记录在浏览窗口中追加记录在浏览窗口中追加记录菜单方式菜单方式菜单方式菜单方式:显示显示显示显示追加方式追加方式追加方式追加方式命令方式命令方式命令方式命令方式:append blank:append blank2.2.插入记录插入记录插入记录插入记录命令方式:命令方式:命令方式:命令方式:insert
13、 before blankinsert before blank3.3.从其他文件中追加记录从其他文件中追加记录从其他文件中追加记录从其他文件中追加记录菜单方式:表菜单方式:表菜单方式:表菜单方式:表追加记录追加记录追加记录追加记录命令方式命令方式命令方式命令方式:append from:append from 表名表名表名表名 fields fields 字段名字段名字段名字段名 for for 条件条件条件条件3.3.5 修改记录修改记录方法:显示方法:显示方法:显示方法:显示/浏览浏览浏览浏览 或或或或brow brow 或或或或 edit edit*批量修改记录批量修改记录批量修改记录
14、批量修改记录菜单方式菜单方式菜单方式菜单方式:表表表表替换字段替换字段替换字段替换字段例:将例:将例:将例:将djksdjks表中考场表中考场表中考场表中考场401401改为改为改为改为509509。命令方式命令方式命令方式命令方式:replrepl 字段字段字段字段 with with 表达式表达式表达式表达式 for for 条件条件条件条件例:将例:将例:将例:将djksdjks表中考场表中考场表中考场表中考场401401改为改为改为改为509509。ReplRepl 考场考场考场考场 with with “509509”for for 考场考场考场考场=“401401”思考:如何将思考
15、:如何将思考:如何将思考:如何将djksdjks表中结论字段清空?表中结论字段清空?表中结论字段清空?表中结论字段清空?课堂练习:课堂练习:课堂练习:课堂练习:1.1.为学生表增加字段:助学金为学生表增加字段:助学金为学生表增加字段:助学金为学生表增加字段:助学金 n(6,2)n(6,2)2.2.所有学生发放所有学生发放所有学生发放所有学生发放5050元。元。元。元。3.3.为管理系男生增加为管理系男生增加为管理系男生增加为管理系男生增加5 5元。元。元。元。3.3.6 删除记录删除记录加删除标记加删除标记加删除标记加删除标记(逻辑删除逻辑删除逻辑删除逻辑删除)命令方式命令方式命令方式命令方式
16、:delete :delete 范围范围范围范围 for for 条件条件条件条件 恢复逻辑删除恢复逻辑删除恢复逻辑删除恢复逻辑删除命令方式命令方式命令方式命令方式:recall :recall 范围范围范围范围 for for 条件条件条件条件 物理删除(彻底删除)物理删除(彻底删除)物理删除(彻底删除)物理删除(彻底删除)命令方式:命令方式:命令方式:命令方式:packpack一次性全部删除:一次性全部删除:一次性全部删除:一次性全部删除:zapzap3.3.7 数据表与数组间的数据交换数据表与数组间的数据交换1.1.将数据表中当前记录值复制到数组将数据表中当前记录值复制到数组将数据表中当
17、前记录值复制到数组将数据表中当前记录值复制到数组Scatter Scatter to to 例:例:例:例:use use 学生学生学生学生 go 4go 4 dispdisp scatter to scatter to aaaa display memory like display memory like aaaa2.2.将数组中的各元素值复制到数据表的当前记录将数组中的各元素值复制到数据表的当前记录将数组中的各元素值复制到数据表的当前记录将数组中的各元素值复制到数据表的当前记录 gather from gather from 数组名数组名数组名数组名 例:例:例:例:use use 学生
18、学生学生学生 append blank append blank gather from gather from aaaa dispdisp3.3.8 数据表的复制数据表的复制1.1.数据表文件的复制数据表文件的复制数据表文件的复制数据表文件的复制菜单方式菜单方式菜单方式菜单方式:文件文件文件文件导出导出导出导出命令方式命令方式命令方式命令方式:copy to:copy to 新表名新表名新表名新表名 范围范围范围范围 field field 字段名字段名字段名字段名 for for 条件条件条件条件 2.2.数据表结构的复制数据表结构的复制数据表结构的复制数据表结构的复制命令方式命令方式命令
19、方式命令方式:copy structure to copy structure to 新表名新表名新表名新表名 field field 字段名字段名字段名字段名 3.4.1 数据表的排序数据表的排序3.4.2 数据表的索引数据表的索引 3.4.3 索引查询索引查询 3.4.4 数据表的统计与汇总数据表的统计与汇总3.43.4、数据表排序和索引、数据表排序和索引、数据表排序和索引、数据表排序和索引 排序是把表中的记录按照某个字段值的大小顺排序是把表中的记录按照某个字段值的大小顺序重新排列序重新排列.命令格式:命令格式:Sort to 文件名文件名 on 字段名字段名/a或或/d for 条件条件
20、例例1:对学生表按性别降序排序,生成新表:对学生表按性别降序排序,生成新表abc.dbfSort to abc on 性别性别/dUse abclist3.4.1 数据表的排序数据表的排序例例2:对学生表按性别降序排序,当性别相同时,:对学生表按性别降序排序,当性别相同时,再按出生日期升序排序,生成新表再按出生日期升序排序,生成新表abc.dbfSort to abc on 性别性别/d,出生日出生日期期Use abclist 索引是按照索引表达式的值使数据表中的索引是按照索引表达式的值使数据表中的记录有序排列的一种技术记录有序排列的一种技术.索引实际上一种排序索引实际上一种排序,但是它不改变
21、数据表但是它不改变数据表中数据的物理顺序中数据的物理顺序,而是另外建立一个记录号列而是另外建立一个记录号列表表。结构化复合索引结构化复合索引:文件主名和表文件主名相同文件主名和表文件主名相同,扩展名为扩展名为.cdx3.4.2 数据表的索引数据表的索引索引类型索引类型索引类型索引类型(1).主索引主索引字段的值是唯一的字段的值是唯一的,一个表只能建立一个主索引一个表只能建立一个主索引,只有数据库表才可以建立主索引。只有数据库表才可以建立主索引。(2).候选索引候选索引 字段的值也是唯一的字段的值也是唯一的,但一个数据表只能但一个数据表只能有一个主索引有一个主索引,则只能建立候选索引则只能建立候
22、选索引。(3).普通索引普通索引 按字段值排序按字段值排序,如果多个记录的该字段值相如果多个记录的该字段值相同同,均显示均显示。(4).唯一索引唯一索引 按字段值排序按字段值排序,如果多个记录的该字段值如果多个记录的该字段值相同相同,只显示第一个只显示第一个。创建索引创建索引创建索引创建索引 利用表设计器为已有的表创建索引。利用表设计器为已有的表创建索引。按索引顺序浏览记录按索引顺序浏览记录按索引顺序浏览记录按索引顺序浏览记录表属性,改变索引顺序表属性,改变索引顺序命令方式建立普通索引命令方式建立普通索引命令方式建立普通索引命令方式建立普通索引Index on 索引表达式索引表达式tag 索引
23、名字索引名字命令方式使用普通索引命令方式使用普通索引命令方式使用普通索引命令方式使用普通索引Set order to tag 索引名字索引名字例例1:用菜单方式对用菜单方式对学生学生.dbf按按学号学号(主主)、性性别别(普通普通)、系别和性别系别和性别(普通普通)、系别和出生系别和出生日期日期(普通普通)建立索引,并按索引顺序浏览记建立索引,并按索引顺序浏览记录。录。例例2:用命令方式对用命令方式对学生学生.dbf按按学号和姓名建学号和姓名建立普通索引立普通索引,并按索引顺序浏览记录。,并按索引顺序浏览记录。Index on 学号学号tag aaIndex on 姓名姓名tag abset
24、order to tag aalistset order to tag ablistSEEK 命令命令格式:格式:seek 表达式表达式功能功能:在索引文件中查询关键字内容与表达式相在索引文件中查询关键字内容与表达式相同的第一条记录同的第一条记录.例例1:用用SEEK命令查询命令查询djks.dbf中刘宁记录中刘宁记录。Use djksIndex on 姓名姓名 tag abcSeek “刘宁刘宁”3.4.3 索引查询索引查询例例1 统计统计xsda.dbf中年龄大于等于中年龄大于等于20的学生人数。的学生人数。USE xsdaCount for 年龄年龄=20 TO n?n1统计记录个数命令
25、统计记录个数命令命令格式:命令格式:COUNT FORTO 功能:统计当前数据表文件中,在给定范围内,满足功能:统计当前数据表文件中,在给定范围内,满足条件的记录个数。条件的记录个数。TO:将统计结果存到指定的内存变量中。将统计结果存到指定的内存变量中。3.4.4 数据表的统计与汇总数据表的统计与汇总2.求平均值命令求平均值命令命令格式:命令格式:AVERAGEFORTO 功功能能:计计算算当当前前数数据据表表文文件件中中数数值值型型字字段段的的算算术术平平均值。均值。例例 求男学生的平均年龄求男学生的平均年龄USE xsdaAVERAGE 年龄年龄 FOR 性别性别=”男男”to x?x3.
26、求和命令求和命令命令格式:命令格式:SUM 数值型字段名数值型字段名FORTO 功能:求当前数据表文件中数值型字段的和功能:求当前数据表文件中数值型字段的和。例例:求求rcda表中女同志的表中女同志的 工资现状的总和工资现状的总和.USE rcdaSum 工资现状工资现状 for 性别性别=“女女”to x?x 它是表的集合,即在一个数据库中可以包含若干它是表的集合,即在一个数据库中可以包含若干个表。个表。数据库文件扩展名为数据库文件扩展名为:DBC 1.数据库的创建数据库的创建 (1)在项目管理器中创建在项目管理器中创建 方法:打开项目文件方法:打开项目文件选择选择“数据数据”中的中的“数数
27、据库据库”新建新建 (2)菜单方式菜单方式 文件文件/新建新建 (3)命令方式命令方式 create database 文件名文件名3.5 3.5 创建数据库创建数据库创建数据库创建数据库2.打开数据库打开数据库 (1)项目管理器方式项目管理器方式 方法:在项目管理器中双击要打开的数据库方法:在项目管理器中双击要打开的数据库 (2)菜单方式菜单方式 文件文件/打开打开 (3)命令方式命令方式 modify database 文件名文件名3.关闭数据库关闭数据库 单击单击“关闭关闭”按钮按钮/close database all4.删除数据库删除数据库 (1)项目方式项目方式 移去移去 (3)命
28、令方式命令方式 delete database 文件名文件名3.63.6建立数据字典建立数据字典建立数据字典建立数据字典设置表中字段的显示标题设置表中字段的显示标题设置表中字段的注释设置表中字段的注释设置表中字段的有效性规则设置表中字段的有效性规则设置表中字段的默认值设置表中字段的默认值注意注意:本节内容要求对数据库表操作本节内容要求对数据库表操作.3.6.1.3设置表中字段的显示标题设置表中字段的显示标题例例:在学生表中为系别字段指定标题为在学生表中为系别字段指定标题为:学生所在系学生所在系.设置方法设置方法:数据库表数据库表-右键右键-修改修改-标题标题查看方法查看方法:显示显示-浏览浏览
29、,即可看到字段名称已改变即可看到字段名称已改变.注意注意:字段标题仅在显示时改变字段标题仅在显示时改变,实际字段名并实际字段名并没有改变没有改变.3.6.1.4.设置表中字段的注释设置表中字段的注释设置方法设置方法:查看方法查看方法:1:和设置方法相同。:和设置方法相同。2:在项目管理器中打开成绩表,选中成绩字段,:在项目管理器中打开成绩表,选中成绩字段,在窗口底部会看到。在窗口底部会看到。数据库表数据库表-右键右键-修改修改-字段注释字段注释例例:在成绩表中为成绩字段加注释在成绩表中为成绩字段加注释:成绩字段指平成绩字段指平时测验、期中测验和期末测验的总评成绩。时测验、期中测验和期末测验的总
30、评成绩。3.6.2.1.设置表中字段的有效性规则设置表中字段的有效性规则设置方法设置方法:查看方法查看方法:显示显示-浏览浏览例例:在学生表中为性别字段设置规则为:性别只能在学生表中为性别字段设置规则为:性别只能是男或女,出错提示为:性别必须是男或女,不接是男或女,出错提示为:性别必须是男或女,不接受其它值受其它值.数据库表数据库表-右键右键-修改修改-规则和信息规则和信息规则规则:性别性别=“男男”.or.性别性别=“女女”或:性别或:性别$“男女男女”信息信息:“性别必须是男或女,不接受其它值性别必须是男或女,不接受其它值.”3.6.2.2.设置表中字段的默认值设置表中字段的默认值设置方法
31、设置方法:例例:在学生表中为性别字段设置默认值为:男在学生表中为性别字段设置默认值为:男数据库表数据库表-右键右键-修改修改-默认值默认值查看方法查看方法:显示显示-浏览浏览注意注意:男要加引号。男要加引号。3.6.43.6.4建立表间的关联关系建立表间的关联关系建立表间的关联关系建立表间的关联关系要求要求:一、一、建立关联的表具有相同的字段建立关联的表具有相同的字段二、二、每个表都要以该字段建立索引每个表都要以该字段建立索引1.建立表间的一对一关系建立表间的一对一关系两个表中的关键字段值都是唯一的。两个表中的关键字段值都是唯一的。父表建主索引,子表建候选索引或主索引。父表建主索引,子表建候选
32、索引或主索引。2.建立表间的一对多关系建立表间的一对多关系例例1:为学生表和成绩表建立连接为学生表和成绩表建立连接(设置永久性设置永久性联系联系).方法方法(1)为学生表按学号建立主索引为学生表按学号建立主索引.(2)为成绩表按学号建立普通索引为成绩表按学号建立普通索引.(3)从主索引向普通索引拖拽从主索引向普通索引拖拽.例例2:为课程表和成绩表建立连接为课程表和成绩表建立连接.方法方法(1)为课程表按课程号建立主索引为课程表按课程号建立主索引.(2)为成绩表按课程号建立普通索引为成绩表按课程号建立普通索引.(3)从主索引向普通索引拖拽从主索引向普通索引拖拽.3.6.53.6.5设置参照完整性
33、设置参照完整性设置参照完整性设置参照完整性 在数据库中的表建立关联关系后,可以设在数据库中的表建立关联关系后,可以设置管理关联记录的规则,这些规则可以控制相置管理关联记录的规则,这些规则可以控制相关表中记录的插入、删除或修改。关表中记录的插入、删除或修改。更新规则、插入规则、删除规则更新规则、插入规则、删除规则更新规则:更新规则:更新规则:更新规则:1.1.级联级联:用新的关键字值更新子表中的所有相关记录用新的关键字值更新子表中的所有相关记录;2.限制限制:若子表中有相关记录则禁止更新若子表中有相关记录则禁止更新;3.忽略忽略:允许更新允许更新,不管子表中的相关记录不管子表中的相关记录.删除规则:删除规则:1.级联级联:删除子表中的所有相关记录删除子表中的所有相关记录.2.限制限制:若子表中有相关记录若子表中有相关记录,则禁止删除则禁止删除.3.忽略忽略:允许删除允许删除,不管子表中的相关记录不管子表中的相关记录.插入规则:插入规则:1.限制限制:若父表中没有匹配的关键字值若父表中没有匹配的关键字值,则禁止插则禁止插入入2.忽略忽略:允许插入允许插入例例:为学生和成绩表永久性联系设置更新规则为学生和成绩表永久性联系设置更新规则为级联,删除规则为限制,插入规则为限制为级联,删除规则为限制,插入规则为限制.方法方法:连线按右键连线按右键,参照完整性参照完整性.