VFP第三章表的创建和使用3.3记录的处理

合集下载

Visual FoxPro第3章数据库与表的创建及使用

Visual FoxPro第3章数据库与表的创建及使用

3.2 数据库的创建、打开和使用
3.2.1 数据库的创建
VFP中为数据库设计提供了两个工具:数据库向导和数据库设计 器。 1. 界面操作创建数据库
文件
新建
2.命令方式创建数据库
格式:CREATE DATABASE [<数据库名>|?] 功能:创建由数据库名指定的数据库,若选?或不 带任何参数,执行此命令时打开创建对话框,然后 输入数据库名 VFP中每创建一个新的数据库都将在磁盘上保 存三个文件:数据库文件(.DBC)、关联的数据库备 注文件(.DCT)和数据库索引文件(.DCX)。
3.确定表的字段
确定表字段的几点技巧:
■每个字段直接和表的主题相关 ; ■不要包含可推导得到或通过计算可以得到的字段 ; ■收集所需的全部信息 ; ■以最小的逻辑单位存储信息。
使用主关键字段
■ VFP不允许在主关键字中有重复值或null值。因此,不能选择包含 有这类值的字段作为主关键字。 ■因为要用主关键字的值来查找记录,所以它不能太长,以方便记忆 和键入。主关键字可由一定长度的字母和数字组成,或是某一范围内 的值。 ■主关键字的长度直接影响数据库的操作速度,因此,在创建主关键 字时,该字段值最好使用能满足存储要求的最小长度。
存储过程
存储过程是在数据库数据上执行特定操作并存储在 数据库文件中的程序代码,并在打开数据库时加载 到内存中。
3.1.3 数据字典
数据字典是指存储在数据库中用于描述所管理的表和对象 的数据,即描述数据的数据,称之为“元数据”。 VFP中,每一个数据库都带有一个数据字典,其数据存放 在数据库文件中,可用于创建和制定以下内容: (1)表中的字段的标题、注释、默认值、输入掩码和显示格 式等。 (2)表的索引关键字 (3)长表名和表注释 (4)字段级和记录级有效性规则 (5)存储过程 (6)插入、更新和删除事件的触发器

VFP第3章 数据库和数据表的基本操作

VFP第3章 数据库和数据表的基本操作

第3章 数据库和数据表 的基本操作
3.3 Visual FoxPro中的数据表
3.3.1 数据表的概念
1.数据库与表的关系 数据表是存储记录数据的文件,是关系型数据库管 理系统中处理数据的基本单元 数据表是由一组相关的数据按行和列排列的二维表 格。表文件扩展名为.DBF。类型: 自由表:不包含于任何数据库 数据库表:包含于某个数据库(两者关系) 相关概念:字段,字段名,记录,数据库(.DBC) 2.字段的命名(P57) 3.字段的数据类型(P57)
create可任意定义为数据库表或自由表若当前某数据库为打开状态则创建的为数据库表否则为自由表创建表的结构创建表的结构数据库和数据表的基本操作创建表结构的几点说明字段名以字母或汉字开头由字母数字下划线和汉字组成字段类型根据具体情况而定字段值与字段类型要匹配若为字段添加索引在索引列中选择一种排序方字段的null列有一个钩表示该字段可以接受null值数据库和数据表的基本操作在项目管理器的数据选项卡中打开数据库选择数据库下的表单击添加添加为数据库表选择自由表单击添加添加为自由表要添加的表必须具备下列条件该表是一个有效的
第3章 数据库和数据表 的基本操作
2.程序操作方式 程序执行方式就是将一系列的语句或命令存储在 一个文件中而成为一个程序文件(.PRG),通过运行 该程序文件,完成某些特殊的功能。程序操作方式 不仅运行效率高,而且可重复执行。 可见,交互式操作方法虽然方便、灵活,但是 当用户需要反复执行某些相同的命令序列,或处理 较复杂的问题时就不能发挥计算机高速度、自动化 运行的优势。为此,Visual FoxPro提供了程序执行 方式来解决该问题。
第3章 数据库和数据表 的基本操作
3.2 Visual FoxPro中的数据库

vfp数据库与表的创建及使用

vfp数据库与表的创建及使用

2021/8/18
第3章 数据库与表的创建及使用
22
3.2.2 数据库的打开与关闭
方法一:
所有打开的数据库
方法二: SET DATABASE TO sjk
当前数据库
2021/8/18
第3章 数据库与表的创建及使用
23
3.2.2 数据库的打开与关闭
2、检查数据库的有效性
▪ 如果用户移动了数据库文件与数据库关联的表文 件,则这些文件的相对路径会改变,从而可能破 坏用于关联数据库和表的双向链接。链接破坏后, 可通过重建链接来更新相对路径信息,以反映文 件的新位置。
2、字段的数据类型:说明字段是什么类型的数据。
▪ 不同数据类型的表示和运算的方法不一样。
2021/8/18
第3章 数据库与表的创建及使用
30
3.3.1 表结构概述
数据类型
字母 表示
说明
示例
字符型 (Character)
C 字母、汉字符号和数字型文本
XH、XM
货币型 (Currency)
Y 货币单位
▪ 使用“项目管理器” ▪ 使用“文件”菜单中的“新建”命令 ▪ 使用CREATE DATABASE命令
2021/8/18
第3章 数据库与表的创建及使用
19
3.2.2 数据库的打开与关闭
1、打开数据库
▪ 数据库的打开有多种方式
➢新建的数据库,保存后自动以独占方式打开
➢打开数据库中的表,系统会自动打开相应的数据库
➢在项目管理器中选择一个数据库,并单击“修改” 按钮,可打开该数据库,并出现数据库设计器窗口。
只读方式打开 ➢可以使用命令打开
打开方式:独占/共享
OPEN DATABASE [DatabaseName] [EXCLUSIVE|SHARED]

vfp表的创建和使用-文档资料

vfp表的创建和使用-文档资料

使用命令打开(表的别名:P85) Use tablename[in nwordarea|ctablealias][again][alias ctablename][noupdate]

表的关闭
通过界面操作 使用命令:USE [IN nworkarea|ctablealias] CLOSE TBALES|ALL
表的独占和共享 (默认为独占方式)


在“选项 ”菜单中设置:“数据”卡片
使用SET EXCLUSIVE OFF|ON命令来设置 在打开表的同时进行指定
USE ctablename SHARED|EXCLUSIVE
三、表中记录的处理
记录的输入
使用表设计器创建表结构后会出现对话框“现在 录入数据吗?”,单击是,则出现编辑窗口,可 录入 浏览表的方法:在项目管理器中浏览表 在数据工作期窗口中浏览表 在“显示”菜单中浏览表 使用Browse命令浏览表 记录的追加:
注意:在创建表结构时,若要换行请使用TAB键,而不要按 ENTER键,因为一旦按下ENTER键会使表结构设计结束
用create table-SQL命令创建(P101)
命令格式: create table tablename (fieldname1 fieldtype[ (nfieldwidth[,nprecision])][null | not null ])
Browse [fields fieldslist][for lexpression][freeze fieldsname] [noappend][nodelete][nomodify][title cexpression]


记录的筛选: 1. 界面方式:菜单“表”—“属性”,对“数据 过滤器”进行条件设置 2. 命令方式:set filter to 限制对字段的访问: 1. 界面方式:菜单“表”—“属性” ,对“字段 筛选”进行设置 2. 命令方式:set field to

vfp第3章数据表的建立和使用

vfp第3章数据表的建立和使用
表中的一行为记录(Record) 表中的一列为字段(Field)
5
Page 44
数据表的建立和使用
3.1.1 表结构的设计 3.1.2 表结构的创建 3.1.3 表结构的修改 3.1.4 表结构的其它操作 3.1.5 表记录的输入
6
Page 44
3.1 数据表的建立
3.1.1 表结构的设计
定义字段名称 选择数据类型 确定字段宽度 指定小数位数 建立索引 确定是否允许空值
【操作步骤】
第1步:打开表设计器
(1)项目管理器方式
(2)菜单方式
(3)Create [?|文件名]
第2步:创建表结构
第3步:完成
15
Page 45
3.1 数据表的建立
3.1.2 表结构的创建
第1步:打开表设计器 (1)项目管理器方式
16
Page 46
3.1 数据表的建立
3.1.2 表结构的创建
3.1.2 表结构的创建
【例3-1】利用表设计器创建教师表(js.dbf) 结构。
字段名 gh xm xb csrq gzsj
zcmc jbgz xybh
jl zp
类型 C C C D D C N C M G
宽度 6 8 2 8 8 12 7,2 2 4 4
NULL值 否 是 是 是 是 是 是 是 是 是
实际长度:48+1
7
Page 44
3.1 数据表的建立
3.1.1 表结构的设计
字段名xs_(nFaimeel、d 基N本am工e资)、07专业、所在院
见名知义,不能同名 字段系名名的称命名规则
▪ 名称中只能包含字母、下划线“_”、数字符号和汉字 ▪ 名称的开头只能是字母或汉字,不能是数字或下划线“_” ▪ 自由表的字段名、表的索引标识名至多只能10个字符(即:

vfp第三章

vfp第三章

允许重复,即在普通索引上查找的记录不具有唯一 性。对一张数据表可以创建多个普通索引。
25
2013年春
VFP程序设计
索引文件存放哪些索引? • 结构复合索引文件:表的主索引和候选索 引必须存放在其中,同时将索引的属性存储 在数据库中。因为这两种索引必须和表同时 打开。 • 唯一索引和普通索引可以存储在这两种索 引文件之中。
22
2013年春
VFP程序设计
• 非结构复合索引文件(Compound Index)
非结构复合索引文件将一张表的一个或多个索引的 索引信息存储在一个索引文件中,扩展名为.CDX,但 其文件名与表名不同,且不会自动随表的打开而打开, 只有用打开索引文件命令将其打开,才能起作用。
• 独立索引文件(Independent Index File)单索引文件
2
2013年春
VFP程序设计
3.1 自由表的创建(.dbf)
1、设计表结构 一个数据表由数据表名、数据表的结构、数据表 的记录三要素构成。表的结构:定义数据表中的字 段个数、各个字段的名称、属性、类型、宽度。 定义数据表的结构需注意的问题:
• 数据表名及字段类型的设置(N、I、C、D、L、 M、G、T、Y、),可以是汉字、英文字母、数 字与下划线,数字与下划线不能是第一个字符。 • 小数点和正负号在字段宽度中各占一位
可用作主关键字的索引,不允许有重复值的索引。即 主索引的“候选项”。候选索引可用于数据库表和自 由表,并且一张表中可以建立多个候选索引。
24
2013年春
VFP程序设计
• 唯一索引(Unique Index) 允许出现重复值,但索引文件入口值是唯一的,尽 量少使用唯一索引。 • 普通索引(Regular Index)

visual foxpro第3章表的基本操作

visual foxpro第3章表的基本操作

3.1 表的建立
3
表设计器的字段选项卡
插入按钮:需要插入一个字段时,选定某字段后再选择插 入按钮。注意,插入的字段位于当前字段之前。 确定按钮:用于保存录入或修改的表结构信息,并退出表 设计器。 取消按钮:用于放弃本次表结构信息的录入或修改,并退 出表设计器。
3.1 表的建立
4
表数据的输入
在3.1.2节中提到了输入记录询问对话框,若要立即输入记 录,则选择“是”按钮,出现student记录编辑窗口(参阅 图3-7)。窗口中各字段的排列次序及字段名右侧文本区宽 度都与表结构定义相符;其中日期型字段的两个/间隔符已 在相应的位置标出;备注型与通用型字段中已分别显示 memo与gen标志。
学号
2012010001 2012010002 2012010003 2012020001 2012020002 2012030001 2012040001 2012040002 2012050001 2012060001 2012070001 2012080001 2012090001 2012100001
图3-4 创建对话框
图3-3新建对话框
图3-5 表设计器窗口
图3-6输入记录询问框
3.1 表的建立
2
建立表的结构
例3-2使用命令方式建立表student.dbf的结构 创建表结构的命令格式如下: CREATE[<表文件名|?>] 在命令中使用?或缺省该参数时,打开创建对话框,接下 来的操作与例3-1的步骤②—⑤相同。 如果使用表文件名作为参数时,将打开该表的表设计器, 在表设计器中设定完字段属性并退出表设计器后,表文件 保存在默认目录下。例如在命令窗口输入命令 CREATE student并执行,将出现student.dbf表设计器(参阅图35),接下来的操作与例3-1的步骤④—⑤相同。

VFP数据库与程序设计 作业与实验报告 第三章 表的创建及使用

VFP数据库与程序设计  作业与实验报告 第三章 表的创建及使用

VFP数据库与程序设计作业与实验报告(第三章表的创建及使用)学号:姓名:专业:教师:计算机基础教研室编2013年3月三表的基本操作·实验部分·实验题目:数据表的建立及数据表操作实验目的:通过本次实验,让学生掌握VFP数据表的建立,掌握创建项目、在项目中创建自由表、数据表的基本操作与维护功能。

实验内容及实验步骤:1.建立名为xs.dbf数据表,表结构定义参看实验教材上P42表3-3学生(xs)表结构,表中记录请按实验教材p43表3-6输入:步骤:单击菜单栏的【文件】-【新建】-【表】-【新建文件】命令,在弹出的“创建”对话框中输入表名 xs.dbf ,单击【保存】按钮,在弹出的“表设计器”对话框中按照表3-3定义表结构,单击【确定】按钮,在弹出的“现在输入数据记录吗?”对话框中选择【是】,按照表3-6输入数据表内容后关闭该表窗口。

2.修改数据:将第三条记录入学成绩字段值“450”改为“460”。

步骤:单击菜单栏的【显示】- 浏览命令,浏览数据表,修改入学成绩字段。

3.输入第一条记录的简历为:1990年毕业于师大附小。

步骤:双击(单击/双击)第一条记录的简历字段,在弹出的“xs.jl”对话框中输入“_ 1990年毕业于师大附小”后关闭该窗口。

4.为第一条记录的照片字段插入任意一张的图片。

步骤:双击第一条记录的照片字段,单击菜单栏的【编辑】- 插入对象命令,在弹出的“插入对象”对话框中单击位图图像单选按钮,浏览选取任意一张图片,单击【确定】按钮后关闭该窗口。

5. 追加新记录:按照实验教材P47追加记录的步骤添加表3-7中所示的三条记录。

步骤:单击菜单栏的【表】- 追加新记录命令,追加新记录。

6.将xs.dbf表中简历和照片字段删除。

步骤:单击菜单栏的【文件】-【打开】命令,在弹出的“打开”对话框中选择文件类型为表(*.dbf),选择数据表xs.dbf,选中“独占”复选框,单击【确定】按钮。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.3.1 记录的输入P71⒊使用INSERT-SQL命令追加记录⒋使用APPEND与APPEND FROM命令追加记录APPEND BLANK,可以追加新记录。

⒊使用INSERT-SQL命令追加记录在程序中向一张表中追加记录,通常使用INSERT-SQL命令。

命令格式如下。

INSERT INTO TableName[(FieldName1 [,FieldName2, … …])\] VALUES (eExpression1[,eExpression2, … …])例如:可以用以下命令向XS表中插入一条新记录:INSERT INTO XS(xh,xm,xb,ximing) VALUES ("950106","高山","男","")⒋使用APPEND与APPEND FROM命令追加记录APPEND [BLANK] [IN nWorkArea| cTableAlias]其中,BLANK用于说明向表中追加一条空记录,缺省时系统向表中追加一条空记录,并打开浏览窗口以便用户输入该记录的数据。

当表处于浏览状态时,利用―表/追加记录‖,选中数据来源的文件后,即可追加数据。

常用的可追加的文件类型有表文件.dbf、文本文件.txt(DELIMIED)和Excel文件.xls。

使用APPEND FROM 命令从其他文件中导入数据。

APPEND FROM FileName [DLIMITED|XLS]3.3.3 记录的定位当用户向表中输入数据时,VFP为每个记录都按输入顺序指定了‖记录号―。

第一个输入的记录,其记录号为1,依次类推。

⒈`记录指针当一个表文件被打开后,系统中自动生成三个控制标志:记录的开始标志、记录指针标志、记录的结束标志,如图。

记录的开始标志介于表结构和记录之间,前面是表结构,后面是第一条记录。

记录指针用于指示当前处理的记录位置,记录指针指向的那个记录称为当前记录。

记录的结束标志是整个表记录结束的标志。

记录指针是一个非常重要的概念。

它是VFP 系统内部的一个指示器,可以将记录指针理解为保存当前记录号的变量。

每当打开一个表文件时,记录指针总是指向第一条记录。

在进行数据处理时,经常要移动记录指针,使记录指针指向用户所需要操作的那个记录,这个过程即是记录的定位。

测试当前记录指针的值可用函数RECNO()进行测试。

也可以从VFP主窗口的状态栏上看出记录指针的值。

在处理记录的过程中,记录指针会不停地移动。

记录指针是否指在记录的有效范围内,可以BOF()函数和EOF()函数进行测试。

当记录指针指向记录的开始标志时,BOF()函数值为.T.,否则为.F.。

当记录指针指向记录结束标志时,EOF ()函数的值为.T.,否则为.F.。

表3-2列出了一张表被打开后,未作记录移动操作时RECNO()、BOF()和EOF ()函数的值。

记录指针的初始值总是1,不可能为0或负数。

⒉记录的定位记录的定位即记录指针的定位。

定位方式可分为记录指针的绝对定位、记录指针的相对定位、条件定位。

指针的绝对定位是指把指针移动到指定位置;相对定位是指把指针从当前位置开始,相对于当前记录向前或向后移动若干条记录的位置;条件定位是指按照一定的条件自动地在整张表中查找符合该条件的记录,找到则将指针定位在该记录上,找不到,则定位到整张表的末尾EOF()。

⑵使用命令进行记录定位对于在当前工作区打开的表,用户可以使用GOTO命令进行记录的绝对定位,使用SKIP 命令进行记录的相对定位,使用LOCATE命令进行条件定位。

命令格式:GOTO nRecordNumber [IN nWorkArea| IN cTableAlias]|TOP|BOTTOMSKIP [nRcords][IN nWorkArea|cTableAlias]LOCATE FOR lExpression[Scope]其中nRecordNumber必须在表记录的有效范围内;TOP指第一条记录;BOTTOM 指最后那条记录;记录数nRecord指记录指针需要移动的记录个数,缺省时为1。

条件表达式lExpression用于表示记录的定位条件;范围Scope指进行条件的范围。

例:13下列命令是记录定位的示例CLOSE TABLES ALLUSE XSGOTO 4GOTO TOPSKIP 4SKIP -2LOCATE FOR XM="李刚"在使用命令定位时,需注意:P774-1①如果从第一个记录向上移动一个记录,指针将指向记录起始标志,BOF()函数将返回(.T.),RECNO()函数返回值为1。

如果再执行SKIP –1命令,系统将显示出错信息:已到文件头。

此时,记录指针仍然指向记录起始标志。

⒉使用命令修改记录修改记录字段的命令有两个:UPDATE-SQL命令和REPLACE命令。

这两个命令都能对表中一个或多个字段的一个或多个记录进行修改,都是适用于编程方式。

UPDATE-SQL命令UPDATE-SQL命令的语法格式:UPDATE 表名SET 字段名1 =表达式1[,字段名2;= 表达式2 ...] WHERE 条件表达式参数:表名——指定要更新记录的表。

字段名1=表达式1 [,字段名2=表达式2 ...]——指定要更新的列以及这些列的新值。

WHERE 条件表达式——指定要更新的记录,缺省时表示所有记录。

用该命令更新表时,被更新的表不必事先打开。

REPLACE命令需注意:使用该命令时表必须事先打开。

REPLACE命令命令的语法格式:REPLACE FieldName1 with eExpression1 [ADDITIVE] [,FieldName2 witheEpression2 [ADDITIVE] … …[Scope] [FOR lExpression]其中字段名FieldName与表达式eExpression用于指定要更新的字段以及这些字段的新值;ADDITIVE仅对备注型字段有效,使用时表示替换的内容追加到原备注中,否则替换原内容;FOR子句和范围Scope用于指定要更新的记录,当均缺省时表示仅对当前记录。

执行该命令后,记录指针位于指定范围的结尾。

例子例14,将JS表中所有工龄满30年(假如不考虑月日)的教师的基本工资加100UPDATE JS SET jbgz=js.jbgz+100 WHEREyear(date())-year(gzrq)>29例15CLOSE TABLES ALLUSE JSREPLACE JBGZ WITH JBGZ+100 FOR YEAR(DATE()) - YEAR(GZRQ())>29 3.3.5 记录的删除P78⒉采用命令方式用DELETE或DELETE-SQL命令标记要删除的记录,它们的区别在于前者只能对已打开的表进行操作,后者无需事先打开表。

DELETE命令的基本语法格式:DELETE [Scope][for lExpression] [IN nWorkAlias|cTableAlias]范围、条件、工作区或表别名CLOSE TABLES ALLUSE JSDELETE FOR (DATE()-CSRQ)/365>60 ⒉采用命令方式用DELETE或DELETE-SQL命令标记要删除的记录语法:DELETE FROM 表名[WHERE 过滤条件表达式]参数:FROM 表名——指定要删除记录的表。

[WHERE 过滤条件表达式]——指定只给满足条件的记录做删除标记。

例如,要删除教师表中年龄在60岁以上的记录的命令是:DELETE FROM js WHERE year(date())-year(js.csrq)>60⒉恢复带删除标记的记录如果表的浏览窗口处于打开状态,可以在浏览窗口中单击一下带删除标记记录的小方框,小方框将由黑变白,这样就恢复了这个记录。

同样也可以有选择地恢复一组记录。

从―表‖菜单中选择―恢复记录‖,然后输入恢复条件。

使用RECALL命令恢复带删除标记的记录语法:RECALL [范围] [FOR 条件表达式1] [WHILE 条件表达式2]例如:RECALL &&恢复当前记录RECALL ALL &&恢复所有记录RECALL ALL FOR xb=‖男‖&&恢复所有性别为―男‖的记录⒊彻底删除记录P80被设置了删除标记的记录,可以被彻底删除或被恢复。

如果表的浏览窗口处于打开状态,可从―表‖菜单中选择―彻底删除‖,这个过程将删除已有标记过的记录,并重新构造表中余下的记录。

经过这一步之后,被删除的记录不能再被恢复。

PACK命令具有与菜单同样的功能。

如果要删除一个表的所有记录,只留下表结构,可使用ZAP命令。

ZAP 不管记录是否带删除标记,一概彻底删除。

所以在实际使用中应慎用此命令。

PACK 命令与ZAP命令都需要以独占方式使用表。

3.3.6 数据的复制P80利用COPY TO 命令可以将表(在当前工作区中已经打开)中的数据复制到其他表文件或其他类型的文件中。

COPY TO 命令的常用格式:COPY TO FileName[FIELDS Fieldlist][Scope] [FOR lExpression] [[TYPE] SDF|XLS|DELIMITED[WITHDelimiter|WITH BLANK|WITH TAB|WITH CHARACTER Delimiter]] p81Copy to xs01 for xb='女'COPY TO XS02 FIELDS XH,XM SDF &&XS02.TXT仅包含XH与XMCOPY TO XS03 XLS &&生成一个XS03.xls文件3.3.7 数据的统计利用COUNT、SUM和AVERAGE命令可以对表数据进行统计。

其中,COUNT命令用于统计记录数,SUM命令用于统计某数值型字段的值的总和,AVERAGE命令用于统计某数值型字段的值的平均值。

这些命令的常用语法格式如下:COUNT [Scope] [FOR lExpression][TOVarName] SUM [nExpression][Scope][FOR lExpression][TO VarName]AVERAGE [nExpression][Scope][FOR lExpression] [TO VarName]例子:CLOSE TABLES ALLUSE cjCount for cj<60 to A1 &&统计60分以下的人数,并将结果保存在变量A1中SUM CJ TO A2 FOR cj<60 &&统计60分以下的总分,并将结果保存在变量A2中AVERAGE cj TO A3 &&统计平均分,并将结果保存在变量A3中。

相关文档
最新文档