第三章有关数据库及其对象的常用函数_第1页
第三章有关数据库及其对象的常用函数_第2页
第三章有关数据库及其对象的常用函数_第3页
第三章有关数据库及其对象的常用函数_第4页
第三章有关数据库及其对象的常用函数_第5页
已阅读5页,还剩109页未读 继续免费阅读

下载本文档

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

文档简介

第三章有关数据库及其对象的常用函数第1页,课件共114页,创作于2023年2月江南大学太湖学院机电系计算机教研室

第3章数据库与表的创建和使用第2页,课件共114页,创作于2023年2月3.1数据库概述

3.2数据库的创建、打开和使用

3.3表的创建和使用

3.4永久性关系与参照完整性

3.5有关数据库及其对象的常用函数第3章数据库与表的创建和使用第3页,课件共114页,创作于2023年2月3.1数据库概述数据库是一个容器,是许多相关的数据库表及其关系的集合。例如,一个教学管理信息系统中将涉及到教师、课程、任课、学生、成绩、系以及专业等实体,可分别用二维表来表示(如图所示)。数据库中的表并不是彼此独立的,借助于一个公共的字段可以将两张表联系起来,这就建立了一种“关系”。第4页,课件共114页,创作于2023年2月3.1数据库概述一、数据库设计的步骤:1、确定建立数据库的目的,进行数据的需求分析2、确定需要的各种表3、确定表的字段4、确定表之间的关系5、设计的优化第5页,课件共114页,创作于2023年2月二、VFP数据库的组成数据库表视图连接存储过程3.1数据库概述第6页,课件共114页,创作于2023年2月二、VFP数据库的组成1、数据库表

数据库表与数据库之间的相关性是通过它们之间的双向链接实现的。前链保存在数据库文件中存储有关表文件的路径和文件名信息指向库表后链存放在一张表的表头中存储有关库文件的路径和文件信息指向拥有该表的数据库3.1数据库概述第7页,课件共114页,创作于2023年2月二、VFP数据库的组成2、视图(View)

视图是一种“虚表”类型,其数据来源于一张或多张表。视图兼有表和查询的特点。视图可以分为本地视图和远程视图。详细内容将在下一章介绍。3.1数据库概述第8页,课件共114页,创作于2023年2月二、VFP数据库的组成3、连接(Connection)

连接是保存在数据库中的一个定义,它制定了数据源的名称。ODBC:开放式数据互连连接远程数据源的方法直接访问在机器上注册的ODBC数据源用“连接设计器”设计自定义连接3.1数据库概述第9页,课件共114页,创作于2023年2月二、VFP数据库的组成4、存储过程

存储过程是保存在数据库中的过程代码的地方保存用户自定义函数和过程。保存参照完整性代码。打开数据库时,它们便被加载到内存中。创建、修改或移去存储过程的方法:

“项目管理器”

“数据库设计器”

MODIFYPROCEDURE

3.1数据库概述第10页,课件共114页,创作于2023年2月三、VFP数据字典概述数据字典是指存储在数据库中用于描述所管理的表和对象的数据,即关于数据的数据。这些数据称为元数据。每个数据库都带有一个数据库字典。数据库表可以享受到数据字典的各种功能。使用数据字典,可以创建字段级规则和记录级规则,保证主关键字字段内容的唯一性。如果不用数据字典,也可通过编程实现上述功能。3.1数据库概述第11页,课件共114页,创作于2023年2月数据字典可创建、指定的内容表中字段的标题、注释、默认值、输入掩码和显示格式,以及表单中使用的默认控件类等。表的主索引关键字。数据库表之间的永久性关系。长表名和表注释。字段级和记录级有效性规则。存储过程。插入、更新和删除事件的触发器。3.1数据库概述第12页,课件共114页,创作于2023年2月一、数据库的创建每创建一个新的数据库都将生成三个文件:数据库文件(.dbc)关联的数据库备注文件(.dct)关联的数据库索引文件(.dcx)数据库文件并不在物理上包含任何附属对象,仅存储指向表文件的路径指针。3.2数据库的创建、打开和使用第13页,课件共114页,创作于2023年2月一、数据库的创建创建数据库可以采用下述方法之一。使用“项目管理器”使用“文件”菜单中的“新建”命令使用命令

CREATEDATABASE[数据库|?]3.2数据库的创建、打开和使用第14页,课件共114页,创作于2023年2月二、数据库的使用1、打开数据库2、设置当前数据库3、检查数据库的有效性4、关闭数据库5、删除数据库3.2数据库的创建、打开和使用第15页,课件共114页,创作于2023年2月1、打开数据库

使用菜单“文件”/“打开”/指定数据库文件名使用OpenDatabase命令格式:OpenDatabase[Databasename][Exclusive|Shared][Noupdate]说明:Exclusive:指定以独占方式打开数据库。Shared:指定以共享方式打开数据库。Noupdate:以只读方式打开数据库。

3.2数据库的创建、打开和使用第16页,课件共114页,创作于2023年2月1、打开数据库

数据库可以同时打开多个OPENDATABASEdb1OPENDATABASEdb2OPENDATABASEdb33.2数据库的创建、打开和使用第17页,课件共114页,创作于2023年2月2、设置当前数据库

所有打开的数据库中,只有一个是当前数据库。在打开数据库时,最后一个打开的数据库是当前数据库。将其他数据库设置为当前数据库“常用”工具栏的数据库下拉列表SETDATABASETO

[数据库名]3.2数据库的创建、打开和使用第18页,课件共114页,创作于2023年2月3、检查数据库的有效性

如果数据库和表文件的双向链接被破坏后,可重新链接,更新相对路径信息以反映文件的新位置。重建链接用VALIDDATABASE[RECOVER]命令打开表,系统显示“打开”对话框进行重新定位只能处理以独占方式打开的当前数据库3.2数据库的创建、打开和使用第19页,课件共114页,创作于2023年2月4、关闭数据库

从“项目管理器”窗口中,选定要关闭的数据库并选择“关闭”按钮。3.2数据库的创建、打开和使用第20页,课件共114页,创作于2023年2月4、关闭数据库

使用命令CLOSEDATABASE:关闭当前数据库CLOSEDATABASEALL:关闭所有数据库CLOSEALL:关闭所有数据库、表、索引及设计器关闭已打开的数据库jxsjSETDATABASETOjxsjCLOSEDATABASE3.2数据库的创建、打开和使用第21页,课件共114页,创作于2023年2月5、删除数据库

删除数据库意味着将删除存储在该数据库中的一切信息。如:存储过程、视图、表之间的关系、数据库表的扩展属性等。使用“项目管理器”删除一个数据库的方法在“项目管理器”中选择待删除的数据库名;单击“项目管理器”窗口的“移去”按钮,在接下去的提示中选择删除。3.2数据库的创建、打开和使用第22页,课件共114页,创作于2023年2月表:是指存储在磁盘文件中的二维表,一张二维表保存为1~3个表文件。(.DBF/.FPT/.CDX)(表、表备注、复合索引)在VFP中表分为两种类型:属于某一数据库的表称为“数据库表”;不属于任何数据库而独立存在的表称为“自由表”。3.3表的创建与使用第23页,课件共114页,创作于2023年2月字段(Field):表中的一列,规定了数据的特征。每张表最多可以有255个字段。记录(Record):表的一行,多个字段的集合。注意:表文件名除必须遵守Windows系统对文件名的约定外,不可用A~J中的单个字母作文件名。3.3表的创建与使用第24页,课件共114页,创作于2023年2月一、表结构概述1、表结构(Structure):存储表记录的一个公共结构,主要指表的字段及其属性。2、字段名:用以标识一个字段的名字。字段名一般要与其对应的实体的属性名相同或相近,以便于记忆。字段名可以是以字母开头的字母数字串,也可以是汉字。3、字段的数据类型:说明字段是什么类型的数据。

不同数据类型的表示和运算的方法不一样。见下表:3.3表的创建与使用第25页,课件共114页,创作于2023年2月数据类型字母表示宽度说明示例字符型(Character)

C<254字母、汉字、符号XH、XM货币型(Currency)Y8货币单位教师的工资数值型(Numeric)

N<20整数或小数考试成绩浮点型(Float)F<20(同数值型)日期型(Date)

D8年,月,日出生日期日期时间型(Datetime)T8年,月,日,时,分,秒上班时间双精度型(Double)B8双精度数值型高精度数据整型(Integer)I4不带小数点的数值学生人数逻辑型(Logical)

L1真或假课程是否为必修备注型(Memo)

M

4不定长的一段文本简历通用型(General)

G

4OLE图象、多媒体对象图片和声音表字段的基本数据类型3.3表的创建与使用第26页,课件共114页,创作于2023年2月3、字段宽度:指该字段所能容纳数据的最大字节数。货币型、日期型、日期时间型和双精度型为8字节。整型、备注型、和通用型为4字节。逻辑型为1字节。3.3表的创建与使用第27页,课件共114页,创作于2023年2月3、字段宽度:对于包含备注型字段或通用型字段的表,系统会自动生成和管理一个相应的备注文件,用于存储备注内容。备注型的文件主名与表文件的主名相同,其扩展名为.FPT。在表的备注字段中,仅存储引用信息,指向备注文件中的备注内容。同样,对于通用型字段,字段中也仅保存引用信息,指向所管理的数据对象。

3.3表的创建与使用第28页,课件共114页,创作于2023年2月4、小数位数:数值型、浮点型、双精度型的字段需指定小数据位。字段宽度=整数部分宽度+小数点1位+小数位宽度小数位至少比整个字段宽度小1。3.3表的创建与使用第29页,课件共114页,创作于2023年2月5、空值(NULL)用来指示一个字段有或没有数据的标识。NULL不是一种数据类型,它用来指示数据存在或不存在的一种属性。3.3表的创建与使用第30页,课件共114页,创作于2023年2月1、用“表设计器”创建表结构二、表结构创建3.3表的创建与使用第31页,课件共114页,创作于2023年2月2、用CREATETABLE-SQL命令创建表结构基本语法格式:CREATETABLE|DBF

表文件名(字段名1字段类型[(字段宽度[,小数位数])][,字段名2字段类型[(字段宽度[,小数位数])]]……)CREATETABLExs(xhc(6),xmc(8),xbc(2),csrqDNULL)二、表结构创建命令字表文件名字段名类型和宽度使用NULL值对于一些宽度固定的字段类型,宽度不用标出。注意:当设置表的字段可以接受NULL值时,该表最多只能有254个字段。3.3表的创建与使用第32页,课件共114页,创作于2023年2月1、用表设计器修改表的结构在“项目管理器”中使用“修改”按钮MODIFYSTRUCTURE命令三、表结构的修改3.3表的创建与使用第33页,课件共114页,创作于2023年2月2、ALTERTABLE-SQL命令修改表的结构基本语法格式:ALTERTABLE

表文件名ADD|ALTER[COLUMN]字段名字段类型[(字段宽度[,小数位数])]ALTERTABLE

表文件名

DROP[COLUMN]字段名ALTERTABLE

表文件名RENAME[COLUMN]字段名1

TO

字段名2三、表结构的修改3.3表的创建与使用第34页,课件共114页,创作于2023年2月ADDCOLUMN:添加字段。

ALTERTABLExsADDCOLUMNbjmcC(12)RENAMECOLUMN:字段改名。

ALTERTABLExsRENAMECOLUMNbjmcTObjDROPCOLUMN:删除字段。

ALTERTABLExsDROPCOLUMNbjALTERCOLUMN:修改字段。ALTERTABLExsALTERCOLUMNbjmcC(15)注意:修改字段类型和宽度时,数据会溢出3.3表的创建与使用第35页,课件共114页,创作于2023年2月四、表的打开与关闭1、工作区工作区用以标识一个打开表的区域。每个工作区有一个编号,称为工作区号。其编号范围为1~32767(前10个工作区号也可以用字母A~J表示)。在某一时刻,一个工作区中只能打开一个表。若要打开新表,则先前打开的表自动关闭。一个表可以在多个工作区中被多次打开。1或A

2或B

3或C内存3.3表的创建与使用第36页,课件共114页,创作于2023年2月工作区中表的别名表的别名是对工作区中打开的表的一个临时标识。定义表的别名打开表时指定别名,用USE命令。USExsALIASstudent如果在打开表时没有指定别名,则系统默认用表文件名作为别名。

SELECT2

USEjs

1student2js3内存3.3表的创建与使用第37页,课件共114页,创作于2023年2月当前工作区VFP正在使用的工作区称为当前工作区。使用SELECT命令选择某工作区号为当前工作区号。命令格式:

SELECT工作区号|表别名

SELECT1

SELECTjs用函数SELECT(0)(0可省略)测试当前工作区号打开当前最小的工作区。用ALIAS()函数测试当前指定工作区中表的别名。

ALIAS(2)状态栏中可显示当前工作区中表的别名。1student2js3内存3.3表的创建与使用第38页,课件共114页,创作于2023年2月选用工作区在“数据工作期”窗口中设置。使用命令:SELECT工作区号|表别名

SELECT2

SELECT

JS操作非当前工作区中的表将所在工作区设置为当前工作区在命令中用IN指定工作区

格式:IN工作区|别名

USECJIN3SELECT0:选择未使用最小编号的工作区1student2js3内存3.3表的创建与使用第39页,课件共114页,创作于2023年2月四、表的打开与关闭2、“数据工作期”窗口数据工作期是当前数据动态工作环境的一种表示。VFP系统启动后,系统自动生成一个数据工作期。称为“默认”数据工作期。每一个表单、表单集或报表在运行过程中,为了管理自己所用的数据,可以形成自己的数据工作期。每一个数据工作期包含有自己的一组工作期,这些工作区含有打开的表、表索引和关系。3.3表的创建与使用第40页,课件共114页,创作于2023年2月四、表的打开与关闭2、“数据工作期”窗口

通过菜单命令“窗口/数据工作期”或常用工具栏上的“数据工作期”按钮打开。3.3表的创建与使用第41页,课件共114页,创作于2023年2月四、表的打开与关闭3、表的打开界面方式:

1.用菜单“文件打开”,打开表在当前工作区中。2.在“数据工作期”窗口中打开,则指定的表在当前未被使用的最小工作区中打开,且当前工作区不变。3.在“项目管理器”窗口中打开,表在当前未被使用的最小工作区中打开,且该工作区为当前工作区。注意三种界面方式打开的工作区不同。3.3表的创建与使用第42页,课件共114页,创作于2023年2月命令方式:

USE表名[IN工作区号|表别名][AGAIN][ALIAS表别名][NOUPDATE]

3.3表的创建与使用四、表的打开与关闭3、表的打开第43页,课件共114页,创作于2023年2月USExsUSEjsALIASjiaoshiIN4USEcjIN0NOUPDATEUSExsAGAININ5USExsAGAININ153.3表的创建与使用四、表的打开与关闭3、表的打开第44页,课件共114页,创作于2023年2月

例:CLOSETABLESALL

USExs

?SELECT(0)?ALIAS(1)SELECT2USEcj?SELECT(0)USEjsALIASteacherIN6?SELECT(0)?SELECT(“teacher”)?ALIAS(6)USExsIN0AGAINNOUPDATE?SELECT()?SELECT(“C”)?ALIAS(3)在打开表时如果未利用ALIAS子句指定别名,则别名与表名相同,但如果一张表同时在多个工作区中打开且均未指定别名,则在第一次打开的工作区中,别名与表相同,其他工作区中用:A~J以及W11~W32767USExsAGAININ15?ALIAS(15)?SELECT()3.3表的创建与使用第45页,课件共114页,创作于2023年2月四、表的打开与关闭4、表的关闭“数据工作期”窗口中关闭关闭指定工作区中的表:USE[IN工作区号|别名]

3.3表的创建与使用第46页,课件共114页,创作于2023年2月四、表的打开与关闭4、表的关闭CLOSETABLESALLUSExsUSEcjIN2USE&&关闭当前工作区中的表USEIN2&&关闭2号工作区中的表关闭所有工作区中的表:

CLOSEALL、CLOSEDATABASE、

CLOSETABLES、QUIT3.3表的创建与使用第47页,课件共114页,创作于2023年2月四、表的打开与关闭

5、表的独占与共享独占打开:一张表只能被一个用户打开。共享打开:一张表可被多个用户同时打开。USExsSHARED:以共享方式打开表XS。USEJSEXCLUSIVE:以独占方式打开表JS。设定默认打开方式:通过系统选项对话框来设置SETEXCLUSIVEON|OFF一张表同时被打开多次时,只以第一次打开的方式为准。uj3.3表的创建与使用第48页,课件共114页,创作于2023年2月五、记录的处理

1、记录的输入记录的追加(1)立即输入记录(2)“浏览”状态下追加记录(3)用INSERT-SQL命令追加记录命令格式:

INSERTINTO表名[(字段1[,字段2…])];

VALUES(表达式1[,表达式2…])

INSERTINTOxs(XH,XM,XB,XIMING); VALUE(“01706101”,”曹晓燕“,”女”,”人口”)追加到表的记录,总在表的最后一条。3.3表的创建与使用第49页,课件共114页,创作于2023年2月(4)

用APPEND命令追加记录命令格式:APPEND[BLANK][IN工作区号|表别名]

APPENDBLANK

&&向表中追加一条空记录用APPENDFROM命令从其他表或文件中导入数据,命令格式:

APPENDFROM文件名[DELIMITED|XLS]

例:CLOSETABLESALLUSEXS1SELECT2USEXS2APPENDFROMXS1USEXSAPPENDFROMXSXLSDELIMITED:追加文本文件XLS:追加Excel文件缺省:追加表文件3.3表的创建与使用第50页,课件共114页,创作于2023年2月(5)备注型字段和通用型字段的数据输入

通用型字段显示“gen”(表示无内容)或“Gen”(表示有内容);备注型字段输入数据的操作步骤:将光标移动到相应的通用型字段,按下[ctrl]+[home]组合键获双击该字段,在出现的编辑窗口后利用菜单命令“编辑”→“插入对象”插入其内容,结束时关闭编辑窗口。3.3表的创建与使用第51页,课件共114页,创作于2023年2月(5)备注型字段和通用型字段的数据输入

当备注字段显示“memo”(表示无内容)或“Memo”(表示有内容);备注型字段输入数据的操作步骤:将光标移动到相应的备注型字段,按下[ctrl]+[home]组合键获双击该字段,在出现的编辑窗口中输入备注,结束时关闭编辑窗口。3.3表的创建与使用第52页,课件共114页,创作于2023年2月五、记录的处理

2、表的浏览与定制浏览窗口BROWSE命令命令格式:

BROWSE[FIELDS字段列表][FOR条件表达式][FREEZE字段名][NOAPPEND][NODELETE][NOMODIFY][TITLE标题]FOR:四种类型的条件

3.3表的创建与使用第53页,课件共114页,创作于2023年2月五、记录的处理

2、表的浏览与定制(1)字符型浏览教师表中“男”教师的信息。

USEjs

Browseforxb=“男”3.3表的创建与使用第54页,课件共114页,创作于2023年2月(2)数值型浏览教师表中工龄超过5年的教师信息。USEjsBrowseforgl>5(3)日期型浏览教师表中1971年以后出生的教师信息。

USEjs

Browseforcsrq>ctod(“1971/12/31”)

Browseforyear(csrq)>1971(4)逻辑型浏览课程表中所有必修课的课程信息。

USEkc

Browseforbxk

注意括号中字符串的表示法。3.3表的创建与使用第55页,课件共114页,创作于2023年2月

浏览课程表中所有非必修课的课程信息。

USEkc

Browsefor.not.bxk

用FIELDS子句指定在浏览窗口中出现的字段。例:浏览XS表中所有男同学的xh,xm,xb信息,并指定不修改记录,浏览窗口的标题为“男学生”。

USEXSBROWSEFIELDSxh,xm,xbFORxb=‘男’;

NOMODIFYTITLE“男学生”3.3表的创建与使用第56页,课件共114页,创作于2023年2月五、记录的处理

3、记录的定位记录的指针:每个记录都按顺序有个“记录号”系统在打开一个表文件后将自动生成三个控制标志:

记录开始标志、记录指针标志、记录结束标志。记录开始标志记录指针记录结束标志文件头(含表结构等信息)第1号记录第2号记录第n号记录当前记录BOF()RECNO()EOF()3.3表的创建与使用第57页,课件共114页,创作于2023年2月记录指针是VFP系统内部的一个指示器,在表中指向记录。每当打开一个表文件时,指针总是指向第1条记录。测试当前记录用函数RECNO()。其最小值为1,最大值为RECCOUNT()+1,RECCOUNT()是表记录总数。打开表时记录指针情况:表中无记录:BOF()=.T.EOF()=.T.RECNO()=1表中有记录:BOF()=.F.EOF()=.F.RECNO()=13.3表的创建与使用第58页,课件共114页,创作于2023年2月记录的定位(非当前工作区用:IN)记录指针的绝对定位:把指针移动到指定的位置。

GO/GOTOn:当n大于记录总数时将拒绝移动。GOTOP

&&记录指针移动到第一条记录GOBOTTOM

&&记录指针移动到最后一条记录GOTO6

&&记录指针移动到记录号为6的记录上记录指针的相对定位:把指针从当前位置开始,相对于当前记录向前或向后移动若干条记录。

SKIP[n]:n>0向文件尾方向;n<0向文件头方向。

SKIP2

&&记录指针下移2条记录(当前的记录号被改变)

SKIP-2

&&记录指针上移2条记录(当前的记录号被改变)3.3表的创建与使用第59页,课件共114页,创作于2023年2月记录的条件定位:按照一定的条件自动地在整张表(或某个指定范围)中查找符合该条件的记录。如果找到符合该条件的记录,则把指针定位到该记录上,否则,指针将定位到整张表(或表的指定范围)的未尾。LOCATE[范围]FOR条件表达式LOCATEFORxm=“王一平”

&&记录指针指向到姓名为“王一平”的记录或表的结尾通过界面操作方式定位当表处于浏览状态时,记录定位可以利用菜单命令“表/转到记录/……”进行,也可以直接在浏览窗口中通过鼠标操作或键盘上的光标移动键操作。

3.3表的创建与使用第60页,课件共114页,创作于2023年2月“记录定位”对话框一些子项的含义范围ALL:全部记录Nextn:从当前记录开始的N个记录Recordn:指定的第n个记录Rest:从当前记录及其后的所有记录条件FOR:在整个表中对所有满足条件的记录操作注意:若要继续定位用:continue3.3表的创建与使用第61页,课件共114页,创作于2023年2月例:Usexs?BOF()?EOF()?RECNO()Go3?RECNO()SKIP4?RECNO()Go20?BOF()?EOF()?RECNO()SKIP-1?BOF()?RECNO()SKIP-1SKIP?EOF()?RECNO()SKIP已知XS表中的总记录数为20。SKIP-20?BOF()?RECNO()出现系统提示已到文件尾出现系统提示已到文件头?reccount()3.3表的创建与使用第62页,课件共114页,创作于2023年2月一个表只要不是只读方式打开,就可以对其记录进行编辑和修改。对少量的记录直接在浏览窗口中修改。批量记录的修改五、记录的处理

4、记录的修改3.3表的创建与使用第63页,课件共114页,创作于2023年2月使用“表”菜单中的“替换字段…”命令项REPLACE命令REPLACE字段名1WITH表达式1[ADDITIVE][,字段名2WITH

表达式2[ADDITIVE]]…[范围][FOR条件表达式]五、记录的处理

4、记录的修改3.3表的创建与使用第64页,课件共114页,创作于2023年2月例:将gzb表中职称为“教授”的所有教师的基本工资加500。

USEgzbREPLACEjbgzWITHJBGZ+500;FOR

ZC=“教授”注:此命令无范围和条件时仅修改当前记录3.3表的创建与使用第65页,课件共114页,创作于2023年2月UPDATE-SQL命令

UPDATE表名SET字段1=表达式1[,字段2=表达式2…]WHERE条件表达式例:将gzb表中所有工龄满30年(假设不考虑月日)的教师的基本工资加300。

UPDATE

gzbSETJBGZ=JBGZ+300;

WHERE

YEAR(DATE())-YEAR(gzrq)>29用SQL命令时,不需要先用USE命令打开表。3.3表的创建与使用第66页,课件共114页,创作于2023年2月删除记录分两步做删除标记彻底删除带标记的记录五、记录的处理

5、记录的删除3.3表的创建与使用第67页,课件共114页,创作于2023年2月界面方式删除对少量的记录直接在浏览窗口中删除在某一范围内删除一组符合特定条件的记录

“表”菜单中的“删除记录…”命令项“表”“恢复记录”“表”“彻底删除”五、记录的处理

5、记录的删除3.3表的创建与使用第68页,课件共114页,创作于2023年2月用命令方式删除DELETE命令(加注删除标记)

DELETE[范围][FOR

条件表达式][IN工作区|别名]

例:为js表中所有年龄超过60岁的教师的记录加注删除标记。

USEJSDELETEFORYEAR(DATE())-YEAR(csrq)>60注:此命令无范围和条件时仅修改当前记录DELETE-SQL(加注删除标记)DELETEFROM表名[WHERE

条件表达式]

DELETEFROMJSWHERE;(DATE()-csrq)/365>603.3表的创建与使用第69页,课件共114页,创作于2023年2月恢复删除:RECALL[范围][FOR条件表达式]

RECALL

&&恢复当前记录

RECALLALL

&&恢复当前所有记录

RECALLALLFORXB=“男”

&&恢复所有性别为“男”的记录彻底删除:PACK&&删除有删除标记的记录

CLOSETABLESALLUSExsDELETEFORSUBSTR(XH,1,2)=“04”PACK3.3表的创建与使用第70页,课件共114页,创作于2023年2月删除所有记录:ZAP

&&不管记录是否有删除标记,表中所有的记录都删除,只留下表结构。使用DELETE()函数可测试当前记录是否有删除标记,该函数无参数。对带有删除标记的记录的访问SETDELETEON|OFFON:不允许访问有删除标记的记录OFF:(系统默认值)允许访问标有删除标记的记录。

USEXSDELETENEXT3SETDELETEONBROWSE?RECCOUNT()已知XS表中的记录数为103.3表的创建与使用第71页,课件共114页,创作于2023年2月利用COPYTO命令可以将(在当前工作区中已打开)中的数据复制到其他表文件或其他类型的文件中。

COPYTO文件名[FIELDS字段列表][范围][FOR条件表达式][TYPE]SDF|XLS|DELIMITED[WITH字符|WITHBLANK|WITHTAB|WITHCHARACTER字符]

五、记录的处理6、数据的复制3.3表的创建与使用第72页,课件共114页,创作于2023年2月例:CLOSETABLESALLUSExsCOPYTOXS01FORXB=“女”COPYTOXS01FLELDSxh,xmSDF

COPYTOXS01

XLS

五、记录的处理6、数据的复制3.3表的创建与使用第73页,课件共114页,创作于2023年2月利用COUNT、SUM、AVERAGE命令可以对表数据进行统计。COUNT[范围][FOR条件表达式][TO内存变量名]SUM[数值表达式][范围][FOR条件表达式][TO内存变量名]AVER[数值表达式][范围][FOR条件表达式][TO内存变量名]

五、记录的处理7、数据的统计3.3表的创建与使用第74页,课件共114页,创作于2023年2月例:CLOSETABLESALLUSEcjCOUNTFORcj<60TOa1SUMcjTOa2Forxh=“010102”AVERAGEcjTOa3Forkcdh=“02”

3.3表的创建与使用五、记录的处理7、数据的统计第75页,课件共114页,创作于2023年2月指从表中选出满足指定条件的记录,不满足条件的记录则被“隐藏”。界面方式:在“工作区属性”对话框中“数据过滤器”文本框中输入条件。五、记录的处理8、筛选记录3.3表的创建与使用第76页,课件共114页,创作于2023年2月命令方式:SETFILTERTO

条件表达式

USExsSETFILTERTOxb=“女”取消筛选:SETFILTERTOSETFILTERTO命令设置的过滤器不会对SELECT-SQL、DELETE-SQL和UPDATE-SQL命令起作用。3.3表的创建与使用五、记录的处理8、筛选记录第77页,课件共114页,创作于2023年2月筛选字段是选取表的部分列。“工作区属性”对话框中打开“字段筛选器”命令:SETFIELDSTO

字段列表:指定可访问字段名称

CLOSETABLESALLUSExsSETFIELDSTOxh,xm,xbSETFIELDSTO

ALL:用于列出所有的字段筛选字段

3.3表的创建与使用第78页,课件共114页,创作于2023年2月六、表的索引1、记录的顺序物理顺序:

表中记录的存储顺序。

按记录输入的时间顺序存放。逻辑顺序:

记录的处理顺序。

对记录按某个(些)字段的值进行排序。3.3表的创建与使用第79页,课件共114页,创作于2023年2月索引的功能根据“索引表达式”的值进行记录的逻辑排序。索引并不改变表中记录的物理顺序。索引机制建立一个逻辑顺序号与原表物理顺序记录号的对照表,并把对照表保存到一个文件中。索引文件对照表存放的文件。一个索引文件中可存放该表的多个索引。3.3表的创建与使用第80页,课件共114页,创作于2023年2月索引标识(TAG)又叫索引名,标记一个索引的名称。索引关键字(IndexKey)是建立索引的依据,通常是一个字段或多个字段组成的表达式。例系名表(xim.dbf)输入时的物理顺序;

以xdh为索引关键字,按升序建立索引,索引文件的情况。2、索引概述3.3表的创建与使用第81页,课件共114页,创作于2023年2月系名表索引文件记录号123456789索引号1401表的记录号关键字的值23023203410456056706750788089909索引表3.3表的创建与使用第82页,课件共114页,创作于2023年2月多个字段建立索引注意不能基于备注型字段和通用型字段建立索引。如果索引表达式为字符型表达式,则各个字段在索引表达式中的前后顺序将影响索引的结果。

3.3表的创建与使用第83页,课件共114页,创作于2023年2月多个字段建立索引注意例:索引表达式:“xdh+xb”,先按xdh字段的值排序,在“xdh”字段的值相同的情况下,才按“xb”字段的值排序;例:索引表达式:“xb+xdh”,先按“xb”字段的值排序,在“xb”字段的值相同的情况下,才按“xdh”字段的值排序。3.3表的创建与使用第84页,课件共114页,创作于2023年2月如果索引表达式为算术表达式,则按照表达式的运算结果进行排序。思考:

KC表建立的索引表达式:“kss+xf”

和“STR(kss)+STR(xf)”的排序情况。有何不同?3.3表的创建与使用第85页,课件共114页,创作于2023年2月不同类型字段构成一个表达式时,必须转换为同一类型,通常转换为字符型。

例:xdh+STR(jbgz)先按“xdh”字段的值排序,在“xdh”字段的值相同的情况下,才按“jbgz”字段的值排序。

xb+DTOC(csrq,1)

先按“xb”字段的值排序,在“xb”字段的值相同的情况下,才按“csrq”字段的值排序。3.3表的创建与使用第86页,课件共114页,创作于2023年2月索引类型主索引、候选索引、普通索引、唯一索引3.3表的创建与使用第87页,课件共114页,创作于2023年2月主索引(PrimaryIndexes)每张表只能创建一个,索引表达式的值不能重复。只适用于数据库表的结构复合索引。候选索引(CandidateIndexes)索引表达式值不可重复。候选索引可用于数据库表和自由表,且一张表可以建立多个候选索引。3.3表的创建与使用第88页,课件共114页,创作于2023年2月普通索引(RegularIndexes)

索引表达式的值允许出现重复,一张表可以建立多个普通索引。唯一索引(UniqueIndexes)

索引表达式的值可以重复,但在索引文件中重复的值(记录号)仅存储一次。一张表可以建立多个唯一索引。3.3表的创建与使用第89页,课件共114页,创作于2023年2月索引文件的种类结构复合索引文件(.CDX)

文件名与表文件名相同,在创建时系统自动给定,结构复合索引文件自动地与表同步打开、更新和关闭。一个文件可存放多个索引。非结构复合索引(.CDX)

文件名与表名不同。不随着表的打开而自动打开,要用专门的命令打开。一个文件可存放多个索引。独立索引文件(.IDX)文件名用户自定,不随着表的打开而打开。一个文件只存一种索引,查找速度快,一般为临时索引文件3.3表的创建与使用第90页,课件共114页,创作于2023年2月在“表设计器”中创建用命令创建INDEXON索引表达式TAG索引标识名[FOR条件表达式][ASCENDING|DESCENDING]

[UNIQUE|CANDIDATE]例:USEXSINDEXONjgTAGjgUNIQUEINDEXONzydh+DTOC(csrq,1)TAGzydhcsrqINDEXONxhTAGxhFORxb=“男”

3、创建结构复合索引3.3表的创建与使用第91页,课件共114页,创作于2023年2月在“表设计器”中修改和删除索引。用INDEX命令修改。如果不修改索引标识,可以再用INDEX命令建立同标识名的索引,把原索引覆盖了。用DELETETAG命令删除索引DELETETAG标识名1[,标识名2]

DELETETAGxhDELETETAGALL

如果要删除的是主索引或侯选索引,且SETSAFETYON时,系统会发出警告。

4、索引修改和删除3.3表的创建与使用第92页,课件共114页,创作于2023年2月主控索引:某一时刻对表正在起作用的索引。设置主控索引在“数据工作期”中打开“工作区属性”对话框设置;USE表文件名

ORDER[TAG]标识名

USEXSORDERXHSETORDERTO[索引标识名[IN工作区号|表别名][ASCENDING|DESCENDING]]

SETORDERTOXHSETORDERTO取消主控索引5、索引的使用3.3表的创建与使用第93页,课件共114页,创作于2023年2月建立索引的目的就是为了快速查找。可以用SEEK、SEEK()进行查找,仅适用于对已建索引表的快速查找,查找首次出现的纪录。SEEK索引表达式

[order索引名[asce|desc]]

用FOUND()函数测试查找是否成功。

6、利用索引快速定位记录3.3表的创建与使用第94页,课件共114页,创作于2023年2月例:USExsORDERxhSEEK“030506”?FOUND()SEEK()例:USExsORDERxh

SEEK(“030506”)?FOUNT()?RECNO()6、利用索引快速定位记录3.3表的创建与使用第95页,课件共114页,创作于2023年2月SELECT([0|1|表别名])用来测试工作区号。

?

SELECT(0)&&

注意与命令SELECT0不同。

?SELECT(1)?SELECT(“xs”)七、有关表操作的常用函数3.3表的创建与使用第96页,课件共114页,创作于2023年2月USED([工作区号|表别名])用于测试一张表的别名是否已使用,或在指定工作区中是否有表打开。?USED(“JS”)?USED(2)ALIAS([工作区号])

用于返回当前或指定工作区中表的别名。

?ALIAS()?ALIAS(1)七、有关表操作的常用函数3.3表的创建与使用第97页,课件共114页,创作于2023年2月FIELD(字段序号[,工作区号|表别名])用于返回已打开表的指定序号的字段名。

?FIELD(5,”XS”)FCOUNT([工作区号|表别名])用于返回已打开表的字段个数。

?FCOUNT()?FCOUNT(2)?FCOUNT(“XS”)七、有关表操作的常用函数3.3表的创建与使用第98页,课件共114页,创作于2023年2月DELETE()用于测试表的当前记录是否带删除标记。USEXSLOCATFORXS=“030201”?DELETE()七、有关表操作的常用函数3.3表的创建与使用第99页,课件共114页,创作于2023年2月表之间的关系表之间的永久关系参照完整性VFP参照完整性综述3.4永久关系与参照完整性第100页,课件共114页,创作于2023年2月一、表之间的关系关系的种类

温馨提示

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

评论

0/150

提交评论