有关数据库及其对象的常用函数.ppt

上传人:小飞机 文档编号:4981944 上传时间:2023-05-27 格式:PPT 页数:114 大小:780KB
返回 下载 相关 举报
有关数据库及其对象的常用函数.ppt_第1页
第1页 / 共114页
有关数据库及其对象的常用函数.ppt_第2页
第2页 / 共114页
有关数据库及其对象的常用函数.ppt_第3页
第3页 / 共114页
有关数据库及其对象的常用函数.ppt_第4页
第4页 / 共114页
有关数据库及其对象的常用函数.ppt_第5页
第5页 / 共114页
点击查看更多>>
资源描述

《有关数据库及其对象的常用函数.ppt》由会员分享,可在线阅读,更多相关《有关数据库及其对象的常用函数.ppt(114页珍藏版)》请在三一办公上搜索。

1、新编Visual FoxPro 教程,江南大学太湖学院机电系计算机教研室 2011年2月,江苏省普通高校计算机等级考试指定教材,江南大学太湖学院机电系计算机教研室,第3章 数据库与表的创建和使用,3.1 数据库概述3.2 数据库的创建、打开和使用3.3 表的创建和使用3.4 永久性关系与参照完整性3.5有关数据库及其对象的常用函数,第3章 数据库与表的创建和使用,3.1 数据库概述,数据库是一个容器,是许多相关的数据库表及其关系的集合。例如,一个教学管理信息系统中将涉及到教师、课程、任课、学生、成绩、系以及专业等实体,可分别用二维表来表示(如图所示)。数据库中的表并不是彼此独立的,借助于一个公

2、共的字段可以将两张表联系起来,这就建立了一种“关系”。,3.1 数据库概述,一、数据库设计的步骤:1、确定建立数据库的目的,进行数据的需求分析2、确定需要的各种表3、确定表的字段4、确定表之间的关系5、设计的优化,二、VFP数据库的组成,数据库表视图连接存储过程,3.1 数据库概述,二、VFP数据库的组成1、数据库表 数据库表与数据库之间的相关性是通过它们之间的双向链接实现的。前链保存在数据库文件中 存储有关表文件的路径和文件名信息 指向库表 后链存放在一张表的表头中 存储有关库文件的路径和文件信息 指向拥有该表的数据库,3.1 数据库概述,二、VFP数据库的组成2、视图(View)视图是一种

3、“虚表”类型,其数据来源于一张或多张表。视图兼有表和查询的特点。视图可以分为本地视图和远程视图。详细内容将在下一章介绍。,3.1 数据库概述,二、VFP数据库的组成3、连接(Connection)连接是保存在数据库中的一个定义,它制定了数据源的名称。ODBC:开放式数据互连连接远程数据源的方法直接访问在机器上注册的ODBC数据源用“连接设计器”设计自定义连接,3.1 数据库概述,二、VFP数据库的组成4、存储过程 存储过程是保存在数据库中的过程代码的地方保存用户自定义函数和过程。保存参照完整性代码。打开数据库时,它们便被加载到内存中。创建、修改或移去存储过程的方法:“项目管理器”“数据库设计器

4、”MODIFY PROCEDURE,3.1 数据库概述,三、VFP数据字典概述,数据字典是指存储在数据库中用于描述所管理的表和对象的数据,即关于数据的数据。这些数据称为元数据。每个数据库都带有一个数据库字典。数据库表可以享受到数据字典的各种功能。使用数据字典,可以创建字段级规则和记录级规则,保证主关键字字段内容的唯一性。如果不用数据字典,也可通过编程实现上述功能。,3.1 数据库概述,数据字典可创建、指定的内容表中字段的标题、注释、默认值、输入掩码和显示格式,以及表单中使用的默认控件类等。表的主索引关键字。数据库表之间的永久性关系。长表名和表注释。字段级和记录级有效性规则。存储过程。插入、更新

5、和删除事件的触发器。,3.1 数据库概述,一、数据库的创建每创建一个新的数据库都将生成三个文件:数据库文件(.dbc)关联的数据库备注文件(.dct)关联的数据库索引文件(.dcx)数据库文件并不在物理上包含任何附属对象,仅存储指向表文件的路径指针。,3.2 数据库的创建、打开和使用,一、数据库的创建创建数据库可以采用下述方法之一。使用“项目管理器”使用“文件”菜单中的“新建”命令使用命令 CREATE DATABASE 数据库|?,3.2 数据库的创建、打开和使用,二、数据库的使用,1、打开数据库2、设置当前数据库3、检查数据库的有效性4、关闭数据库5、删除数据库,3.2 数据库的创建、打开

6、和使用,1、打开数据库 使用菜单“文件”/“打开”/指定数据库文件名使用Open Database命令 格式:Open Database Databasename Exclusive|Shared Noupdate 说明:Exclusive:指定以独占方式打开数据库。Shared:指定以共享方式打开数据库。Noupdate:以只读方式打开数据库。,3.2 数据库的创建、打开和使用,1、打开数据库 数据库可以同时打开多个OPEN DATABASE db1OPEN DATABASE db2OPEN DATABASE db3,3.2 数据库的创建、打开和使用,2、设置当前数据库 所有打开的数据库中,

7、只有一个是当前数据库。在打开数据库时,最后一个打开的数据库是当前数据库。将其他数据库设置为当前数据库“常用”工具栏的数据库下拉列表SET DATABASE TO 数据库名,3.2 数据库的创建、打开和使用,3、检查数据库的有效性 如果数据库和表文件的双向链接被破坏后,可重新链接,更新相对路径信息以反映文件的新位置。重建链接用VALID DATABASE RECOVER命令打开表,系统显示“打开”对话框进行重新定位,只能处理以独占方式打开的当前数据库,3.2 数据库的创建、打开和使用,4、关闭数据库 从“项目管理器”窗口中,选定要关闭的数据库并选择“关闭”按钮。,3.2 数据库的创建、打开和使用

8、,4、关闭数据库 使用命令CLOSE DATABASE:关闭当前数据库CLOSE DATABASE ALL:关闭所有数据库CLOSE ALL:关闭所有数据库、表、索引及设计器关闭已打开的数据库jxsjSET DATABASE TO jxsjCLOSE DATABASE,3.2 数据库的创建、打开和使用,5、删除数据库 删除数据库意味着将删除存储在该数据库中的一切信息。如:存储过程、视图、表之间的关系、数据库表的扩展属性等。使用“项目管理器”删除一个数据库的方法在“项目管理器”中选择待删除的数据库名;单击“项目管理器”窗口的“移去”按钮,在接下去的提示中选择删除。,3.2 数据库的创建、打开和使

9、用,表:是指存储在磁盘文件中的二维表,一张二维 表保存为13个表文件。(.DBF/.FPT/.CDX)(表、表备注、复合索引)在VFP中表分为两种类型:属于某一数据库的表称为“数据库表”;不属于任何数据库而独立存在的表称为“自由表”。,3.3 表的创建与使用,字段(Field):表中的一列,规定了数据的特征。每张表最多可以有255个字段。记录(Record):表的一行,多个字段的集合。注意:表文件名除必须遵守Windows系统对文件名的约定外,不可用AJ中的单个字母作文件名。,3.3 表的创建与使用,一、表结构概述,1、表结构(Structure):存储表记录的一个公共结构,主要指表的字段及其

10、属性。2、字段名:用以标识一个字段的名字。字段名一般要与其对应的实体的属性名相同或相近,以便于记忆。字段名可以是以字母开头的字母数字串,也可以是汉字。3、字段的数据类型:说明字段是什么类型的数据。不同数据类型的表示和运算的方法不一样。见下表:,3.3 表的创建与使用,表字段的基本数据类型,3.3 表的创建与使用,3、字段宽度:指该字段所能容纳数据的最大字节数。货币型、日期型、日期时间型和双精度型为8字节。整型、备注型、和通用型为4字节。逻辑型为1字节。,3.3 表的创建与使用,3、字段宽度:对于包含备注型字段或通用型字段的表,系统会自动生成和管理一个相应的备注文件,用于存储备注内容。备注型的文

11、件主名与表文件的主名相同,其扩展名为.FPT。在表的备注字段中,仅存储引用信息,指向备注文件中的备注内容。同样,对于通用型字段,字段中也仅保存引用信息,指向所管理的数据对象。,3.3 表的创建与使用,4、小数位数:数值型、浮点型、双精度型的字段需指定小数据位。字段宽度=整数部分宽度+小数点1位+小数位宽度小数位至少比整个字段宽度小1。,3.3 表的创建与使用,5、空值(NULL)用来指示一个字段有或没有数据的标识。NULL不是一种数据类型,它用来指示数据存在或不存在的一种属性。,3.3 表的创建与使用,1、用“表设计器”创建表结构,二、表结构创建,3.3 表的创建与使用,2、用CREATE T

12、ABLE-SQL命令创建表结构 基本语法格式:CREATE TABLE|DBF 表文件名(字段名1 字段类型(字段宽度,小数位数),字段名2 字段类型(字段宽度,小数位数))CREATE TABLE xs(xh c(6),xm c(8),xb c(2),csrq D NULL),二、表结构创建,命令字,表文件名,字段名,类型和宽度,使用NULL值,对于一些宽度固定的字段类型,宽度不用标出。,注意:当设置表的字段可以接受NULL值时,该表最多只能有254个字段。,3.3 表的创建与使用,1、用表设计器修改表的结构在“项目管理器”中使用“修改”按钮MODIFY STRUCTURE命令,三、表结构的

13、修改,3.3 表的创建与使用,2、ALTER TABLE-SQL命令修改表的结构 基本语法格式:ALTER TABLE 表文件名 ADD|ALTER COLUMN字段名 字段类型(字段宽度,小数位数)ALTER TABLE 表文件名 DROP COLUMN 字段名 ALTER TABLE 表文件名RENAME COLUMN 字段名1 TO 字段名2,三、表结构的修改,3.3 表的创建与使用,ADD COLUMN:添加字段。ALTER TABLE xs ADD COLUMN bjmc C(12)RENAME COLUMN:字段改名。ALTER TABLE xs RENAME COLUMN bjm

14、c TO bjDROP COLUMN:删除字段。ALTER TABLE xs DROP COLUMN bjALTER COLUMN:修改字段。ALTER TABLE xs ALTER COLUMN bjmc C(15)注意:修改字段类型和宽度时,数据会溢出,3.3 表的创建与使用,四、表的打开与关闭,1、工作区工作区用以标识一个打开表的区域。每个工作区有一个编号,称为工作区号。其编号范围为132767(前10个工作区号也可以用字母AJ表示)。在某一时刻,一个工作区中只能打开一个表。若要打开新表,则先前打开的表自动关闭。一个表可以在多个工作区中被多次打开。,3.3 表的创建与使用,工作区中表的别

15、名表的别名是对工作区中打开的表的一个临时标识。定义表的别名 打开表时指定别名,用USE命令。USE xs ALIAS student如果在打开表时没有指定别名,则系统默认用表文件名作为别名。SELECT 2 USE js,3.3 表的创建与使用,当前工作区VFP正在使用的工作区称为当前工作区。使用SELECT命令选择某工作区号为当前工作区号。命令格式:SELECT 工作区号|表别名 SELECT 1 SELECT js用函数SELECT(0)(0 可省略)测试当前工作区号打开当前最小的工作区。用ALIAS()函数测试当前指定工作区中表的别名。ALIAS(2)状态栏中可显示当前工作区中表的别名。

16、,3.3 表的创建与使用,选用工作区在“数据工作期”窗口中设置。使用命令:SELECT 工作区号|表别名 SELECT 2 SELECT JS操作非当前工作区中的表将所在工作区设置为当前工作区在命令中用IN指定工作区格式:IN 工作区|别名 USE CJ IN 3SELECT 0:选择未使用最小编号的工作区,内存,3.3 表的创建与使用,四、表的打开与关闭2、“数据工作期”窗口数据工作期是当前数据动态工作环境的一种表示。VFP系统启动后,系统自动生成一个数据工作期。称为“默认”数据工作期。每一个表单、表单集或报表在运行过程中,为了管理自己所用的数据,可以形成自己的数据工作期。每一个数据工作期包

17、含有自己的一组工作期,这些工作区含有打开的表、表索引和关系。,3.3 表的创建与使用,四、表的打开与关闭2、“数据工作期”窗口 通过菜单命令“窗口/数据工作期”或常用工具栏上的“数据工作期”按钮打开。,3.3 表的创建与使用,四、表的打开与关闭3、表的打开界面方式:1.用菜单“文件打开”,打开表在当前工作区中。2.在“数据工作期”窗口中打开,则指定的表在当前未被使用的最小工作区中打开,且当前工作区不变。3.在“项目管理器”窗口中打开,表在当前未被使用的最小工作区中打开,且该工作区为当前工作区。,注意三种界面方式打开的工作区不同。,3.3 表的创建与使用,命令方式:USE 表名 IN 工作区号|

18、表别名 AGAIN ALIAS 表别名 NOUPDATE,3.3 表的创建与使用,四、表的打开与关闭3、表的打开,USE xsUSE js ALIAS jiaoshi IN 4USE cj IN 0 NOUPDATEUSE xs AGAIN IN 5USE xs AGAIN IN 15,3.3 表的创建与使用,四、表的打开与关闭3、表的打开,例: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

19、(6)USE xs IN 0 AGAIN NOUPDATE?SELECT()?SELECT(“C”)?ALIAS(3),在打开表时如果未利用ALIAS子句指定别名,则别名与表名相同,但如果一张表同时在多个工作区中打开且均未指定别名,则在第一次打开的工作区中,别名与表相同,其他工作区中用:AJ以及W11W32767,USE xs AGAIN IN 15?ALIAS(15)?SELECT(),3.3 表的创建与使用,四、表的打开与关闭4、表的关闭“数据工作期”窗口中关闭关闭指定工作区中的表:USE IN 工作区号|别名,3.3 表的创建与使用,四、表的打开与关闭4、表的关闭CLOSE TABLES

20、 ALL USE xs USE cj IN 2 USE&关闭当前工作区中的表 USE IN 2&关闭2号工作区中的表关闭所有工作区中的表:CLOSE ALL、CLOSE DATABASE、CLOSE TABLES、QUIT,3.3 表的创建与使用,四、表的打开与关闭5、表的独占与共享,独占打开:一张表只能被一个用户打开。共享打开:一张表可被多个用户同时打开。USE xs SHARED:以共享方式打开表XS。USE JS EXCLUSIVE:以独占方式打开表JS。设定默认打开方式:通过系统选项对话框来设置SET EXCLUSIVE ON|OFF,一张表同时被打开多次时,只以第一次打开的方式为准。

21、uj,3.3 表的创建与使用,五、记录的处理1、记录的输入,记录的追加(1)立即输入记录(2)“浏览”状态下追加记录(3)用INSERT-SQL命令追加记录 命令格式:INSERT INTO 表名(字段1,字段2);VALUES(表达式1,表达式2)INSERT INTO xs(XH,XM,XB,XIMING);VALUE(“01706101”,”曹晓燕“,”女”,”人口”),追加到表的记录,总在表的最后一条。,3.3 表的创建与使用,(4)用APPEND命令追加记录 命令格式:APPEND BLANK IN 工作区号|表别名 APPEND BLANK&向表中追加一条空记录用APPEND FR

22、OM命令从其他表或文件中导入数据,命令格式:APPEND FROM 文件名 DELIMITED|XLS 例:CLOSE TABLES ALL USE XS1 SELECT 2 USE XS2 APPEND FROM XS1,USE XSAPPEND FROM XS XLS,DELIMITED:追加文本文件XLS:追加Excel文件缺省:追加表文件,3.3 表的创建与使用,(5)备注型字段和通用型字段的数据输入 通用型字段显示“gen”(表示无内容)或“Gen”(表示有内容);备注型字段输入数据的操作步骤:将光标移动到相应的通用型字段,按下ctrl+home组合键获双击该字段,在出现的编辑窗口后

23、利用菜单命令“编辑”“插入对象”插入其内容,结束时关闭编辑窗口。,3.3 表的创建与使用,(5)备注型字段和通用型字段的数据输入 当备注字段显示“memo”(表示无内容)或“Memo”(表示有内容);备注型字段输入数据的操作步骤:将光标移动到相应的备注型字段,按下ctrl+home组合键获双击该字段,在出现的编辑窗口中输入备注,结束时关闭编辑窗口。,3.3 表的创建与使用,五、记录的处理 2、表的浏览与定制,浏览窗口BROWSE命令 命令格式:BROWSE FIELDS 字段列表 FOR 条件表达式 FREEZE 字段名 NOAPPEND NODELETENOMODIFYTITLE 标题 FO

24、R:四种类型的条件,3.3 表的创建与使用,五、记录的处理 2、表的浏览与定制,(1)字符型 浏览教师表中“男”教师的信息。USE js Browse for xb=“男”,3.3 表的创建与使用,(2)数值型 浏览教师表中工龄超过5年的教师信息。USE js Browse for gl5(3)日期型 浏览教师表中1971年以后出生的教师信息。USE js Browse for csrqctod(“1971/12/31”)或 Browse for year(csrq)1971(4)逻辑型 浏览课程表中所有必修课的课程信息。USE kc Browse for bxk,注意括号中字符串的表示法。,

25、3.3 表的创建与使用,浏览课程表中所有非必修课的课程信息。USE kc Browse for.not.bxk 用FIELDS 子句指定在浏览窗口中出现的字段。例:浏览XS表中所有男同学的xh,xm,xb信息,并指定不修改记录,浏览窗口的标题为“男学生”。,USE XS BROWSE FIELDS xh,xm,xb FOR xb=男;NOMODIFY TITLE“男学生”,3.3 表的创建与使用,五、记录的处理 3、记录的定位,记录的指针:每个记录都按顺序有个“记录号”系统在打开一个表文件后将自动生成三个控制标志:记录开始标志、记录指针标志、记录结束标志。,记录开始标志,记录指针,记录结束标志

26、,当前记录,BOF(),RECNO(),EOF(),3.3 表的创建与使用,记录指针是VFP系统内部的一个指示器,在表中指向记录。每当打开一个表文件时,指针总是指向第1条记录。测试当前记录用函数RECNO()。其最小值为1,最大值为RECCOUNT()+1,RECCOUNT()是表记录总数。打开表时记录指针情况:表中无记录:BOF()=.T.EOF()=.T.RECNO()=1表中有记录:BOF()=.F.EOF()=.F.RECNO()=1,3.3 表的创建与使用,记录的定位(非当前工作区用:IN)记录指针的绝对定位:把指针移动到指定的位置。GO/GOTO n:当n大于记录总数时将拒绝移动。

27、GO TOP&记录指针移动到第一条记录GO BOTTOM&记录指针移动到最后一条记录GOTO 6&记录指针移动到记录号为6的记录上记录指针的相对定位:把指针从当前位置开始,相对于当前记录向前或向后移动若干条记录。SKIP n:n0向文件尾方向;n0向文件头方向。SKIP 2&记录指针下移2条记录(当前的记录号被改变)SKIP-2&记录指针上移2条记录(当前的记录号被改变),3.3 表的创建与使用,记录的条件定位:按照一定的条件自动地在整张表(或某个指定范围)中查找符合该条件的记录。如果找到符合该条件的记录,则把指针定位到该记录上,否则,指针将定位到整张表(或表的指定范围)的未尾。LOCATE

28、范围 FOR 条件表达式LOCATE FOR xm=“王一平”&记录指针指向到姓名为“王一平”的记录或表的结尾通过界面操作方式定位 当表处于浏览状态时,记录定位可以利用菜单命令“表/转到记录/”进行,也可以直接在浏览窗口中通过鼠标操作或键盘上的光标移动键操作。,3.3 表的创建与使用,“记录定位”对话框一些子项的含义范围ALL:全部记录Next n:从当前记录开始的N个记录Record n:指定的第n个记录Rest:从当前记录及其后的所有记录 条件FOR:在整个表中对所有满足条件的记录操作注意:若要继续定位用:continue,3.3 表的创建与使用,例:,Use xs?BOF()?EOF()

29、?RECNO()Go 3?RECNO()SKIP 4?RECNO(),Go 20?BOF()?EOF()?RECNO(),SKIP-1?BOF()?RECNO()SKIP-1,SKIP?EOF()?RECNO()SKIP,已知XS表中的总记录数为20。,SKIP-20?BOF()?RECNO(),出现系统提示已到文件尾,出现系统提示已到文件头,?reccount(),3.3 表的创建与使用,一个表只要不是只读方式打开,就可以对其记录进行编辑和修改。对少量的记录直接在浏览窗口中修改。批量记录的修改,五、记录的处理 4、记录的修改,3.3 表的创建与使用,使用“表”菜单中的“替换字段”命令项REP

30、LACE命令 REPLACE 字段名1 WITH 表达式1 ADDITIVE,字段名2 WITH 表达式2 ADDITIVE 范围 FOR 条件表达式,五、记录的处理 4、记录的修改,3.3 表的创建与使用,例:将gzb表中职称为“教授”的所有教师的基本工资加500。USE gzbREPLACE jbgz WITH JBGZ+500;FOR ZC=“教授”注:此命令无范围和条件时仅修改当前记录,3.3 表的创建与使用,UPDATE-SQL命令UPDATE 表名 SET 字段1=表达式1,字段2=表达式2 WHERE条件表达式 例:将gzb表中所有工龄满30年(假设不考虑月日)的教师的基本工资加

31、300。UPDATE gzb SET JBGZ=JBGZ+300;WHERE YEAR(DATE()-YEAR(gzrq)29,用SQL命令时,不需要先用USE命令打开表。,3.3 表的创建与使用,删除记录分两步做删除标记彻底删除带标记的记录,五、记录的处理 5、记录的删除,3.3 表的创建与使用,界面方式删除对少量的记录直接在浏览窗口中删除在某一范围内删除一组符合特定条件的记录“表”菜单中的“删除记录”命令项“表”“恢复记录”“表”“彻底删除”,五、记录的处理 5、记录的删除,3.3 表的创建与使用,用命令方式删除DELETE命令(加注删除标记)DELETE 范围 FOR 条件表达式IN 工

32、作区|别名 例:为js表中所有年龄超过60岁的教师的记录加注删除标记。USE JS DELETE FOR YEAR(DATE()-YEAR(csrq)60 注:此命令无范围和条件时仅修改当前记录DELETE-SQL(加注删除标记)DELETE FROM 表名 WHERE 条件表达式 DELETE FROM JS WHERE;(DATE()-csrq)/36560,3.3 表的创建与使用,恢复删除:RECALL 范围 FOR 条件表达式 RECALL&恢复当前记录 RECALL ALL&恢复当前所有记录 RECALL ALL FOR XB=“男”&恢复所有性别为“男”的记录彻底删除:PACK&删

33、除有删除标记的记录 CLOSE TABLES ALL USE xs DELETE FOR SUBSTR(XH,1,2)=“04”PACK,3.3 表的创建与使用,删除所有记录:ZAP&不管记录是否有删除标记,表中所有的记录都删除,只留下表结构。使用DELETE()函数可测试当前记录是否有删除标记,该函数无参数。对带有删除标记的记录的访问SET DELETE ON|OFF ON:不允许访问有删除标记的记录 OFF:(系统默认值)允许访问标有删除标记的记录。USE XS DELETE NEXT 3 SET DELETE ON BROWSE?RECCOUNT(),已知XS表中的记录数为10,3.3

34、表的创建与使用,利用COPY TO命令可以将(在当前工作区中已打开)中的数据复制到其他表文件或其他类型的文件中。COPY TO 文件名 FIELDS 字段列表 范围 FOR 条件表达式TYPE SDF|XLS|DELIMITED WITH 字符|WITH BLANK|WITH TAB|WITH CHARACTER 字符,五、记录的处理 6、数据的复制,3.3 表的创建与使用,例:CLOSE TABLES ALL USE xs COPY TO XS01 FOR XB=“女”COPY TO XS01 FLELDS xh,xm SDF COPY TO XS01 XLS,五、记录的处理 6、数据的复制

35、,3.3 表的创建与使用,利用COUNT、SUM、AVERAGE命令可以对表数据进行统计。COUNT 范围FOR 条件表达式TO 内存变量名SUM数值表达式 范围FOR条件表达式TO内存变量名AVER数值表达式 范围FOR条件表达式TO内存变量名,五、记录的处理7、数据的统计,3.3 表的创建与使用,例:CLOSE TABLES ALL USE cj COUNT FOR cj60 TO a1 SUM cj TO a2 For xh=“010102”AVERAGE cj TO a3 For kcdh=“02”,3.3 表的创建与使用,五、记录的处理7、数据的统计,指从表中选出满足指定条件的记录,

36、不满足条件的记录则被“隐藏”。界面方式:在“工作区属性”对话框中“数据过滤器”文本框中输入条件。,五、记录的处理8、筛选记录,3.3 表的创建与使用,命令方式:SET FILTER TO 条件表达式 USE xs SET FILTER TO xb=“女”取消筛选:SET FILTER TO,SET FILTER TO 命令设置的过滤器不会对SELECT-SQL、DELETE-SQL和UPDATE-SQL命令起作用。,3.3 表的创建与使用,五、记录的处理8、筛选记录,筛选字段是选取表的部分列。“工作区属性”对话框中打开“字段筛选器”命令:SET FIELDS TO 字段列表:指定可访问字段名称

37、 CLOSE TABLES ALLUSE xsSET FIELDS TO xh,xm,xbSET FIELDS TO ALL:用于列出所有的字段,筛选字段,3.3 表的创建与使用,六、表的索引,1、记录的顺序物理顺序:表中记录的存储顺序。按记录输入的时间顺序存放。逻辑顺序:记录的处理顺序。对记录按某个(些)字段的值进行排序。,3.3 表的创建与使用,索引的功能根据“索引表达式”的值进行记录的逻辑排序。索引并不改变表中记录的物理顺序。索引机制建立一个逻辑顺序号与原表物理顺序记录号的对照表,并把对照表保存到一个文件中。索引文件对照表存放的文件。一个索引文件中可存放该表的多个索引。,3.3 表的创建

38、与使用,索引标识(TAG)又叫索引名,标记一个索引的名称。索引关键字(Index Key)是建立索引的依据,通常是一个字段或多个字段组成的表达式。例 系名表(xim.dbf)输入时的物理顺序;以xdh为索引关键字,按升序建立索引,索引文件的情况。,2、索引概述,3.3 表的创建与使用,系名表,索引文件,索引表,3.3 表的创建与使用,多个字段建立索引注意不能基于备注型字段和通用型字段建立索引。如果索引表达式为字符型表达式,则各个字段在索引表达式中的前后顺序将影响索引的结果。,3.3 表的创建与使用,多个字段建立索引注意例:索引表达式:“xdh+xb”,先按xdh字段的值排序,在“xdh”字段的

39、值相同的情况下,才按“xb”字段的值排序;例:索引表达式:“xb+xdh”,先按“xb”字段的值排序,在“xb”字段的值相同的情况下,才按“xdh”字段的值排序。,3.3 表的创建与使用,如果索引表达式为算术表达式,则按照表达式的运算结果进行排序。思考:KC表建立的索引表达式:“kss+xf”和“STR(kss)+STR(xf)”的排序情况。有何不同?,3.3 表的创建与使用,不同类型字段构成一个表达式时,必须转换为同一类型,通常转换为字符型。例:xdh+STR(jbgz)先按“xdh”字段的值排序,在“xdh”字段的值相同的情况下,才按“jbgz”字段的值排序。xb+DTOC(csrq,1)

40、先按“xb”字段的值排序,在“xb”字段的值相同的情况下,才按“csrq”字段的值排序。,3.3 表的创建与使用,索引类型 主索引、候选索引、普通索引、唯一索引,3.3 表的创建与使用,主索引(Primary Indexes)每张表只能创建一个,索引表达式的值不能重复。只适用于数据库表的结构复合索引。候选索引(Candidate Indexes)索引表达式值不可重复。候选索引可用于数据库表和自由表,且一张表可以建立多个候选索引。,3.3 表的创建与使用,普通索引(Regular Indexes)索引表达式的值允许出现重复,一张表可以建立多 个普通索引。唯一索引(Unique Indexes)索

41、引表达式的值可以重复,但在索引文件中重复的值(记录号)仅存储一次。一张表可以建立多个唯一索引。,3.3 表的创建与使用,索引文件的种类结构复合索引文件(.CDX)文件名与表文件名相同,在创建时系统自动给定,结构复合索引文件自动地与表同步打开、更新和关闭。一个文件可存放多个索引。非结构复合索引(.CDX)文件名与表名不同。不随着表的打开而自动打开,要用专门的命令打开。一个文件可存放多个索引。独立索引文件(.IDX)文件名用户自定,不随着表的打开而打开。一个文件只存一种索引,查找速度快,一般为临时索引文件,3.3 表的创建与使用,在“表设计器”中创建用命令创建INDEX ON 索引表达式 TAG

42、索引标识名 FOR 条件表达式 ASCENDING|DESCENDINGUNIQUE|CANDIDATE例:USE XS INDEX ON jg TAG jg UNIQUE INDEX ON zydh+DTOC(csrq,1)TAG zydhcsrq INDEX ON xh TAG xh FOR xb=“男”,3、创建结构复合索引,3.3 表的创建与使用,在“表设计器”中修改和删除索引。用INDEX命令修改。如果不修改索引标识,可以再用INDEX命令建立 同标识名的索引,把原索引覆盖了。用DELETE TAG命令删除索引DELETE TAG 标识名1,标识名2 DELETE TAG xh DE

43、LETE TAG ALL,如果要删除的是主索引或侯选索引,且SET SAFETY ON时,系统会发出警告。,4、索引修改和删除,3.3 表的创建与使用,主控索引:某一时刻对表正在起作用的索引。设置主控索引在“数据工作期”中打开“工作区属性”对话框设置;USE 表文件名 ORDER TAG 标识名 USE XS ORDER XHSET ORDER TO索引标识名 IN 工作区号|表别名ASCENDING|DESCENDING SET ORDER TO XHSET ORDER TO 取消主控索引,5、索引的使用,3.3 表的创建与使用,建立索引的目的就是为了快速查找。可以用SEEK、SEEK()进

44、行查找,仅适用于对已建索引表的快速查找,查找首次出现的纪录。SEEK 索引表达式 order 索引名 asce|desc 用FOUND()函数测试查找是否成功。,6、利用索引快速定位记录,3.3 表的创建与使用,例:USE xs ORDER xh SEEK“030506”?FOUND()SEEK()例:USE xs ORDER xh SEEK(“030506”)?FOUNT()?RECNO(),6、利用索引快速定位记录,3.3 表的创建与使用,SELECT(0|1|表别名)用来测试工作区号。?SELECT(0)&注意与命令SELECT 0 不同。?SELECT(1)?SELECT(“xs”),

45、七、有关表操作的常用函数,3.3 表的创建与使用,USED(工作区号|表别名)用于测试一张表的别名是否已使用,或在指定工作区中是否有表打开。?USED(“JS”)?USED(2)ALIAS(工作区号)用于返回当前或指定工作区中表的别名。?ALIAS()?ALIAS(1),七、有关表操作的常用函数,3.3 表的创建与使用,FIELD(字段序号,工作区号|表别名)用于返回已打开表的指定序号的字段名。?FIELD(5,”XS”)FCOUNT(工作区号|表别名)用于返回已打开表的字段个数。?FCOUNT()?FCOUNT(2)?FCOUNT(“XS”),七、有关表操作的常用函数,3.3 表的创建与使用

46、,DELETE()用于测试表的当前记录是否带删除标记。USE XSLOCAT FOR XS=“030201”?DELETE(),七、有关表操作的常用函数,3.3 表的创建与使用,表之间的关系表之间的永久关系参照完整性VFP参照完整性综述,3.4 永久关系与参照完整性,一、表之间的关系关系的种类分析并确定表之间的关系,3.4 永久关系与参照完整性,1、关系的种类 一对一关系(1:1)设有甲乙两张表,如果甲表的一个记录在乙表中有且只有一个记录与之对应,则这两张表之间的关系为“一对一关系”。这种关系在实际应用中不常使用。在许多情况下,两张表的信息可以简单合并成为一张表。,3.4 永久关系与参照完整性

47、,一对多关系(1:n)设有甲乙两张表,如果甲表的任意一个记录在乙表中都有几个记录与之对应,而乙表中的每个记录在甲表中仅有一个记录与之对应,则这两张表之间的关系为“一对多关系”。甲表为“一表”(或“主表”、“父表”),乙表为“多表”(或“子表”)。,1:n,3.4 永久关系与参照完整性,多对多关系(m:n)设有甲乙两张表,如果甲表的任意一个记录在乙表中存在多个记录与之对应,而乙表中的每个记录在甲表中也存在多个记录与之对应,则这两张表之间的关系为“多对多关系”。在实际应用中,多对多关系不能直接使用,必须建立第三张表,把多对多的关系分解成两个一对多关系,这张表称为“纽带表”。,1:m,n:1,m:n

48、,3.4 永久关系与参照完整性,2、分析并确定表之间的关系,返回,3.4 永久关系与参照完整性,二、表之间的永久关系永久关系是在数据库表之间的一种关系,这种关系不仅运行时存在,而且一直保持。永久关系是使用索引建立的。在一对多关系中,主表必须为主索引或候选索引,而子表可以使用普通索引。在一对一关系中,两表必须为主索引或候选索引。,3.4 永久关系与参照完整性,永久关系的作用在“查询设计器”和“视图设计器”中,自动作为默认联接条件。作为表单和报表的默认的临时关系,在“数据环境设计器”中显示。用来存储参照完整性信息。,3.4 永久关系与参照完整性,永久关系的建立和编辑建立建立两张表的索引在“数据库设

49、计器”中拖动索引标识编辑在“数据库设计器”中双击关系连线单击连线数据库编辑关系删除单击连线,按DEL键单击连线数据库删除关系,3.4 永久关系与参照完整性,三、参照完整性用来控制数据库相关表之间的主关键字和外部关键字之间数据一致性的规则。参照完整性是建立在库表之间永久关系基础之上的。目的:防止孤立记录的产生。实施机制:规则被设置在主表或子表的触发器中,规则的代码被保存在存储过程中。相关表之间的数据一致性要求:有子必有父 插子必有父 父删子必删,3.4 永久关系与参照完整性,参照完整性规则,3.4 永久关系与参照完整性,四、数据完整性综述三类完整性实体完整性:字段级、记录级参照完整性:表级用户自

50、定义完整性通过字段级、记录级和表间三级完整性约束,有效地实现了数据的完整性和一致性。,3.4 永久关系与参照完整性,DBC()函数 返回当前打开的数据库的完整文件名,该函数无需参数。DBUSED()函数 返回指定的数据库文件是否已经打开。CLOSE DATABASE ALLOPEN DATABASE sjk?当前打开的数据库为+DBC()?DBUSED(sjk),3.5操作数据库及其对象的几个常用函数,DBGETPROP()函数查看数据库或当前数据库中字段、表或视图属性语法:DBGETPROP(cName,cType,cProperty)cName:指定数据库、字段、表或视图的名称cType:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备2025010119号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000987号