VFP第三章表的创建和使用3.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章 数据库和数据表的基本操作
第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数据库与表的创建及使用
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表的创建和使用-文档资料
使用命令打开(表的别名: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章数据表的建立和使用
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第三章
允许重复,即在普通索引上查找的记录不具有唯一 性。对一张数据表可以创建多个普通索引。
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章表的基本操作
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数据库与程序设计作业与实验报告(第三章表的创建及使用)学号:姓名:专业:教师:计算机基础教研室编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,选中“独占”复选框,单击【确定】按钮。
VFP第3章 数据表的创建及操作1总结
注意观察: 1.在操作表时,命令窗口显示的相关命令。 2.在输入标记录时,状态栏上提示的信息。
思考:表中有几条记录,当前为 第几条记录?该表在的位置什么? 该表的打开方式是什么?
3.1.6 表的打开与关闭
1) 表的打开
数据表是一种文件,存放在外存即磁盘中。数据表从外 存被调入到内存中,这个过程叫“打开”。“关闭”则是 将调入内存中的数据保存到外存并释放内存空间。 1.命令方式
修改:菜单“Edit/Clear”,删除对象。
特殊字段数据内容:
注意:有时图片不能正常 显示,但只要在表记录浏 览状态下gen变为Gen即可 视为录入了数据。
补充:数据输入要点
1.输入时,有一个 “I”型光标在空白字段中闪烁,表明当
前是对该字段的值进行输入 。
2.逻辑型字段的输入只能接受单个字母,用“T”表示真、
本章主要内容
3.1 建立数据表(可视化方式) 3.2 操作数据表(命令方式)
3.3 工作区
3.4 表的索引
3.5 数据共享
3.1 建立数据表(可视化方式)
3.1.1 表的概述 3.1.2 表的重要概念 3.1.3 可视化的创建自由表 3.1.4 录入表记录 3.1.5 记录的删除与恢复 3.1.6 表的打开与关闭
独占方式,表示打开的表 既可以修改结构也可以修 改数据;若不选,则只可 修改数据而不可以修改结 构
项目管理器方式打开表
点击“Modify”按钮,重新进入表设计器界面。 点击“Browse”按钮,可查看表中记录。
可以通过“数据工区期(Data sesstion)”观察已打
开的表。
2) 表的关闭
用“F”表示假。不区分大小写 。
VFP基础教程-表的创建和使用
3.1 VFP6.0表1. 表的概念表(数据表):是指存放在磁盘文件中的一张二维表。
(相当FoxPro 2.x 版本中的数据库)自由表:不属于任何数据库的表。
数据库表:包含在一个数据库中的表。
表文件名:表名可以由字母、数字或下划线组成,系统自动给出的扩展名为 .DBF。
备注文件名:当表中有备注型或通用型字段时,系统自动生成与所属数据表的表名相同、扩展名为:.FP T的文件名。
表结构:存储表记录的公共结构。
(就是指一张表的表头结构,即字段的属性)。
记录:表中的一行。
它是多个字段的集合,同一张表的每个记录都有相同的字段。
字段:表中的一列。
它规定了数据的特征。
关系型数据表的特点:(1)每一个字段不可再分解,也不能有名字相同的字段;(2)每一列中的数据都有相同的数据类型;(3)表中没有内容完全相同的行(记录)。
2. 字段的基本属性字段的属性:包括:字段名、数据类型、字段宽度、小数位数、空值支持字段名:即每个字段的名字,必须以字母开头,可由字母、数字、下划线组合而成,字母大、小写无区别,但其中不许有空格或其它字符。
自由表的字段名最多由10个字符组成,数据库表的字段名支持长名,最多可达128个字符。
如果从数据库中移去一个表,那么此表的长字段名将被截短成 10 个字符。
VFP允许长字段名和长表名,但使用长名称对于跨平台的操作可能遇到难以预料的结果。
数据类型:指该字段的数据特征。
字段宽度:指该字段所能容纳数据的的最大字节数。
小数位数:指数值型数据将保留几位小数。
此时的字段宽度 = 整数位数+1+小数位数。
NULL 值(空值):无明确的值。
NULL 值不等同于零或空格。
一个 NULL 值不能认为比某个值(包括另一个 N ULL 值)大或小,相等或不同。
VFP 6.0表中字段的数据类型字段类型代号说明字段宽度使用示例字符型 C 字母、汉字和数字型文本每个字符为1个字节,最多可有 254个字符学生的学号或姓名, "8199101" 或 '李立'货币型Y 货币单位8 个字节工资, $1246.89日期型 D 包含有年、月和日的数据8 个字节出生日期,{^1980/07/08}日期时间型T 包含有年、月、日、时、分、秒的数据8 个字节上班时间,{^2005/02/20 9:15:15 AM}逻辑型L “真”或“假”的布尔值1 个字节课程是否为必修课,.T. 或 .F.数值型N 整数或小数在内存中占 8 个字节;在表中占1至20个字节考试成绩, 83.5双精度型 B 双精度浮点数8 个字节实验要求的高精度数据浮点型 F 与数值型一样整型I 不带小数点的数值 4 个字节学生的数量通用型G OLE 对象在表中占 4 个字节图片或声音备注型M 不定长度的一段文字在表中占 4 个字节学生简历字符型(二进制) C 任意不经过代码页修改而维护的字符数据每个字符用1个字节,最多可有 254个字符备注型(二进制)M 任意不经过代码页修改而维护的备注数据在表中占 4 个字节3. 表的基本操作表的创建:设计表名和表结构、输入记录、建立索引数据维护:增加记录、修改记录、删除记录创建表的主要步骤:设计表结构→ 输入记录→建立索引→数据维护4.关于表操作的几个基本命令命令格式功能CREATE表文件名创建一个新的自由表的结构USE表文件名打开指定的表文件USE关闭当前表文件LIST ALL显示当前表的全部记录内容(类似于DOS 命令中的dir)DISPLAY ALL分屏式地显示当前表的全部记录内容(类似于DOS中的dir/p)DISPLAY STRUCTURE显示当前表的结构(分屏显示)LIST STRUCTURE显示当前表的结构(不分屏显示)MODIFY STRUCTURE调出表设计器,修改当前表的结构。
VFP第3章 VFP数据库及操作
教案讲稿第3章VFP数据库及操作[旧课复习]:复习内容:1. 以互动方式了解学生对整型、数值型、字符型数据掌握程度2. 了解学生对VFP运算符及表达式掌握程度3. 了解学生对各种常用函数的掌握复习目的:了解学生对vfp数据类型,运算符及常用函数的掌握程度及层次情况复习时长:大约5分钟[新课导入]:导入方式:解读数据库应用已普及到社会的方方面面,表是数据库中的的最基本元素。
简单介绍表的基本操作。
导入目的:增强学生的学习积极性导入时长:大约5分钟[新课讲授]:重点:1)数据库、表的建立、编辑和维护。
2)数组与表之间的数据交换命令。
难点:数组与表之间的数据交换命令。
方法:运用多媒体辅助教学,采用案例教学和任务驱动等教学法。
3.1 掌握数据库的基本操作一、数据库的概念数据库是数据库对象(如表、视图、存储过程等)的集合。
在数据库的组织管理下,可以方便地为表中字段设置输入和显示属性,设置默认值,为表创建字段级有效性规则、记录级有效性规则和触发器,为各表之间建立永久关系,创建视图等。
二、数据库的建立与编辑1.交互创建数据库交互创建数据库既可用菜单也可用工具栏。
选“文件” →“新建” →“新建”对话框,文件类型选“数据库”,单击“新建文件”命名按钮→显示“创建”对话框,如图所示。
在“保存在”位置输入创建的数据库文件保存的文件夹,在“数据库名”框内输入要创建的数据库的主文件名。
2. 命令操作数据库在命令窗口键入相应的命令也可创建数据库。
操作数据库命令如下。
(1)创建数据库。
格式:CREATE DA TABASE 数据库名执行该命令后,从界面上看不出任何反映,但数据库文件已经建立。
除非在数据库名前指定路径,否则创建的数据库文件存放在当前默认的文件夹中。
默认的文件夹可通过SET DEFAULT TO命令设定。
(2)打开数据库。
格式:OPEN DATABASE数据库名(3)修改数据库。
格式:MODIFY DATABASE 数据库名(4)关闭数据库。
第三章VFP数据库及其操作
2
3.1创建项目
在VFP中,项目是文件、数据、文档 和VFP对象的集合,它包含了一个应用系 统开发过程中使用的各种数据库、表、 查询、表单、报表、应用程序及它所有 文件。 扩展名:pjx
3
3.1创建项目
1、建立工作目录 set default to d:\vfp 2、建立项目文件 有两种方式: (1)菜单方式 (2)命令方式 格式:CREAT PROJECT [<项目文件名>] 练习:创建名为学生管理的项目文件.
28
3.3.6删除记录
2.恢复逻辑删除的记录 (1)菜单方式 例:恢复学信息表中奖学金<200的记录.如下图:
(2)命令方式
RECALL <范围>[FOR<条件>][WHILE<条件>]
(3)鼠标方式
29
3.3.6删除记录
3.物理删除 (1)菜单方式 (2)命令方式 PACK 4.一次性删除记录 ZAP **记录删除,保留表结构 课堂练习: 把学生信息表中的所有记录彻底删除.
20
3.3.2
记录的定位
例:打开“学生信息”表,用LOCATE 命令定位所 有性别为女的学生记录。 USE D:\ZF\学生信息 LOCATE FOR 性别=“女” ?Found() &&显示结果为 .t. display cont disp
注: Found() 函数,如果找到满足条件 的记录,则函数返回值为真,否则为假。
•菜单方式选择字段:表—属性 例:查看学生信息表中学号、姓名字段。
17
3.3.1数据表的打开与浏览
• 命令方式选择字段:set fields to 字段列表 例:查看学生信息表中学号、姓名和性别三个 字段。 Set fields to 学号,姓名,性别 注意:取消字段的选择:Set fields to all
VFP第3章 数据库与表的创建及使用
3.3 表的创建与使用
3.3.1 表.3.3 字段属性与表属性 3.3.4 表的打开与关闭 3.3.5 记录的处理 3.3.6 索引的创建与使用
3.3.7 自由表
3.3.8 利用命令创建和修改表结构
表的概念(一)
VFP中,表分为两种类型:
数据库表 和 自由表 VFP中的表(Table)是指存放在磁盘文件中 的一张二维表。 一张表保存为一个表文件(.DBF)。
举例
指出下面表中的超关键字: 姓名 赵阳 林虎 赵阳 年龄 20岁 21岁 21岁 院系 仪表 仪表 信息管理 班级 984 984 976
候选关键字
如果一个超关键字,去掉其中任何一个字段 后不再能唯一确定记录,则称它为‚候选关键字‛ (candidate key)。 候选关键字既能唯一确定一条记录,它包含的字 段又是最精练的。 一个二维表中总存在超关键字,因而也必存在候 选关键字。
存储过程
存储过程是保存在数据库中的过程代码,它由一 系列函数组成。 利用存储过程可以提高数据库的性能。 存储过程保存在.dbc文件中。
3.1.3 数据字典
数据字典是指存储在数据库中用于描述所管理 的表和对象的数据,即关于数据的数据。这些数 据称为元数据。
每个数据库带有一个数据字典,其数据存储在 数据库文件中。 数据字典扩展了对数据的描述,从而增强了数 据管理和控制功能。 数据库中的表可以享受到数据字典的各种功能。 数据字典使得对数据库的设计和修改更加灵活。
表与数据库之间的双向链接
数据库文件 前链 前链 前链 前链
后 表文件 链
后 表文件 链
后 表文件 链
后 表文件 链
视图
视图是一张‚虚表‛,其数据来源于一张或多张 表。
ch3VFP数据库与表的建立和使用
16
1. 用“表设计器”创建表结构:步骤 二
在“表设计器”中创建表结构 单击“表设计器”对话框中的“字段”选项卡, 把表的各个字段输入到“字段”列表框中。 当全部字段内容输入完毕,并确认正确后,单 击“确认”按钮,出现“现在输入数据记录 吗?”的对话框,如果要立即输入数据,可单 击“是”按钮,并出现记录输入编辑窗口;如 果不要立即输入数据,单击“否”按钮。
2013-6-28
13
字段宽度(Width)
字段宽度是指该字段所能够容纳数据的最大字节数,
在指定字段宽度时,必须充分考虑该字段可能存储的最大长度
几个特例:
备注型和通用型字段的宽度是4字节,它包含的是引用信息, 指向真正的备注内容。备注字段的数据保存在单独文件中, 文件名与表文件名相同,但其扩展名为.fpt。 货币型、日期型、日期时间型和双精度型字段的宽度固定为8 字节。 整型字段的宽度固定为4字节。 逻辑型字段的宽度固定为1字节。
如 CREATE TABLE xs (xh C(6) NOT NULL,;
xm C(8) NOT NULL,xb C(2) NOT NULL,;
zydh C(6) NULL,ximing C(18) NULL )
用SET NULL ON |OFF命令控制表字段中是否允许NULL值。默认 为OFF
空值支持(NULL)
空值是用来指示记录中的一个字段有或没有数据的标识。 空值(NULL)不是一种数据类型或值,它是指示数据 存在与否的一种属性。
2013-6-28
15
3.3.2 表结构的创建
创建表结构有两种方式:表设计器(Table Designer)方式和SQL命令方式。 1. 用“表设计器”创建表结构。
VF第三章
复制表命令
1、COPY STRUCTURE TO <新文件名>[FIELDS 字段名表]
复制当前打开的表结构到新的表文件中,但不复制任何数据
2、COPY TO <新文件名>[范围][FIELDS<字段名表>][FOR <条件>][WHILE <条件>]
将打开表的全部或部分结构及数据复制到新表中
[BOTTOM]:表尾。不使用索引时时记录号最大的记录, 使用索引时是索引项排在最后的索引项对应的记录。 说明: <数值表达式>的值必须大于0, 且不大于当前表文件的记录个数。 2、与当前记录有关,它是把记录指针从当前位置作相 对移动。 格式:SKIP [<数值表达式>] 功能:将记录指针向前或向后作相对若干条记录的移动。 参数描述: <数值表达式>:指定记录指针作相对移动的记录数据。
说明: WITH后面的表达式的类型必须与WITH前面的字段类 型一致 。
返回
删除记录命令
在VFP中删除记录是分为两步来进行的,第一步是将要 删除的记录做上删除标记,第二步才是将记录真正从表 中彻底删除。 1、逻辑删除(为记录做上删除标记) 功能:对当前表文件中指定的记录做删除标记。
格式:DELETE [<范围>] [FOR <条件>] [WHILE <条件>]
LIST STRUCTURE和DISPLAY STRUCTURE命令的区 别 DISPLAY STRUCTURE在每显示一屏信息后暂停,等 待用户按任意一键后继续显示; LIST STRUCTURE显示信息时没有周期性暂停,而是 连续向下显示,直到显示完毕。 显示Student表的结构
USE Student LIST STRUCTURE
最新VFP第3章数据库与表的创建及使用
[EXCLUSIVE|SHARED][NOUPDATE][VALIDATE]
打开多个数据库可重复进行数据库打开操作即可,系 统默认最后一个打开的数据库为当前数据库。
根据需要可用SET DATABASE TO命令将另一个被打 开的数据库设为当前数据库或在“常用”工具栏“数
据库”下拉列表中选择一个已打开的数据库作为当前
FILE FileName]
【注】 ①RECOVER用于说明更新链接,缺省时仅检查数据库的有效性 ②TO FILE用于说明检查结果信息的去向,缺省时在VFP主窗口 显示; ③VALIDATE DATABASE命令只能处理以独占方式打开的当前 数据库。
2020/10/24
9
3.关闭数据库
在项目管理器中选择要关闭的数据库后单击“关 闭”按钮;
主题,每个主题都将是数据库中的一个表。 确定所需字段,也就是将在表中保存的信息。 确定表之间的关系,形象而又直观地反映现实世
界中各实体间的真正关系。 改进设计、优化设计。
数据库的逻辑设计
2020/10/24
3
3.1 数据库概述
3.1.2 数据库的组成
1. 表(Table) 属于某一数据库的表称为“数据库表”。与自由
数据库设计器与“数据库”菜单
2020/10/24
7
3.2.2 数据库的打开与关闭
1. 打开数据库 →使用数据库前必须打开数据库
新建的数据库,保存后自动以独占方式打开;
打开数据库中的表,系统会自动打开相应的数据库;
在项目管理器中选择一个数据库并单击“修改”按钮 ;
OPEN DATABASE [DatabaseName]
VFP第3章数据库与表的创建及 使用
本章要点
第三章 数据库与表的创建及使用
3.3.3 字段属性与表属性
(3)字段的标题(Caption):在浏览窗口中,列表头显示的内
容。 (4)字段的注释(Comment):用来明确地表达列的含义。
(5)字段有效性规则:用来控制输入到字段中的数据的取值范
围。该规则是一个逻辑表达式,且当前字段包含在该表达式中 。在字段值改变时发生作用,它将所输入的值用所定义的逻辑
3
3.1.1 数据库的设计过程
1. 分析数据需求
数据需求分析的目标是对现实世界中要处理的对象进 行详细调查,并在了解整个系统概况、确定新系统功能 的过程中,收集支持系统目标的信息。
2. 确定需要的表
表是存储数据的容器,也是数据库的主要管理对象。 一个应用系统中,往往需要管理各方面的数据。例:
教师表 课程表 学生表 系代码表
11
3.1.3 数据字典
数据字典用来存储元数据的,可以创建和指定的内容: 表的主索引关键字 数据库表的永久性关系 长表名和表注释 字段级和记录级有效性规则
存储过程
插入、更新和删除事件的触发器
12
3.2 数据库的创建、打开与使用
本节重点: 数据库的创建方法? 数据库的打开和关闭方法? 数据库的删除方法?
5. 空值支持(NULL)
决定字段是否支持空值。
6. 备注型和通用型
只要表中有这一个这两种类型中的字段,在创建表结构时系统会 自动生成和管理一个相应的备注文件,用于存储备注及通用字段内 容。备注文件的文件名与表文件名相同,其扩展名为.fpt。 21
3.3.2 表结构的创建和修改
1. 表结构的创建 表结构的创建有两种方法: (1)利用“表设计器” 在项目管理器中,选择“自由表”,单击“新建”按钮,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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中。