首页 第3章-数据库与表的创建及使用

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

举报
开通vip

第3章-数据库与表的创建及使用null第三章第三章数据库与表的创建和使用学习要点学习要点数据库的使用 表结构的处理 表记录的处理 索引的使用 参照完整性3.1 数据库概述3.1 数据库概述数据库是一个容器,是许多相关的数据库表及其关系的集合。 例如,一个教学管理信息系统中将涉及到教师、课程、任课、学生、成绩、院系以及教材等实体,可分别用二维表来表示。 数据库中的表并不是彼此独立的,借助于一个公共的字段可以将两张表联系起来,这就建立了一种“关系”。3.1.1 数据库设计的过程3.1.1 数据库设计的过程第1步:确定建立数据库的目的,进行数据需求分...

第3章-数据库与表的创建及使用
null第三章第三章数据库与表的创建和使用学习要点学习要点数据库的使用 表结构的处理 表记录的处理 索引的使用 参照完整性3.1 数据库概述3.1 数据库概述数据库是一个容器,是许多相关的数据库表及其关系的集合。 例如,一个教学管理信息系统中将涉及到教师、课程、任课、学生、成绩、院系以及教材等实体,可分别用二维表来表示。 数据库中的表并不是彼此独立的,借助于一个公共的字段可以将两张表联系起来,这就建立了一种“关系”。3.1.1 数据库 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 的过程3.1.1 数据库设计的过程第1步:确定建立数据库的目的,进行数据需求 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 ; 这有助于确定需要VFP保存哪些信息。 第2步:确定需要的表; 在明确了建立数据库的目的之后,就可以着手把信息分成独立的主题,例如“xs”(学生情况)或“cj”(学生成绩)等。每个主题都可以是数据库中的一个表。3.1.1 数据库设计的过程3.1.1 数据库设计的过程图3-1 教学管理数据库中表与表之间关系示意图院系专业信息 教 师 表 课 程 表 学 生 表 教材信息表 成 绩 表 课程安排表 3.1.1 数据库设计的过程3.1.1 数据库设计的过程第3步:确定表的字段; 确定在每个表中保存哪些信息。在表中,每类信息称为一个字段,浏览表时在表中显示为一列。例如,在xs表中,可以有这样的字段:“学号”、“姓名”、“性别”等。 第4步:确定表之间的关系; 分析每个表,确定一个表中的数据和其它表中的数据有何关系。必要时,可以在表中加入字段或创建一个新表来明确关系。3.1.1 数据库设计的过程3.1.1 数据库设计的过程“一对一”关系 “一对多”关系主关键字外部关键字3.1.1 数据库设计的过程3.1.1 数据库设计的过程“多对多”关系来自xs表的主关键字来自kc表的主关键字多对多纽带表3.1.1 数据库设计的过程3.1.1 数据库设计的过程第5步:设计的优化。 确定了所需要的表、字段和关系之后,应该来研究一下设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,并且检查可能存在的缺陷。3.1.2 数据库的组成3.1.2 数据库的组成数据库表 视图 连接 存储过程3.1.2 数据库的组成3.1.2 数据库的组成1. 表(Table) 表与表之间的关系是数据库管理的主要内容,从属于某一数据库的表,通常也称为“数据库表”。 表与数据库之间的相关性是通过表文件与库文件之间的双向链接实现的。 双向链接包括前链和后链。 3.1.2 数据库的组成3.1.2 数据库的组成前链 保存在数据库文件中 存储有关表文件的路径和文件名信息 指向库表 后链 存放在一张表的表头中 存储有关库文件的路径和文件信息 指向拥有该表的数据库 3.1.2 数据库的组成3.1.2 数据库的组成表与数据库之间的双向链接前链前链前链前链数据库文件后链表文件后链表文件后链表文件后链表文件3.1.2 数据库的组成3.1.2 数据库的组成2. 视图(View) 表视图是一种“虚表”类型,其数据来源于一张或多张表。 视图兼有表和查询的特点。 视图可以分为本地视图和远程视图。3.1.2 数据库的组成3.1.2 数据库的组成3. 连接(Connection) 连接是保存在数据库中的一个定义,它制定了数据源的名称。 ODBC:开放式数据库互连 连接远程数据源的方法 直接访问在机器上注册的ODBC数据源 用“连接设计器”设计自定义连接3.1.2 数据库的组成3.1.2 数据库的组成4. 存储过程(Stored Procedure) 存储过程是保存在数据库中的过程代码的地方。 保存用户自定义函数和过程。 保存参照完整性代码。 打开数据库时,它们便被加载到内存中 。 创建、修改或移去存储过程的方法: “项目管理器” “数据库设计器” MODIFY PROCEDURE 3.1.3 数据字典3.1.3 数据字典数据字典是指存储在数据库中用于描述所管理的表和对象的数据,即关于数据的数据,称为元数据(Meta Data)。 每个数据库带有一个数据库字典。 数据库表可以享受到数据字典的各种功能。 使用数据字典,可以创建字段级规则和记录级规则,保证主关键字字段内容的唯一性。 如果不用数据字典,也可通过编程实现上述功能。3.2 数据库的创建、打开与使用3.2 数据库的创建、打开与使用每创建一个新的数据库都将生成三个文件: 数据库文件(.dbc) 关联的数据库备注文件(.dct) 关联的数据库索引文件(.dcx) 数据库文件并不在物理上包含任何附属对象,仅存储指向表文件的连接指针、数据字典和一些定义。3.2.1 数据库的创建3.2.1 数据库的创建创建数据库可以采用下述方法之一 。 使用“项目管理器” 使用“文件”菜单中的“新建”命令 使用CREATE DATABASE命令3.2.2 数据库的打开与关闭3.2.2 数据库的打开与关闭1、打开数据库 数据库的打开有多种方式 新建的数据库,保存后自动以独占方式打开 打开数据库中的表,系统会自动打开相应的数据库 在项目管理器中选择一个数据库,并单击“修改”按钮,可打开该数据库,并出现数据库设计器窗口。 可以使用命令打开 OPEN DATABASE [DatabaseName] [EXCLUSIVE|SHARED][NOUPDATE] [VALIDATE]打开方式:独占/共享只读方式打开进行数据库有效性检验3.2.2 数据库的打开与关闭3.2.2 数据库的打开与关闭数据库可以同时打开多个 OPEN DATABASE db1 OPEN DATABASE db2 OPEN DATABASE db3 所有打开的数据库中,只有一个是当前数据库。 在打开数据库时,最后一个打开的数据库是当前数据库。3.2.2 数据库的打开与关闭3.2.2 数据库的打开与关闭将其他数据库设置为当前数据库的方法 在“常用”工具栏的数据库下拉列表中选择一个作为当前数据库; 使用SET DATABASE TO 命令将另一个被打开的数据库设置为当前数据库 。 例如:当前系统中有三个数据库(sjk、sjk1、sjk2)处于打开状态,要把sjk设置为当前数据库。 3.2.2 数据库的打开与关闭3.2.2 数据库的打开与关闭方法一: 方法二: SET DATABASE TO sjk 所有打开的数据库当前数据库3.2.2 数据库的打开与关闭3.2.2 数据库的打开与关闭2、检查数据库的有效性 如果用户移动了数据库文件与数据库关联的表文件,则这些文件的相对路径会改变,从而可能破坏用于关联数据库和表的双向链接。链接破坏后,可通过重建链接来更新相对路径信息,以反映文件的新位置。 VALIDATE DATEBASE [RECOVER] [TO PRINTER | TO FILE FileName]更新链接,缺省时仅检查数据库的有效性检查结果信息去向,缺省时在VFP主窗口中显示该命令只能处理以独占方式打开的当前数据库3.2.2 数据库的打开与关闭3.2.2 数据库的打开与关闭3、关闭数据库 从“项目管理器”窗口中,选定要关闭的数据库并选择“关闭”按钮。 使用命令 CLOSE DATABASE:关闭当前数据库 CLOSE DATABASE ALL:关闭所有数据库 CLOSE ALL:关闭所有数据库、表、索引及设计器关闭数据库时,从属于该数据库的表同时被关闭(如果表已被打开)3.2.2 数据库的打开与关闭3.2.2 数据库的打开与关闭4、删除数据库 删除数据库意味着将删除存储在该数据库中的一切信息。如:存储过程、视图、表之间的关系、数据库表的扩展属性等。 使用“项目管理器” 删除数据库的方法 在“项目管理器”中选择待删除的数据库名; 单击“项目管理器”窗口的“移去”按钮,在接下去的提示中选择删除。数据库所包含的数据库表将自动地变为自由表3.3 表的创建与使用3.3 表的创建与使用表:是指存储在磁盘文件中的二维表,一张二维表保存为一个或两个或三个表文件( .DBF/.FPT/.CDX)。 属于某一数据库的表称为“数据库表” ;不属于任何数据库而独立存在的表称为“自由表”。 数据库表除具有自由标的所有特性外,还具有数据库管理的其他特性。 表文件名除必须遵守Windows系统对文件名的约定外,不可用A~J中的单个字母作文件名。3.3.1 表结构概述3.3.1 表结构概述表结构(Structure):存储表记录的一个公共结构。 字段(Field):表中的一列,规定了数据的特征。每张表最多可以有255个字段。 记录(Record):表的一行,多个字段的集合。3.3.1 表结构概述3.3.1 表结构概述1、字段名:用以标识一个字段的名字。 字段名一般要与其对应的实体的属性名相同或相近,以便于记忆。 字段名可以是以字母开头的字母数字串,也可以是汉字。 2、字段的数据类型:说明字段是什么类型的数据。 不同数据类型的表示和运算的方法不一样。3.3.1 表结构概述3.3.1 表结构概述3.3.1 表结构概述3.3.1 表结构概述3、字段宽度:指该字段所能容纳数据的最大字节数。 货币型、日期型、日期时间型和双精度型为8字节。整型、备注型、和通用型为4字节,逻辑型为1字节。 对于包含备注型字段或通用型字段的表,系统会自动生成和管理一个相应的备注文件,用于存储备注内容。备注型的文件主名与表文件的主名相同,其扩展名为.FPT。3.3.1 表结构概述3.3.1 表结构概述在表的备注字段中,仅存储引用信息,指向备注文件中的备注内容。对于通用型字段,字段中仅保存引用信息,指向所管理的数据对象。 小数位数: 数值型、浮点型、双精度型的字段需指定小数据位。 字段宽度=整数部分宽度+小数点1位+小数位宽度 小数位至少比整个字段宽度小1。3.3.1 表结构概述3.3.1 表结构概述4、空值(NULL):用来指示一个字段有或没有数据的标识。 NULL不是一种数据类型,它用来指示数据存在或不存在的一种属性。 通过使用NULL,就有了一个判断某个字段是否具有一个值的 办法 鲁班奖评选办法下载鲁班奖评选办法下载鲁班奖评选办法下载企业年金办法下载企业年金办法下载 。以上这些字段的属性都是一些基本属性,对于数据库表来说还可以设置许多扩展属性3.3.2 利用表设计器创建和修改表结构3.3.2 利用表设计器创建和修改表结构创建和修改表结构的方法主要有两种 利用表设计器 使用命令3.3.2 利用表设计器创建和修改表结构3.3.2 利用表设计器创建和修改表结构1、利用表设计器创建表结构 3.3.2 利用表设计器创建和修改表结构3.3.2 利用表设计器创建和修改表结构2、利用表设计器修改表结构 “项目管理器”中选定要修改的表,然后单击“修改”按钮,打开表设计器。 使用 MOIDFY STRUCTURE 命令打开表设计器。该命令操作的是当前工作区中的表(工作区的概念稍后介绍)3.3.3 字段属性与表属性3.3.3 字段属性与表属性1、字段的扩展属性 数据库表的每个字段除了具有字段名、类型、宽度等基本属性外,还可以设置标题、注释、格式、输入掩码、默认值以及字段的验证规则等扩展属性,以增强其数据管理能力。 这些扩展属性作为数据字典保存在数据库文件中。3.3.3 字段属性与表属性3.3.3 字段属性与表属性首先要先选中要操作的字段字段的扩展属性在此设置3.3.3 字段属性与表属性3.3.3 字段属性与表属性字段的标题(Caption)和注释(Comment):为了增强表的可读性 字段的显示属性:用来指定输入和显示字段时的格式,包括格式(Format)和输入掩码(InputMask),可使用一些字母或字母的组合来表示。3.3.3 字段属性与表属性3.3.3 字段属性与表属性字段的格式 用于指定字段显示时的格式,包括在浏览窗口、表单或报表中显示时的大小写和样式等。 例如:指定xh字段的格式可设置为“T!”,则在输入和显示学号时其前导空格自动被删除,且所有字母均转换为大写字母。 输入掩码 用于指定字段中输入数据的格式。 例如:jbgz字段的输入掩码为“99,999.99”,则在输入基本工资时,系统使用“会计”格式。3.3.3 字段属性与表属性3.3.3 字段属性与表属性(3) 默认值 向一张数据库表中添加记录时,为字段所指定的最初的值成为该字段的默认值。 默认值必须是一个与字段类型相同的表达式。 通过设置适当的字段默认值,可以减少数据的输入工作量。 如果字段设置为允许“Null”,则字段 的默认值可设置为“Null”,否则,字段的默认值不可设置为“Null”。3.3.3 字段属性与表属性3.3.3 字段属性与表属性各数据类型的字段默认值3.3.3 字段属性与表属性3.3.3 字段属性与表属性(4) 字段的有效性规则和有效性信息 字段有效性规则用来控制输入到字段中的数据的取值范围。该规则是一个逻辑表达式,且当前字段包含在该表达式中。该规则在字段值改变时发生作用。 字段有效性信息是一个字符表达式,用于指定在不满足规则要求时显示的确认框中的说明信息。3.3.3 字段属性与表属性3.3.3 字段属性与表属性例1:在CJ表中,要求成绩字段的有效性应为成绩在0~100之间。 cj字段有效性规则可设置为: cj>=0 AND cj<=100 cj字段有效性信息可设置为: “成绩应在0~100之间”3.3.3 字段属性与表属性3.3.3 字段属性与表属性例2:在XS表中,学生的性别只能是“男”或“女”。 xb字段有效性规则可设置为: xb$”男女” xb字段有效性信息可设置为: “性别只能是男或女”3.3.3 字段属性与表属性3.3.3 字段属性与表属性(5) 字段的默认控件类 设置“匹配字段类型到类”属性,指定与该字段相应的控件。 作用是指定使用“表单向导”生成表单或从数据环境中将字段拖放到表单上时,与该字段相应的控件类(第6章)。3.3.3 字段属性与表属性3.3.3 字段属性与表属性2、数据库表的属性 数据库表还可以为表设置一些属性,如长表名、记录验证、触发器等。 这些扩展属性作为数据字典保存在数据库文件中。 表属性可以通过在表设计器的“表”页面中设置。3.3.3 字段属性与表属性3.3.3 字段属性与表属性设置表属性长表名记录验证触发器3.3.3 字段属性与表属性3.3.3 字段属性与表属性长表名与表注释 数据库表及自由表的表名最大长度为128个字符。 数据库表如果设置了长表名属性,则该表在项目管理器等窗口中均以长表名代替原表名(即文件名)。 在打开数据库表时,长表名与文件名均可以使用。 表注释是表的说明信息。使用长表名打开表时,数据库必须打开且为当前数据库; 使用表文件名打开表时,如果所属数据库未打开,系统会自动打开数据库3.3.3 字段属性与表属性3.3.3 字段属性与表属性(2) 记录有效性规则和信息 记录验证包括记录有效性规则和有效性信息,用于定义记录级校验规则及相应的提示信息。 字段有效性规则仅对当前字段有效,而记录有效性规则可以校验多个字段之间的关系是否满足某种规则。 记录有效性规则为一个逻辑表达式,记录有效性信息为一个字符表达式。 在记录指针改变或关闭“浏览”窗口时激活。3.3.3 字段属性与表属性3.3.3 字段属性与表属性例:在JS表中,要求参加工作的年龄满18岁(包括18岁)。 记录有效性规则可设置为: YEAR(gzrq)-YEAR(csrq)>=18 记录有效性信息可设置为: “满18岁才可参加工作”3.3.3 字段属性与表属性3.3.3 字段属性与表属性(3) 表的触发器 触发器是绑定在表上的逻辑表达式,当表中的任何记录被指定的操作命令修改时发生。 触发器是表在插入、更新或删除记录是进行的校验规则,有如下三种: 插入触发器:向表中插入或追加记录时触发。 更新触发器:在表中修改记录时触发。 删除触发器:在表中删除记录时触发。 触发器的返回值如果为.T.,则允许执行相应的操作,否则不允许。3.3.3 字段属性与表属性3.3.3 字段属性与表属性触发器可以在“表设计器”中设置,也可以用CREATE TRIGGER命令来创建,语法格式如下: CREATE TRIGGER ON 表名 FOR DELETE︱ INSERT︱ UPDATE AS 触发器规则 例1:在kc表中创建一个删除触发器以防止删除记录,可用如下命令: CREATE TRIGGER ON kc FOR DELETE AS .F.3.3.3 字段属性与表属性3.3.3 字段属性与表属性删除表的触发器时,可以在“表设计器”中进行,也可以用DELETE TRIGGER命令: DELETE TRIGGER ON 表名 FOR DELETE ︱ INSERT︱ UPDATE 例2:删除例1中kc表中的删除触发器,可用如下命令: DELETE TRIGGER ON kc FOR DELETE3.3.3 字段属性与表属性3.3.3 字段属性与表属性数据库表的字段级有效性规则、记录级有效性规则以及表的触发器,为数据的输入和修改等操作实施了约束。 字段级和记录级规则能够控制输入到表中的信息,而不管数据是通过“浏览”窗口、表单,还是以编程方式来访问的。 建立在数据库中的规则可以对表的所有用户实施,而不理会应用程序的要求。3.3.3 字段属性与表属性3.3.3 字段属性与表属性约束机制及其激活时机3.3.4 表的打开与关闭3.3.4 表的打开与关闭表使用前必须打开。 表的打开可以是显式地打开,也可以是隐式地打开。 显式地打开,是指用户利用菜单等界面操作方法,或USE命令直接打开表; 隐式地打开,是指在执行某些操作时系统会自动地打开相应的表。3.3.4 表的打开与关闭3.3.4 表的打开与关闭1. 工作区 工作区是指用以标识一个打开表的区域。 每个工作区有一个编号,称为工作区号。其编号范围为1~32747(前10个工作区号也可以用字母A~J表示)。 如果某工作区中已有表打开,可以用表的“别名”作为工作区号。 一个工作区中只能打开一个表;一个表可以在多个工作区中被多次打开。3.3.4 表的打开与关闭3.3.4 表的打开与关闭工作区中表的别名 表的别名是对工作区中打开的表的一个临时标识。 定义表的别名 打开表时指定别名,用USE命令。 USE xs ALIAS student 如果在打开表时没有指定别名,则系统默认用表文件名作为别名。 SELECT 2 USE js3.3.4 表的打开与关闭3.3.4 表的打开与关闭当前工作区 VFP正在使用的工作区称为当前工作区。使用SELECT命令选择某工作区号为当前工作区号。   命令格式: SELECT nWorkArea | cTableAlias   SELECT 1 SELECT js 用函数SELECT(0)(0 可省略)测试当前工作区号。 用ALIAS( )函数测试当前指定工作区中表的别名。 ?ALIAS(2) 状态栏中可显示当前工作区中表的别名。3.3.4 表的打开与关闭3.3.4 表的打开与关闭选择工作区 在“数据工作期”窗口中设置。 使用命令 SELECT nWorkArea | cTableAlias SELECT 2 SELECT JS 操作非当前工作区中的表 将所在工作区设置为当前工作区 在命令中强行指定工作区 命令 IN 工作区|别名 USE CJ IN 3 SELECT 0:选择未使用最小编号的工作区3.3.4 表的打开与关闭3.3.4 表的打开与关闭2. 数据工作期窗口 数据工作期是当前数据动态工作环境的一种表示。 每一个工作期包含有自己的一组工作区,这些工作区含有打开的表、表索引和关系。 通过菜单命令“窗口/数据工作期”或常用工具栏上的“数据工作期”按钮打开“数据工作期”窗口。 通过该窗口,用户可以选择、查看数据工作期以及所选数据工作期中的工作区使用情况、表打开情况等,并且可以进行有关表的一些操作。3.3.4 表的打开与关闭3.3.4 表的打开与关闭“数据工作期”窗口当前工作区的使用情况工作期中所有的关系对表的相关操作当前工作期中所有打开表的别名当前工作区中打开的表3.3.4 表的打开与关闭3.3.4 表的打开与关闭3. 表的打开 (1) 通过界面操作打开表 用菜单 “文件打开”,打开表在当前工作区中。 在 “数据工作期”窗口中打开,则指定的表在当前未被使用的最小工作区中打开,且当前工作区不变。 在“项目管理器”窗口中打开,表在当前未被使用的最小工作区中打开,且该工作区为当前工作区。注意三种界面方式打开的工作区不同3.3.4 表的打开与关闭3.3.4 表的打开与关闭 (2) 使用命令打开表 语法格式: USE TableName [IN nWorkArea|cTableAlias] [AGAIN] [ALIAS cTableAlias] [NOUPDATE] 指定表在哪个工作区中打开,缺省表示在当前工作区中打开。说明表再次打开 (该表已在某工作区中被打开)。定义表的别名,缺省时表的别名一般与表名相同。表打开后不允许修改结构和数据。3.3.4 表的打开与关闭3.3.4 表的打开与关闭例: CLOSE TABLES ALL USE xs ? SELECT(0) ? ALIAS(1) SELECT 2 USE cj ? SELECT(0) USE js ALIAS teacher IN 6 ? SELECT(0) ? SELECT(“teacher”) ? ALIAS(6) USE xs IN 0 AGAIN NOUPDATE ? SELECT( ) ? SELECT(“C”) ? ALIAS(3) USE xs AGAIN IN 15 ? ALIAS(15) ? SELECT( ) 3.3.4 表的打开与关闭3.3.4 表的打开与关闭表的别名是对工作区中打开的表的一个临时标识,可用于引用工作区和工作区中的表。 在应用程序中,工作区通常通过使用该工作区的表的别名来标识。 在打开表时如果未利用ALIAS子句指定别名,则别名与表名相同,但如果一张表同时在多个工作区中打开且均未指定别名,则在第一次打开的工作区中,别名与表相同,其他工作区中用A~J以及W11~W32767。 当前表打开的情况以及表的别名等,可在“数据工作期”窗口中查看。3.3.4 表的打开与关闭3.3.4 表的打开与关闭4. 表的关闭 (1) 通过界面操作 在“数据工作期”窗口中选定一个表的别名,单击“关闭”按钮。 (2) 使用命令 可以使用不带表名的USE命令关闭表 USE [IN 工作区号|别名]使用IN子句关闭指定工作区中的表, 缺省时关闭当前工作区中的表。3.3.4 表的打开与关闭3.3.4 表的打开与关闭例: CLOSE TABLES ALL USE xs USE cj IN 2 USE &&关闭当前工作区中的表 USE IN 2 &&关闭2号工作区中的表 关闭所有工作区中的表 CLOSE ALL、CLOSE DATABASE、 CLOSE TABLES ALL、QUIT 3.3.4 表的打开与关闭3.3.4 表的打开与关闭5. 表的独占与共享 独占打开:一张表只能被一个用户打开。 共享打开:一张表可被多个用户同时打开。 默认状态下,表是以独占方式打开的。默认打开方式的设定: “选项”对话框 SET EXCLUSIVE ON|OFF 可以打开表时指定打开方式: USE xs SHARED:以共享方式打开表XS USE JS EXCLUSIVE:以独占方式打开表JS一张表同时被打开多次时,只以第一次打开的方式为准。3.3.5 记录的处理3.3.5 记录的处理记录的输入 记录的浏览 记录的筛选 记录的定位 记录的修改 记录的删除 记录的复制3.3.5 记录的处理3.3.5 记录的处理1. 记录的输入 (1) 表结构创建后立即输入记录 (2) 在浏览窗口中追加记录 浏览表有多种操作方法: 利用菜单命令“显示” “浏览”,可以打开当前工作区中表的浏览窗口; 在“数据工作期”窗口中选择“表”,单击“浏览”,可以打开所选表(该表已被打开)的浏览窗口; 在项目管理器窗口中选择需要浏览的表,单击窗口中的“浏览”按钮。3.3.5 记录的处理3.3.5 记录的处理在表处于浏览状态,追加记录的方法: 利用菜单命令“表”  “追加新记录”,可向表的末尾追加一条新记录,处于编辑状态等待用户输入数据; 利用菜单命令“显示”  “追加方式”,可向表的末尾追加一条新记录,当用户输入数据后,系统会自动继续追加新记录,如此反复。 表的浏览窗口与编辑窗口相互之间可以进行切换,其操作方法是利用菜单命令“显示” “浏览”与“显示” “编辑”。3.3.5 记录的处理3.3.5 记录的处理xs表的浏览窗口xs表的编辑窗口3.3.5 记录的处理3.3.5 记录的处理 (3) 使用INSERT-SQL命令追加记录 可以向表中追加一条记录。命令格式如下: INSERT INTO 表名 [(字段1[,字段2…])]; VALUES (表达式1[,表达式2…])字段名列表用于指定新记录的哪些字段需要填值,缺省表示全部字段。表达式列表指定新插入记录的字段值。如果指定了字段名列表,则表达式列表必须与之对应, 否则表达式列表必须按照表结构定义字段的顺序来指定字段值。3.3.5 记录的处理3.3.5 记录的处理例1: INSERT INTO xs (xh,,xm,xb); VALUES (“990201”,”李林”,“男”) 例2: INSERT INTO cj VALUES(“990201”,”01”,78) 追加到表的记录,总在表的最后一条。3.3.5 记录的处理3.3.5 记录的处理 (4) 使用APPEND与APPEND FROM命令追加记录 使用APPEND命令可以向表中追加空记录。命令格式如下: APPEND [BLANK] [IN nWorkArea|cTableAlias]向表中追加一条空记录,缺省时系统向表中追加一个空记录,并打开表的编辑窗口以等待用户输入该记录的数据。3.3.5 记录的处理3.3.5 记录的处理使用APPEND FROM命令可以将其他文件(表文件、文本文件、Excel文件等)中的数据导入到当前工作区中的表。 命令格式如下: APPEND FROM FileName [FIELDS FieldList] ; [For lExpression] [DELIMITED| XLS] DELIMITED:追加文本文件 XLS:追加Excel文件 缺省:追加表文件3.3.5 记录的处理3.3.5 记录的处理例: CLOSE TABLES ALL USE XS1 SELECT 2 USE XS2 APPEND FROM XS1 USE XS APPEND FROM XS XLS3.3.5 记录的处理3.3.5 记录的处理APPEND FROM命令的功能也可以通过界面操作来完成。当表处于浏览状态时,利用菜单命令“表” “追加记录”可打开“追加来源”对话框。 3.3.5 记录的处理3.3.5 记录的处理 (5) 备注型字段与通用型字段的数据输入 在浏览窗口中,备注型字段显示“memo”(表示无内容)或“Memo”(表示有内容);通用型字段显示“gen”(表示无内容)或“Gen”(表示有内容)。 为备注型字段输入数据的操作步骤是:将光标移动到相应的备注型字段,按+组合键或双击备注型字段,在出现的编辑窗口中输入备注,结束时关闭编辑窗口。 为通用型字段输入数据的操作步骤是:将光标移动到相应的通用型字段,按+组合键或双击通用型字段,在出现编辑窗口后利用菜单命令“编辑” “插入对象”插入其内容,结束时关闭编辑窗口。3.3.5 记录的处理3.3.5 记录的处理2. 浏览窗口 浏览当前工作区中的表,除了界面操作方法外,还可以使用BROWSE命令。 命令格式如下: BROWSE [FIELDS FieldList] [FOR lExpression] ; [FREEZE FieldName] [NOAPPEND] [NODELETE] ; [NOMODIFY] [TITLE cExpression] 3.3.5 记录的处理3.3.5 记录的处理FOR子句用于筛选记录,仅有满足条件的记录在浏览窗口中显示。 字符型 浏览教师表中“男”教师的信息。 USE js Browse for xb=“男” 数值型 浏览教师表中工龄超过5年的教师信息。 USE js Browse for gl>53.3.5 记录的处理3.3.5 记录的处理日期型 浏览教师表中1971年以后出生的教师信息。 USE js Browse for year(csrq)>19713.3.5 记录的处理3.3.5 记录的处理逻辑型 浏览课程表中所有必修课的课程信息。 USE kc Browse for bxk 浏览课程表中所有非必修课的课程信息。 USE kc Browse for not bxk3.3.5 记录的处理3.3.5 记录的处理FIELDS子句用于指定浏览窗口中出现的字段,各字段名之间用逗号分隔,缺省时表示所有字段。 FREEZE子句用于指定可以修改的字段,其他字段的数据不可修改。 NOAPPEND指定不可追加记录。 NODELETE指定不可删除记录。 NOMODIFY指定不可修改记录,但可追加或删除记录。 TITLE子句指定浏览窗口的标题,缺省时为表名。3.3.5 记录的处理3.3.5 记录的处理浏览XS表中所有男同学的xh,xm,xb信息,并指定不修改记录,浏览窗口的标题为“男学生”。 USE xs BROWSE FIELDS xh,xm,xb FOR xb=‘男’ ; NOMODIFY TITLE “男学生” 3.3.5 记录的处理3.3.5 记录的处理3. 记录的筛选   指从表中选出满足指定条件的记录,不满足条件的记录则被“隐藏”。 界面方式: 在“工作区属性” 对话框中“数据过 滤器”文本框中输 入条件。3.3.5 记录的处理3.3.5 记录的处理命令方式: SET FILTER TO [条件表达式 ] 条件表达式用于指定记录需要满足的条件,缺省时表示所有记录(即取消筛选)。例:从xs表中筛选女学生的学号和姓名信息,而且表浏览窗口的标题为“女学生”。 CLOSE TABLES ALL USE xs SET FILTER TO xb=‘女’ BROWSE FIELDS xh , xm TITLE ‘女学生’3.3.5 记录的处理3.3.5 记录的处理4. 限制对字段的访问   在浏览或使用表时,只需要显示或处理表中的部分字段。 界面方式: 在“工作区属性” 对话框中通过“字 段筛选”对话框来 设置。3.3.5 记录的处理3.3.5 记录的处理命令方式: SET FIELD ON:只能访问出现在字段列表中的字段 SET FIELD OFF:可访问所有字段(默认) SET FIELD TO [字段列表]:指定可访问字段名称 例:从xs表中筛选女学生的学号和姓名信息,而且表浏览窗口的标题为“女学生”。 CLOSE TABLES ALL USE xs SET FIELD TO xh , xm BROWSE FOR xb=‘女’ TITLE ‘女学生’3.3.5 记录的处理3.3.5 记录的处理5. 记录的定位 当用户向表中输入数据时,系统为每个记录按输入顺序指定了“记录号”。第一个输入的记录,其记录号为1,依此类推。 (1) 记录指针 系统在打开一个表文件后将自动生成三个控制标志:记录开始标志、记录指针标志、记录结束标志。 3.3.5 记录的处理3.3.5 记录的处理记录开始标志 记录指针记录结束标志当前记录 BOF( )RECNO( ) EOF( )3.3.5 记录的处理3.3.5 记录的处理记录指针是VFP系统内部的一个指示器,在表中指向记录。 每当打开一个表文件时,指针总是指向第1条记录。 测试当前记录用函数RECNO( )。其最小值为1,最大值为RECCOUNT( )+1, RECCOUNT( ) 是表记录总数。 记录指针是否指在记录的有效范围内,可以用BOF( )函数和EOF( )函数进行测试。 当记录指针指向记录开始标志时,BOF( )函数的值为.T.,否则为.F.; 当记录指针指向记录结束标志时,EOF( )函数的值为.T.,否则为.F.。3.3.5 记录的处理3.3.5 记录的处理根据一张表打开后,未作记录指针引动操作时,RECNO( )、BOF( ) 和EOF( )函数的值可以判断表中是否有记录。3.3.5 记录的处理3.3.5 记录的处理 (2) 记录的定位 记录指针的绝对定位:把指针移动到指定的位置。 GO/GOTO n:当n大于记录总数时将拒绝移动。 GO TOP &&记录指针移动到第一条记录 GO BOTTOM &&记录指针移动到最后一条记录 GOTO 6 &&记录指针移动到记录号6的记录 记录指针的相对定位: 把指针从当前位置开始,相对于当前记录向前或向后移动若干条记录位置。 SKIP [n]:n>0向文件尾方向;n<0向文件头方向。 SKIP 2 &&记录指针下移2条记录 SKIP -2 &&记录指针上移2条记录3.3.5 记录的处理3.3.5 记录的处理记录的条件定位:按照一定的条件自动地在整张表(或某个指定范围)中查找符合该条件的记录。如果找到符合该条件的记录,则把指针定位到该记录上,否则,指针将定位到整张表(或表的指定范围)的未尾。 LOCATE FOR 条件表达式 [范围 ] LOCATE FOR xm= “王一平 ” &&记录指针指向到姓名为“王一平”的记录或表的结尾3.3.5 记录的处理3.3.5 记录的处理通过界面操作方式定位 当表处于浏览状态时,记录定位可以利用菜单命令“表/转到记录/……”进行,也可以直接在浏览窗口中通过鼠标操作或键盘上的光标移动键操作。 3.3.5 记录的处理3.3.5 记录的处理“记录定位”对话框一些子项的含义 范围 ALL:全部记录 Next n:从当前记录开始 的N个记录 Record n:指定第n个记录 Rest:从当前记录及其后的 所有记录 条件 FOR:在整个表中对所有满足条件的记录操作3.3.5 记录的处理3.3.5 记录的处理例: Use xs ? BOF( ) ? EOF( ) ? RECNO( ) Go 3 ? RECNO( ) SKIP 4 ? RECNO( )已知XS表中的总记录数为20。 Go 20 ? BOF( ) ? EOF( ) ? RECNO( ) SKIP ? EOF( ) ? RECNO( ) SKIP SKIP-20 ? BOF( ) ? RECNO( ) SKIP -1 ? BOF( ) ? RECNO( ) SKIP -1出现系统提示已到文件尾出现系统提示已到文件头3.3.5 记录的处理3.3.5 记录的处理6. 记录的修改 一个表只要不是只读方式打开,就可以对其记录进行编辑和修改。 对少量的记录直接在浏览窗口中修改。 批量记录(有规律)的修改 (1) 界面方式的记录修改 在表的浏览状态下,利用菜单命令“表” “替换字段”,打开“替换字段”对话框。 例:将gz表中基本工资(jbgz)少于1000元的上浮10%。3.3.5 记录的处理3.3.5 记录的处理12433.3.5 记录的处理3.3.5 记录的处理 (2) 使用命令修改记录 UPDATE-SQL命令 UPDATE 表名 SET 字段1=表达式1[,字段2=表达式2…] ; [WHERE 条件表达式] 要更新的记录,缺省时表示所有记录。用SQL命令时,不需要先用USE命令打开表。 例:将js表中所有工龄满30年(假设不考虑月日)的教师的基本工资加300。 UPDATE JS SET JBGZ=JBGZ+300 ; WHERE YEAR(DATE())-YEAR(gzrq)>293.3.5 记录的处理3.3.5 记录的处理REPLACE命令 REPLACE FileName1 WITH eExpression1 [ADDITIVE] ; [, FileName2 WITH eExpression2 [ADDITIVE] … ; [Scope] [FOR l lExpression] 修改当前工作区打开的表例:将js表中所有工龄满30年(假设不考虑月日)的教师的基本工资加300。 CLOSE TABLES ALL USE JS REPLACE JBGZ WITH JBGZ=JBGZ+300 ; FOR YEAR(DATE())-YEAR(gzrq)>29指定要更新的记录,FOR子句和范围均缺省时表示仅对当前一条记录进行替换。3.3.5 记录的处理3.3.5 记录的处理7. 记录的删除与恢复 删除记录分两步 做删除标记 彻底删除带标记的记录 (1) 标记要删除的记录 为需要删除的记录加注删除标记,但这些记录并没有从表中真正被删除。因此,这种删除也称为记录的逻辑删除。 3.3.5 记录的处理3.3.5 记录的处理删除标记列加注了删除标记少量记录删除标记的切换可以通过鼠标单击来实现3.3.5 记录的处理3.3.5 记录的处理界面方式下做删除标记 在某一范围内删除一组符合特定条件的记录,可以通过菜单命令“表” “删除记录”,打开“删除”对话框。 3.3.5 记录的处理3.3.5 记录的处理使用DELETE命令做删除标记 DELETE [Scope] [FOR lExpression] ; [IN nWorkArea | cTableAlias] 用于指定加注删除标记的表,缺省时操作当前工作区中的表。无范围、无条件表达式时,表示仅对当前记录加注删除标记;有条件表达式但无范围时,范围为ALL。3.3.5 记录的处理3.3.5 记录的处理使用DELETE-SQL命令做删除标记 DELETE FROM TableName [WHERE lExpression]例:为js表中所有年龄超过60岁的教师的记录加注删除标记。 CLOSE TABLES ALL USE JS DELETE FOR (YEAR(DATE())-YEAR(csrq)>60 DELETE FROM JS WHERE ( DATE( )-csrq )/365>60 3.3.5 记录的处理3.3.5 记录的处理 (2) 恢复带删除标记的记录 即取消记录的删除标记。 界面方式下恢复记录 在某一范围内恢复符合指定条件的记录,可以通过菜单命令“表” “恢复记录”,打开“恢复记录”对话框。3.3.5 记录的处理3.3.5 记录的处理使用RECALL命令恢复记录 RECALL [Scope] [FOR lExpression]无范围、无条件表达式时,表示仅恢复当前记录;有条件表达式但无范围时,范围为ALL。例: RECALL &&恢复当前记录 RECALL ALL &&恢复所有记录 RECALL ALL FOR XB=“男” &&恢复所有性别为“男”的记录3.3.5 记录的处理3.3.5 记录的处理 (3) 彻底删除记录 对于在当前工作区中打开的表,若已有记录加注了删除标记,则可以将具有删除标记的记录彻底删除。这种删除是不能被恢复的,因此也称为“物理删除”。 界面方式下进行物理删除 表处于浏览状态,可以通过菜单命令“表” “彻底删除” 。 使用命令进行物理删除 PACK &&彻底删除带删除标记的记录 ZAP &&不管记录是否有删除标记,表中所有的记录都删除,只留下表结构。3.3.5 记录的处理3.3.5 记录的处理 例: PACK CLOSE TABLES ALL USE JS DELETE FOR SUBSTR(XH,1,2)=“01” PACK PACK和ZAP命令都需要操作的当前工作区中的表以独占方式打开。3.3.5 记录的处理3.3.5 记录的处理 (4) 对带删除标记的记录的访问 SET DELETE ON|OFF ON:忽略标有删除标记的记录 OFF:(系统默认值)允许访问标有删除标记的记录。 例:USE XS DELETE NEXT 3 SET DELETE ON BROWSE ? RECCOUNT( ) 使用DELETE( )函数可测试当前记录是否有删除标记,该函数无参数。3.3.5 记录的处理3.3.5 记录的处理8. 数据的复制 利用COPY TO命令可以将(在当前工作区中已打开)中的数据复制到其他表文件或其他类型的文件中。 COPY TO FileName [FIELDS FieldList] [Scope] ; [FOR lExpression] [ [ SDF | XLS |DELIMITED; [WITH Delimiter | BLANK |TAB ] ] ] 例: CLOSE TABLES ALL USE xs COPY TO XS01 FOR XB=“女” COPY TO XS01 FLELDS xh,xm SDF COPY TO XS01 XLS 3.3.6 索引的创建与使用3.3.6 索引的创建与使用索引概述 记录的顺序 物理顺序: 表中记录的存储顺序。 按记录输入的时间顺序存放。 逻辑顺序: 记录的处理顺序。 对记录按某个(些)字段的值进行排序。3.3.6 索引的创建与使用3.3.6 索引的创建与使用索引的功能 根据“索引表达式”的值进行记录的逻辑排序。索引并不改变表中记录的物理顺序。 索引机制 建立一个逻辑顺序号与原表物理顺序记录号的对照表,并把对照表保存到一个文件中。 索引文件 对照表存放的文件。一个索引文件中可存放该表的多个索引。3.3.6 索引的创建与使用3.3.6 索引的创建与使用索引名(Index) 又叫索引标识、TAG,标记一个索引的名称。 索引关键字(Index Key) 是建立索引的依据,通常是一个字段或多个字段组成的表达式。 例: 学生表(xs.dbf)输入时的物理顺序; 以xh为索引关键字,按升序建立索引,索引文 件的情况。3.3.6 索引的创建与使用3.3.6 索引的创建与使用 表的记录号 8 7 1 5 6 4 3 2关键字的值 030302 030307 030405 030502 030503 030504 030505 0305063.3.6 索引的创建与使用3.3.6 索引的创建与使用2. 索引文件类型 结构复合索引文件(扩展名为.CDX) 结构复合索引的主文件名与表文件名相同,在创建时系统自动给定,结构复合索引文件自动地与表同步打开、更新和关闭。3.3.6 索引的创建与使用3.3.6 索引的创建与使用非结构复合索引(扩展名为.CDX) 非结构复合索引文件的文件名与表名不同。非结构复合索引文件不随着表的打开而自动打开,要用专门的命令打开。 独立索引文件(扩展名为.IDX) 文件名用户自定,独立索引文件也不随着表的打
本文档为【第3章-数据库与表的创建及使用】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_517680
暂无简介~
格式:ppt
大小:1MB
软件:PowerPoint
页数:0
分类:计算机考试
上传时间:2011-09-25
浏览量:21