Visual FoxPro 9.0程序设计基础 第3章 数据库和表.ppt
《Visual FoxPro 9.0程序设计基础 第3章 数据库和表.ppt》由会员分享,可在线阅读,更多相关《Visual FoxPro 9.0程序设计基础 第3章 数据库和表.ppt(103页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、NANJING UNIVERSITY OF INFORMATION SICENCE&TECHNOLOGY数数据据库技技术及及应用用l南京信息工程大学 计算机与软件学院NANJING UNIVERSITY OF INFORMATION SICENCE&TECHNOLOGY第三章第三章 表表与与数据库的创建和使用数据库的创建和使用 l南京信息工程大学 计算机与软件学院数据库技术及应用前言前言l数据库数据库由一个或多个数据表组成,因此要建立、由一个或多个数据表组成,因此要建立、使用数据库都应首先建立数据表。使用数据库都应首先建立数据表。l在在VFP中,数据表有中,数据表有自由表自由表和和数据库表数据
2、库表两种形式,两种形式,相互可以转换。相互可以转换。l本章重点介绍数据表和数据库的创建和使用,并本章重点介绍数据表和数据库的创建和使用,并在此基础上介绍数据表的各种属性,数据库表之在此基础上介绍数据表的各种属性,数据库表之间的关系等知识。间的关系等知识。本章章节本章章节l本章应掌握的知识本章应掌握的知识3.1 表的创建和使用表的创建和使用3.2 表的索引表的索引3.3 数据库的创建和基本操作数据库的创建和基本操作3.4 数据字典数据字典3.5 表之间的关系表之间的关系3.6 有关数据库操作的命令和函数有关数据库操作的命令和函数3.7 SQL语言创建关系型数据库语言创建关系型数据库3.1 表的创
3、建和使用表的创建和使用l在在VFP中,中,数据表文件的扩展名为数据表文件的扩展名为.dbf,且,且数据表有两数据表有两种形式:种形式:自由表:没有和任何数据库关联的数据表文件自由表:没有和任何数据库关联的数据表文件数据库表:与某个数据库关联的数据表文件数据库表:与某个数据库关联的数据表文件l数据库表和自由表相比,具有一些自由表没有的属性,如:数据库表和自由表相比,具有一些自由表没有的属性,如:主关键字主关键字触发器触发器默认值默认值表关系表关系l数据库表和自由表可以相互转换。数据库表和自由表可以相互转换。3.1.1 表结构概述表结构概述l表以记录和字段的形式存储数据:表中的每一行称为一条记录表
4、中的每一列称为一个字段l举例:2007计算机计算机女女20张文斌张文斌20070082007管理管理男男20黄鹏黄鹏20070062007计算机计算机女女19王明王明2007004年年 级级系系 名名性性 别别年年 龄龄姓姓 名名学学 号号字段字段记录记录学生表学生表3.1.2 字段的基本属性字段的基本属性l字段一般具有以下基本属性:字段名:用以标识字段,应遵循命令规则数据类型:用以说明字段存储值的数据类型字段宽度:用以说明字段存储值的占位宽度小数位数:若数据类型是数值型,则可定义小数位数空值支持:用以指示是否允许字段没有任何值或没有确定的值l举例:字段名称字段名称字段类型字段类型字段宽度字段
5、宽度小数位数小数位数NULL零件号零件号字符型字符型3否否名称名称字符型字符型10是是规格规格字符型字符型25是是单价单价货币型货币型82是是描述描述备注型备注型4是是图片图片通用型通用型4是是3.1.3 表的创建表的创建l在VFP中,创建一个新表的步骤如下:(1)创建表的结构,即说明表中包含哪些字段,每个字段的基本属性(2)向表中添加记录,即向表中输入数据3.1.3 表的创建表的创建创建表结构创建表结构lVFP提供了三种方式创建表结构:表向导:主要用来自动生成表结构表设计器:主要用来手动设计表结构命令:主要用来在应用程序中管理表结构l三种方法可单独使用,也可混合使用。3.1.3 表的创建表的
6、创建创建表结构创建表结构l表向导 3.1.3 表的创建表的创建创建表结构创建表结构l表设计器3.1.3 表的创建表的创建创建表结构创建表结构l表设计器3.1.3 表的创建表的创建创建表结构创建表结构l命令CREATE 数据表名注意,该命令仅用于打开表设计器,还需要在表设计器完善表结构的定义。l缺省数据表名时,则先弹出“创建”对话框,指定数据表的文件名之后,再弹出表设计器窗口。l若给出数据表名,则直接弹出表设计器窗口。举例:CREATE 零件用于创建一个名为“零件”的数据表如果希望在命令中定义表结构,则需要使用创建数据表的CREATE-SQL命令,参见3.7节3.1.3 表的创建表的创建添加记录
7、添加记录l添加记录,主要有两种方式:通过键盘逐条输入从已有文件导入3.1.3 表的创建表的创建添加记录添加记录l逐条输入在浏览窗口中追加记录在编辑状态下输入记录使用APPEND命令追加记录 使用INSERT-SQL命令追加记录 3.1.3 表的创建表的创建添加记录添加记录l逐条输入在浏览窗口中追加记录3.1.3 表的创建表的创建添加记录添加记录l逐条输入在编辑状态下输入记录3.1.3 表的创建表的创建添加记录添加记录l逐条输入使用APPEND命令追加记录 APPEND BLANKl缺省BLANK短语时,则弹出添加记录的编辑窗口,由用户在当前数据表的末尾输入新记录的具体内容。l若选择BLANK短
8、语,则不会弹出编辑窗口,由系统自动在数据表的末尾添加一条空记录。3.1.3 表的创建表的创建添加记录添加记录l逐条输入使用INSERT-SQL命令追加记录,见3.7节,P109INSERT INTO(字段名1,字段名2,.)VALUES(,表达式2,.)【例】向“仓库”表内追加一条记录,仓库号为“013”,面积为500。INSERT INTO 仓库(仓库号,面积)VALUES(013,500)3.1.3 表的创建表的创建添加记录添加记录l文件导入命令方式界面方式3.1.3 表的创建表的创建添加记录添加记录l文件导入命令方式APPEND FROM 文件名 DELIMITED|XLSl若缺省DEL
9、IMITED或XLS短语,则表明导入文件的文件类型为.dbf的数据表文件,并要求该文件的表结构和当前表结构相同。l若选择DELIMITED短语,则表明导入文件的文件类型为.txt的文本文件,并要求该文件中每条记录以回车符结尾,各字段之间以逗号分隔,字符值必须加引号等。l若选择XLS短语,则表明导入文件的文件类型为.xls的Excel文件,并要求该文件中工作表的列结构和当前表的表结构相同。3.1.3 表的创建表的创建添加记录添加记录l文件导入界面方式:用户可以在浏览数据表状态下,选择“表”菜单中的“追加记录”,弹出“追加来源”对话框,从而实现将其他文件中的数据导入到数据表中。根据需要,用户还可以
10、通过该对话框中的“选项”按钮,进行字段选取,或舍弃某些字段。3.1.4 备注型字段和通用型字段的输入备注型字段和通用型字段的输入l鼠标双击memo,弹出文本编辑窗口,在该窗口中输入和编辑信息,结束后关闭当前窗口则会回到记录输入窗口,且memo更新为Memo,表示该字段不为空。l鼠标双击gen,弹出通用型字段编辑器,插入对象,且gen更新为Gen,表示该字段不为空。3.1.5 表的操作表的操作l数据表创建完成之后,就可以根据实际需要进行操作。l在VFP中,操作数据表之前,必须先打开数据表:界面方式:l项目管理器:选择要打开的表,单击“浏览”或“修改”l工具栏:“打开”快捷按钮l菜单栏:“文件”菜
11、单中的“打开”命令命令方式:lUSE 数据表名3.1.5 表的操作表的操作l工作区每打开一个数据表,就会从计算机内存中开辟一个工作区,以便存储该表以及与该表相关的辅助文件中的信息。VFP允许在计算机内存中开辟32767个工作区,每个工作区都有一个编号,范围为132767,其中前10个工作区号也可以用字母AJ来表示。当VFP启动后,1号工作区被自动选中。VFP允许用户可以同时使用多个工作区,但是在任一时刻只能选定其中一个作为当前工作区,而且一个工作区内只能打开一张数据表。如需在打开数据表的时候指定工作区,则可输入命令:USE 数据表名 IN 工作区号3.1.5 表的操作表的操作l表别名在工作区中
12、打开表时,可以为该工作区赋予一个自定义的表别名。定义别名的格式为:USE 数据表名 ALIAS 数据表别名举例:USE 零件 ALIAS 零件信息表用于打开“零件”表,并定义表别名为“零件信息表”如果打开表时没有自定义别名,则系统默认以表文件名为别名。如果再次打开同一个表时没有定义别名,则系统默认以工作区字母作为别名。3.1.5 表的操作表的操作l工作区的选择VFP允许用户可以同时使用多个工作区,但是在任一时刻只能选择其中一个作为当前工作区。工作区的选择,可以通过SELECT命令实现,格式为:SELECT 工作区号|表别名若该命令中的工作区号设置为0,则将选择未被使用的最小编号的工作区。举例:
13、SELECT 1USE 零件SELECT 2USE 零件 AGAIN ALIAS 零件信息表在“零件”表关闭的情况下,执行上述命令,则可以分别在1号工作区去打开“零件”表,同时在2号工作区中再次打开“零件”表,并定义表别名为“零件信息表”。3.1.5 表的操作表的操作l“数据工作期”窗口在VFP启动之后,系统自动生成一个默认的数据工作期,用以表示当前的动态工作环境。利用“数据工作期”窗口,可以方便地查看和管理在计算机内存中开辟的一组工作区。例如:3.1.5 表的操作表的操作l表的打开界面方式:l项目管理器:选择要打开的表,单击“浏览”或“修改”l工具栏:“打开”快捷按钮l菜单栏:“文件”菜单中
14、的“打开”命令l“数据工作期”窗口:“打开”命令3.1.5 表的操作表的操作l表的打开命令方式:USE 表名 IN 工作区号|表别名 AGAIN ALIAS 自定义表别名 EXCLUSIVE|SHARED NOUPDATE其中:lIN子句用于指定在那个工作区中打开表,缺省时表示在当前工作区中打开。lAGAIN子句用于说明该表再次打开。lALIAS子句用于定义打开表的别名,缺省时表的别名与表名相同。lEXCLUSIVE表示表以独占的形式打开。lSHARED表示表以共享的方式打开。lNOUPDATE用于指定表打开后不允许更新,即不可修改其结构和数据。举例:见教材P613.1.5 表的操作表的操作l
15、表的关闭界面方式:l“数据工作期”窗口:“关闭”命令3.1.5 表的操作表的操作l表的关闭命令方式:l关闭当前工作区中的表:USEl关闭指定工作区中的表:USE IN 工作区号|表别名或者SELECT工作区号|表别名USEl关闭所有的表用CLOSE命令,参见教材P623.1.6 表记录的操作表记录的操作l表记录的操作主要包括:浏览记录增加记录修改记录删除记录定位记录3.1.6 表记录的操作表记录的操作l表记录的操作主要包括:浏览记录l界面方式:在数据表打开的情况下,选择“显示”菜单中的“浏览”命令,弹出“浏览”窗口。l命令方式:BROWSE:在“浏览”窗口中查看记录,见教材P63LIST/DI
16、SPLAY:在VFP主窗口中查看记录,见教材P64【例】打开“零件”表,仅显示名称为“螺钉”的记录的零件号、名称和规格,且不能修改记录,浏览器标题显示为“螺钉”,则应依次键入如下命令:USE 零件BROWSE FIELDS 零件号,名称,规格 FOR 名称=螺钉“NOMODIFY TITLE 螺钉“若希望在主窗口中显示相应的信息,则可键入如下命令:LIST FIELDS 零件号,名称,规格 FOR 名称=螺钉3.1.6 表记录的操作表记录的操作l表记录的操作主要包括:增加记录l亦即添加记录,方式主要有两种:通过键盘逐条输入从已有文件导入3.1.6 表记录的操作表记录的操作l表记录的操作主要包括
17、:修改记录l常用方式:在“浏览”或“编辑”窗口中直接进行修改l若需按照某个条件批量修改某个字段的值:界面方式:l在数据表处于“浏览”的状态下,选择“表”菜单中的“替换字段”命令,弹出“替换字段”对话框,然后根据需要进行相关的参数设置,如:3.1.6 表记录的操作表记录的操作l表记录的操作主要包括:修改记录l常用方式:在“浏览”或“编辑”窗口中直接进行修改l若需按照某个条件批量修改某个字段的值:命令方式:lREPLACE命令,见教材P69【例】若使“零件”表中零件名称为“螺母”的零件之单价减少0.5,则可依次键入如下命令:USE 零件REPLACE 单价 WITH 单价-0.5 FOR 名称=螺
18、母3.1.6 表记录的操作表记录的操作l表记录的操作主要包括:修改记录l常用方式:在“浏览”或“编辑”窗口中直接进行修改l若需按照某个条件批量修改某个字段的值:命令方式:lUPDATE命令,见3.7节,P109【例】若使“零件”表中零件名称为“螺母”的零件之单价减少0.5,则可依次键入如下命令:USE 零件REPLACE 单价 WITH 单价-0.5 FOR 名称=螺母3.1.6 表记录的操作表记录的操作l表记录的操作主要包括:删除记录lVFP对记录的删除,一般分两步完成:逻辑删除:先将需要删除的记录打上删除标志物理删除:再删除带有删除标志的记录3.1.6 表记录的操作表记录的操作l表记录的操
19、作主要包括:删除记录l逻辑删除界面方式:l在数据表处于“浏览”的状态下,使用鼠标在记录前的删除标记列进行点击,做上删除标志l若需批量添加删除标志,则可选择“表”菜单中的“删除记录”命令,弹出“删除”对话框后,则可设置相关参数,批量添加删除标志。命令方式:lDELETE命令,见教材P70l注意,如果希望去除删除标志,则可使用RECALL命令,见教材P703.1.6 表记录的操作表记录的操作l表记录的操作主要包括:删除记录l物理删除界面方式:l在数据表处于“浏览”的状态下,选择“表”菜单中的“彻底删除”命令,可以将表中已做删除标志的记录彻底删除。命令方式:lPACK命令,见教材P70【例】若需删除
20、“零件”表中所有名称为“螺母”的记录,则可依次键入如下命令:USE 零件DELETE FROM 零件 WHERE 名称=螺母PACK3.1.6 表记录的操作表记录的操作l表记录的操作主要包括:删除记录lVFP也支持ZAP命令,对所有记录一次性删除,无论是否带有删除标志。3.1.6 表记录的操作表记录的操作l表记录的操作主要包括:定位记录l当用户向数据表内输入记录时,系统会为每一条记录按照输入的顺序指定“记录号”。第一条输入的记录的记录号为1,以此类推。l当前记录的记录号(调用RECNO()函数可获取当前记录号)被存在记录指针中,当数据表刚打开时,记录指针会自动指向第一条记录。l记录指针可在数据
21、表记录的范围内进行移动,VFP为记录指针提供了三种定位方式(见教材P67-68):绝对定位:GOTO 命令相对定位:SKIP 命令条件定位:LOCATE 命令3.1.6 表记录的操作表记录的操作l表记录的操作主要包括:定位记录l在处理记录的过程中,记录指针会不断发生移动,可以利用函数测试记录指针当前是否在有效的范围内:BOF():测试记录指针是否在表头EOF():测试记录指针是否超出最后一条记录l表结构文件示意图参见教材P66。下表中列出了当一张表后,在无索引情况下,未作指针移动操作时,RECNO()函数、BOF()函数和EOF()函数的值。表中记录BOF()的值EOF()的值RECNO()的
22、值无记录.T.T.1有记录.F.F.13.1.6 表记录的操作表记录的操作l表记录的操作主要包括:定位记录 【例】打开“零件”表,将记录指针进行如下操作:USE 零件 EXCLUSIVE?BOF(),EOF()&系统显示.F.F.,即指针既没指到首部也没指到尾部GO BOTTOM&将指针移到文件最后一条记录上?EOF()&系统显示.F.,指针没有指到尾部GO TOP&将指针指到第一条记录上?BOF()&系统显示.F.,没到文件的首部SKIP-1&将指针后退到文件首部?BOF()&系统显示.T.,指针指到文件首部3.1.7 表的统计操作表的统计操作l统计是数据库应用的重要内容。l例如,使用统计命
23、令可以对数据表中的数据进行计数、求和以及求平均值等操作(见教材P72-73):计数:COUNT命令求和:SUM命令求平均值:AVERAGE命令3.2 表的索引表的索引l通常情况下,数据表中各条记录是按输入顺序排列的,然后某些时候则需要按某种特定的次序排列。lVFP提供了两种排序方法:物理排序:依照某一关键字值的大小重新排列数据表中记录的顺序,并生成一个新的数据表文件。逻辑排序:又称索引方法,它并不改变记录的物理顺序,而是按某个索引关键字或索引表达式的值来建立记录的逻辑顺序。l由于逻辑排序的速度快,效率高,因而在大多数情况下均采用逻辑排序的方法,即索引的方法。3.2 表的索引表的索引l索引方法的
24、基本思想:改变记录的物理顺序,而是按某个索引关键字或索引表达式的值来建立记录的逻辑顺序。在索引排序所生成的索引表中,仅记载各记录的关键字值或索引表达式的值,以及对应的记录号及应有的排列顺序。索引表与原数据表一起使用,这样原数据表中各记录的实际存储位置并没有改变,但对其操作时却按索引表所排列的记录顺序进行,因而从逻辑上讲,原数据表中的各条记录就会是有序的。3.2.1 索引的概念及类型索引的概念及类型l索引:一组根据索引关键字或索引表达式的值进行逻辑排序的指针。l索引关键字:是建立索引的依据,通常是数据表中的一个字段l索引表达式:是建立索引的依据,通常是基于数据表中多个字段组成的表达式,以便能够按
25、照多个字段的值进行排序,见教材P73。l索引标识:在一张数据表中可以建立多个索引。为了表示区分,每一个索引都必须有一个索引名,即索引标识。3.2.1 索引的概念及类型索引的概念及类型l索引的类型:对于VFP索引文件的某个索引项,可以分为四种不同的类型:l主索引:主索引是不允许在索引关键字中出现重复值的索引。对于每一个表,主索引只能建立一个。同时,只有数据库表才能建立主索引,自由表没有主索引。l候选索引:也是在索引关键字中不允许出现重复值的索引。对一个表,候选索引可以创建多个。l普通索引:允许索引关键字或索引表达式的值重复出现。l唯一索引:允许索引关键字或索引表达式的值重复出现,但与普通索引相比
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Visual FoxPro 9.0程序设计基础 第3章 数据库和表 9.0 程序设计 基础 数据库
限制150内