Visual FoxPro程序设计:第3章 数据库的建立和操作_第1页
Visual FoxPro程序设计:第3章 数据库的建立和操作_第2页
Visual FoxPro程序设计:第3章 数据库的建立和操作_第3页
Visual FoxPro程序设计:第3章 数据库的建立和操作_第4页
Visual FoxPro程序设计:第3章 数据库的建立和操作_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章数据库的建立和操作zpz:本片中凡是SQL的语句,可选讲数据库的概念数据库的建立建立自由表维护数据库表中的记录筛选表记录建立索引内容介绍数据库、数据表的基本概念数据库和数据表的建立编辑表中的数据、记录修改与删除表的索引等有关操作。3.1数据库的概念数据库(.dbc)就是一个关于某一特定主题或目标的信息集合。3.1.1表(.dbf)的概念基本单位,是数据库的基础可以说表是关系数据库系统中的基本结构。要存数据,为所需记录的信息创建一个表。由行和列组成的,一行为一个记录,一列为一个字段。一行为一个记录(Record)一列为一个字段(Field)通常所说的表格二维表简称表(Table)特征:(1)若干记录(2)若干个字段,每记录具有相同结构的字段(3)不同类型的字段来存储不同类型的数据(4)字段的顺序与存储的数据无关(5)记录在的顺序与存储的数据无关。表的两要素:表结构(列)相应记录(行)表结构3.1.2表的字段表是由记录组成记录又由字段组成字段的属性(表结构)字段名字段类型字段宽度小数位数1.字段名约定:只能使用字母、汉字、下划线和数字见名知义

><=+/\|[]:?空格字段名必须以字母或汉字开头,并且长度不能超过128个字符,自由表的字段名不能超过10个字符。如:下列那些合法不以数字开头 ×3mn 姓名1

mn3

不能含有空格; ×

mn ×编号不能含有各种运算符; ×

S-N S_N

×AI*X

2.字段类型不同类型的字段来存储不同类型的数据字符型货币型数值型浮点型日期型日期时间型双精度整型逻辑型备注型通用型(1)字符型(Character)---文本数据通常用于存储键盘输入的文本数据。字符型字段用来存放类似名称、地址等文本信息。在字符型数据中可以包含任何键盘上输入的可见字符以及汉字和标点符号。字符型数据宽度为1~254个字节汉字、字母、数字、空格、符号及标点符号zpz:内存变量(2)货币型(Currency)保存货币数值时,用货币类型而不是数值类型字段最多保留4位小数位数,多则四舍五入至4位内存变量用$数值来赋初值如:x=$999?Type(‘x’)zpz:内存变量(3)数值型(Numeric)数值型字段用来存储数值数据。它可以包含数字0~9,也可以带正、负号或小数点如:1234100.89-0.9999999999E+19到+0.9999999999E+20。(4)浮点型(Float)浮点型字段在功能上等价于数值型字段。zpz:内存变量N(5)日期型(Date)用于存储包含有年、月、日的日期数据长度为8字节(6)日期时间型(DateTime)用于存储包含有年、月、日、时、分、秒的日期和时间数据。(7)双精度型(Double)双精度型用于存储精度要求较高、位数固定的数值,或真正的浮点数值。zpz:内存变量5.6(8)备注型(Memo)长度固定为4字节用于存储不定长度的文本数据当文本数据长度可能大于254,无法使用字符型存储时,使用备注类型字段所有备注型字段的实际内容存储在和表名相同,扩展名为.FPT的备注文件中可将鼠标移到该字段,发现该字段处写着memo,表示该字段值为空,此时双击鼠标左键(或直接按“Ctrl+Home”键、“Ctrl+PgDn”键)即可弹出备注型字段的数据录入的窗口,输入结束后,可单击该窗口的“关闭”按钮(或按“Ctrl+W”键)保存所输数据;如不想保存所输数据,可按ESC键(或按“Ctrl+Q”键),在出现的放弃修改对话框中选择“是”按钮。

(9)通用型(General)通用型用于存储OLE对象数据字段宽度固定为4个字节,用于存储一个4个字节的指针,指向该字段的实际内容其内容存储在扩展名为.FPT的文件中。OLE对象包括电子表格、字处理文档、图像或其他多媒体对象等OLE对象可以用链接方式存储在表中。存储数据的大小,取决于相的OLE服务程序,和磁盘空间大小的限制。可将鼠标移到该字段,发现该字段处写着gen,表示该字段值为空,此时双击鼠标左键(或直接按“Ctrl+Home”键、“Ctrl+PgDn”键)即可弹出通用型字段的数据录入的窗口。(10)整型(Integer)整型用于存储整数数据字段宽度固定为4个字节。取值范围从-2147483647到2147483646。(11)逻辑型(Logical).T.或.Y.为逻辑真.F.或.N.为逻辑假长度固定为1字节(12)字符型(二进)((Character(Binary))字符型(二进制)用于存储不需要系统代码页维护的字符数据其他字段特性同字符型字段密码(各国)(13)备注型(二进制)((Memo(Binary))备注型(二进制)用于存储不需要系统代码页维护的备注字段数据。其他字段特性同备注型字段。数据类型(结)数据类型(Type)13种

C-字符型N-数值形F-浮点型

D-日期型I-整型L-逻辑型

M-备注型G-通用型Y货币型3.字段宽度规定宽度字符型字段254货币型字段8 数值型字段20日期型字段8备注型4逻辑型1日期时间型8通用型字段4用于存储一个4个字节的指针,指向该字段的实际内容。整型字段宽度固定为4个字节。宽度(Width)(结)(以下类型宽度固定)货币型、日期型、日期时间型、双精度型:8字节整型、备注型、备注型(二进制)、通用型:4字节逻辑型:1字节4.小数位数有小数的字段:数值型浮点型双精度型字段宽度=整数部分宽度+小数点1位+小数位宽度如小数位数不为0,则小数位数至少要比整个字段宽度小2小数位数一个N形变量宽为6,小数位数为3,则这个变量最大可表示的数为多少?__.___99.9995.空值(NULL)空值是用来标识一个字段“没有明确的值”的标志空值表示没有任何值或没有确定值空值不等同于数值0、空字符串或逻辑“假”函数EMPTY()测试空值

如果允许字段接受NULL值,则应选中该栏所在框表的关键字段不允许为NULL值字段类型中文名称宽度(字节)说明

Character字符型254字母、汉字、数字、文本、符号Currency货币型8货币单位Numeric数值型20整数或小数Float浮点型20同数值型Date日期型8年、月、日DateTime

日期时间型8年、月、日、时、分、秒Double双精度型8双精度数值Integer整型4整数Logical逻辑型1真或假Memo备注型4不定长的字母、文本、数字General通用型4OLE图像、多媒体对象教师档案中的字段属性字段名数据类型字段宽度小数位NULL编号字符型7否姓名字符型8是性别字符型2是年龄数值型2是职称字符型8是工作时间日期型8是婚否逻辑型1是简历备注型4是照片通用型4是3.2数据库的建立3.2.1建立数据库的准备1.建立文件夹2.设置工作目录3.设置搜索路径4.建立项目3.2.2建立数据库打开项目管理器—选中数据选项卡—数据库--新建—这个数据库属于项目。也可以直接从文件选新建—数据库—这个库不属于任何项目,之后可以添加到项目里,也可以作为一个独立的数据库文件存在。建表的步骤:1)设计表结构2)建表的结构creat

表名3.3建立自由表1、表设计器(1)打开“表设计器”项目管理器/自由表/新建/新表/保存注:

A、也可从菜单或工具栏中直接新建表

B、与在“项目管理器”中新建表不同的是: 这样新建的表将不包含在项目中(2)在“表设计器”中创建表结构表设计器/字段/输入/确定表结构的创建2、用createtable-SQL命令创建表结构createtable|DBF表文件名(字段名1字段类型[(字段宽度[,小数位数])];[,字段名2字段类型[(字段宽度[,小数位数])]]…)----编程时用例:学生表结构createtablexs2(xhc(6),xmc(8),xbc(2),zydhc(6))教师表结构createtablejs(xmc(8),xbc(2),gln(2,0),csrqd,jbgzn(7,2),jlm)数据表的建立如:一张名为教师档案文件zgda.dbf编号姓名性别年龄职称工作时间婚否简历

1张黎黎女26助教05/24/83Tmemo2李艳女30助教09/14/90Tmemo3刘强男38讲师12/24/76Tmemo职工档案表结构(zgda.dbf)字段名类型宽度小数位数索引NULL编号字符型4无升序否姓名字符型6无无否性别字符型2无无否年龄数值型2无无否职称字符型8无无可工时日期型8无无否婚否逻辑型1无无否简历备注型4无无可照片通用型4无无可建立的自由表不在项目里,直接文件--新建—表—新建表.4.表的打开VFP在使用一个表前必须把表打开打开命令USE<文件名>VFP在结束使用一个表时,必须把表关闭关闭命令USECLOSEALLCLOSEDATABASE/TABLE3.3.2向表中添加数据—先打开数据表显示—追加方式,注意编辑方式和浏览方式切换.1.添加新记录—2.添加另一个文件中的所有记录先打开一个文件,从表菜单里选择追加记录--1.用编辑方式显示和修改数据在表“编辑”窗口,可以采用“编辑”方式,显示和修改表中的数据。在表“编辑”窗口,可以使用鼠标调整浏览窗口的大小,调整每个字段的显示顺序和改变成有“浏览”和“编辑”两种显示方式的窗口。

2.用浏览方式显示和修改数据在表“浏览”窗口,可以采用“浏览”方式,显示和修改表中的数据。在表“浏览”窗口,同样可以使用鼠标调整窗口的大小、调整每个字段的显示宽度和改变成有“浏览”和“编辑”两种方式显示的窗口

3.有选择地添加源记录和字段命令方式:append[Blank]Appendfrom源文件名Insert[Blank][Before]1、表设计器—一般不要修改项目管理器/选定表/修改注意:修改字段,宽度改小,超出字段宽度的字符将自动丢失,如果字段是数值型会溢出*,改回来也不以恢复.类型修改,字符型改成数值型,数据全丢失.插入字段、删除字段、调整顺序。2、命令USEbooksMODIFYSTRUCTURE3.3.3修改表结构如何定制浏览窗口?重新安排列的位置:书上没有做笔记拖动改变列的宽度:拖动显示或隐藏表格线:显示/网格线分为两个窗格:左下角拖动二、记录内容的滚动查看

在浏览窗口中可以很方便地查看表中的有关记录,但当表中的记录数或字段数较多时,以至于不能同时显示所有的数据时,浏览窗口将会自动出现垂直或水平滚动条。此时,可以单击窗口内的滚动条两端的箭头或拖动其中的滑块,可以进行有关数据的滚动查看。除此之外,也可以通过按PgUp键或PgDn键进行翻页查看。

三、改变显示列宽

在列标头中,将鼠标指针指向两个字段之间的结合点,拖动鼠标调整列的宽度。或者先选定一个字段,然后从“表”菜单中选择“调整字段大小”,再用左右光标键移动列宽,最后按回车键。字段列宽的调整不会影响到表结构中的字段宽度,仅改变其显示的列宽。

四、字段顺序的调整

可以重新调整显示窗口中列的顺序,使它们按照需要的顺序进行排列。方法是将鼠标指针指向列标头区要移动的那一列上,此时鼠标指针变成向下的箭头,按住鼠标左键不放将列标头重新拖到新的位置上即可。

五、拆分“浏览”窗口

拆分“浏览”窗口就是将浏览窗口分为两个分区,两个分区显示同一个表的数据,且显示的方式可以相同也可以不同。拆分方法是将鼠标指针指向窗口左下角黑色的拆分条,按住鼠标左键不放,向右拖动至合适位置,或者从“表”菜单中选择“调整分区大小”命令,然后用光标左右方向键移动拆分条至合适位置,最后按回车键。都可将“浏览”窗口分成两个窗口。

六、网格线的显示和隐藏

从“显示”菜单中,选择或取消“网格线”,可以显示或隐藏“浏览”窗口中各记录之间的网格线。

几个概念记录指针当前记录记录定位:可指向任意一条记录,也可指向文件头和文件尾.记录号RECNO()2.记录的定位记录结束标志记录开始标志第n条记录文件头Gotopgobottomskip1、记录指针标志记录号(输入顺序)记录的开始标志

BOF()记录指针标志

(当前记录)

RECNO()记录的结束标志

EOF()2、记录的定位方式绝对定位go相对定位skip条件定位1.菜单操作方式

打开要使用的表,在“显示”菜单下,选择“浏览”命令;打开“表”菜单,选择“转到记录”,

在“转到记录”的下一级子菜单中有不同的选项,通过这些选项可以将记录指针移动到相应的记录上。选择“第一个”,确定第一个记录为当前记录;选择“最后一个”,确定最后一个记录为当前记录;选择“下一个”,确定当前记录的下一个记录为当前记录;选择“前一个”,确定当前记录的前一个记录为当前记录;选择“记录号”,

便进入“转到记录”对话窗口,在“转到记录”对话框内,可以选择记录号,确定该记录号指定的记录为当前记录;选择“定位”,进入“定位记录”窗口,在“定位记录”对话框内,输入定位条件表达式,确定满足定位条件表达式的第一个记录为当前记录。

2.命令操作方式一、绝对定位(GO)绝对定位不考虑当前记录指针的位置,直接将指针移到指定的记录号。格式一:GO[TO][RECORD]<数值表达式>|TOP|BOTTOM格式二:

<数值表达式>功能:将记录指针直接定位到指定的记录上。相关参数和选项含义的说明:

(1)GO与GOTO等价的。(2)GO<数值表达式>:指定一个物理记录号,记录指针移至该记录上;<数值表达式>的值必须大于0,且不大于当前表的记录数。(3)GOTOP:将记录指针定位在表的第一个记录上。

(4)GOBOTTOM:将记录指针定位在表的最后一个记录上。(5)

RECORD可省略。

二、相对定位skip格式:SKIP<表达式>表达式的值为正向下移若干个记录,为负向上移若干个记录。Go5Skip2?recno()Skip–1?recno()Go1?recno(),Bof()1.F.Skip–1?recno(),?Bof()1.T.当recno()的值的为1时,记录指针可能指向文件头,也可能指向第一条记录。Gobottom?recno(),eof()记录的个数.F.Skip?recno(),eof()记录个数加1.T.例1假设ZGDA表有848条记录,先后执行以下命令

bof()eof()recno()usebooksff1skip-1tf1skip-1Errorf1gobottff848skipft849skip

Error

例2RECN()Usebooks1go55skip+27skip-34locatefor…

记录的修改1、在浏览窗口中修改EDIT/CHANGE/BROWSE项目管理器/浏览例:修改books表中第5条记录

usebookseditrecord5记录的修改2、批量记录的修改(1)界面方式“表”—“替换字段”—字段条件(2)命令方式UPDATE-SQL命令(表不必事先打开,以下同)REPLACE

命令USEbookscopytotempusetempREPLACE单价

WITH5.00FOR单价<5记录的插入和追加1.记录的插入

格式:INSERT[BEFORE][BLANK]功能:在当前表中插入新的记录。相关参数和选项含义的说明:

(1)

无任何选项时,在表的当前记录之后插入一个新的记录,并打开“编辑”窗口以便用户录入数据。(2)含“BEFORE”子句时,在表的当前记录之前插入新记录,若缺省该子句则在表的当前记录之后插入新记录。(3)含“BLANK”子句时,插入一条空记录,不出现记录“编辑”窗口,若缺省该子句则出现记录“编辑”窗口,等待用户输入记录。2.记录的追加一、以菜单操作方式追加表记录打开表,进入“浏览窗口”,单击“表”菜单中的“追加新记录”,此时在表尾追加一条新的空记录,用户即可向该空记录中填入数据。若要再追加一条记录,重复操作即可。二、以命令操作方式追加表记录

格式:APPEND[BLANK]

功能:在当前已打开的表文件末尾追加新记录。若该表文件已有n条记录,执行该命令后,则从第n+1条记录开始追加;若表文件尚无记录,则从第1号记录开始追加。相关参数和选项含义的说明:

BLANK:若有该子句,则在表的末尾追加一条新的空白记录,不出现记录“编辑”窗口,但用户可以使用BROWSE、REPLACE等命令编辑新记录;若无该子句,则在表的末尾追加一条新的空白记录,并进入“编辑”窗口,输入记录数据后,会自动出现下一个新的记录位置,依次类推,最后完成记录的追加

3.记录的成批追加

一、菜单操作方式菜单方式追加记录的步骤如下:(1)

打开表,选择“显示”菜单中

“浏览”命令。(2)选择“表”菜单中的“追加记录(A)...”命令项,将出现“追加来源”对话框。(3)选择“类型”为Table(DBF),在“来源于”文本框中输入表文件名,或者单击“...”按钮将弹出一个“打开”对话框,从中选择一个所需要的文件。(4)

单击“追加来源”对话框的“选项”按扭,将出现“追加来源选项”对话框。(5)在“追加来源选项”对话框,可以通过“字段”按钮选择将源表的哪些字段值复制到当前表中;可以通过“For”按钮选择将源表中符合条件的记录追加到当前表中。(6)单击“追加来源”对话框的“确定”按扭,即完成追加。二、命令操作方式格式:APPENDFROM<文件名>[FIELDS<字段名表>][FOR<条件>][[TYPE][DELIMITED[WITH<定界符>|WITHBLANK|WITHTAB]]|SDF|XLS]功能:将来自于另一个文件的有关记录追加到当前表的末尾。相关参数和选项含义的说明:(1)FIELDS<字段名表>指定要将源表的哪些字段值复制到当前表中,若有多个字段,字段之间用逗号“,”隔开,若省略该参数,则是将源表的所有字段值复制到当前表的对应字段中去。(2)FOR<条件>指定追加记录的条件,只有符合条件的记录才会被追加到当前表中,若省略该参数,则是将源表的所有记录追加到当前表中。(3)源文件的类型可以是表,还可以是系统数据格式、定界格式等文本文件或MicrosoftExcel文件。(4)若不含TYPE子句时,源文件的类型是表。(5)若源文件是MicrosoftExcel文件,TYPE子句中必须取XLS。(6)若源文件是文本文件,TYPE子句中必须取SDF或DELIMITED。(7)执行该命令时源文件不需打开。3.4.3记录的删除目的:节省时空删除步骤:逻辑删除物理删除1.逻辑删除表中的记录逻辑删除就是给暂时不使用的记录加一个删除标记。另外,对需要彻底删除的记录,也必须要先做逻辑删除后再做物理删除。逻辑删除表中的记录,操作方法是,打开要进行逻辑删除操作的表,并进入表“浏览”窗口。方法一:在表“浏览”窗口,把鼠标对准其删除标记栏,单击左键,这时要进行逻辑删除的记录就被加上了删除标记。这种操作方法只对单记录进行逻辑删除有效。方法二:在“浏览”窗口,打开“表”菜单,选择“删除记录”,在“删除”窗口,可以通过选择作用范围确定要进行逻辑删除的部分记录或在For对话框中,设置逻辑删除条件表达式来确定逻辑删除的记录。2.命令方式格式:DELETE[<范围>][FOR<条件>|WHILE<条件>]功能:对当前表文件中指定范围内满足条件的记录作删除标记。相关参数和选项含义的说明:(1)默认范围和条件选项时,仅对当前记录作删除标记。(2)用户若用LIST或DISPLAY命令显示表记录时,会看到被作了删除标记的记录的记录号和第一个字段间出现删除标记(“*”号)。(3)可用DELETED()函数来检测当前记录是否带有删除标记,若带有删除标记则函数DELETED()的返回值为“.T.”;反之,函数DELETED()的返回值为“.F.”(4)可以用

SETDELETEDON命令将作过删除标记的记录暂时“隐藏”起来,就如同这些记录被删除一样。若要消除“隐藏”,只要输入SETDELETEDOFF即可。系统默认的状态为SETDELETEDOFF。

恢复记录的删除恢复带删除标记的记录(与setdele无关)法1:小方框黑-->白法2:“表”“恢复记录”法3:RECALL[范围][FOR条件表达式1][WHERE条件表达式2]例:recallrecallallrecallallfor库存数量=0(这里的all可省)说明:缺省范围(当前记录,不是全部记录)3.物理删除做了删除标记的记录格式:PACK功能:将当前表中有删除标记的记录从表文件中永久删除,并将记录号重新排列。说明:(1)使用该命令应以独占方式打开表文件。(2)一旦物理删除则不能恢复记录。使用该命令时,一定要慎重,确认无误后,再使用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论