版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、上一页下一页退 出1 15/3/2022第三章表的创建和使用(表的创建和使用(2 2)上一页下一页退 出2 25/3/20225/3/2022何为表文件?何为表文件?n用以用以大量大量存储各类数据存储各类数据n表文件的扩展名为表文件的扩展名为.dbfn表文件存有备注型或通用型数据时,则形成表文件存有备注型或通用型数据时,则形成同名表备注文件同名表备注文件.fptn表文件分为表文件分为数据库表数据库表和和自由表自由表两种类型两种类型n数据库表比自由表功能强数据库表比自由表功能强上一页下一页退 出3 35/3/20225/3/20223.3 3.3 表(表(Table)Table)3.3.1 表的
2、概念表的概念n数据表即一张二维表,简称数据表即一张二维表,简称表表, ,在在vfpvfp中保中保存为一个存为一个表文件表文件(.dbf)(.dbf)n表文件名规则:表文件名规则:p76p76 关键点:不能用关键点:不能用A-JA-J中的单个字母命名中的单个字母命名n表中的一列为字段表中的一列为字段(Field)(Field) vfpvfp中一张表最多可有中一张表最多可有255255个字段个字段n表中的一行为记录表中的一行为记录(Record)(Record) 同一张表每一个记录都有相同的字段同一张表每一个记录都有相同的字段上一页下一页退 出4 45/3/20225/3/20223.3.2 表结
3、构概述表结构概述n建表的步骤:建表的步骤: 1 1)定义表结构)定义表结构(人脑过程)(人脑过程) 即指定表包含的字段及其属性即指定表包含的字段及其属性 2 2)建立表的结构)建立表的结构 3 3)保存为表文件)保存为表文件 (人(人+ +机器过程)机器过程) 4 4)输入记录)输入记录-n表结构概述表结构概述上一页下一页退 出5 55/3/20225/3/20221 1、字段名、字段名( Field Name) ( Field Name) 见名知义,不能同名见名知义,不能同名 命名规则?(命名规则?(p76)p76)2 2、字段数据类型、字段数据类型(Type) (Type) p76p76表
4、表3-13-1 CC字符型字符型 NN数值形数值形 FF浮点型浮点型 DD日期型日期型 I I 整型整型 LL逻辑型逻辑型 MM备注型备注型 GG通用型通用型3 3、字段宽度、字段宽度(Width)(Width) ( (以下类型宽度固定)以下类型宽度固定)货币型、日期型、日期时间型、双精度型:货币型、日期型、日期时间型、双精度型:8 8字节字节整型、备注型、通用型:整型、备注型、通用型:4 4字节字节逻辑型:逻辑型:1 1字节字节上一页下一页退 出6 65/3/20225/3/20224 4、小数位数、小数位数(Decimal)(Decimal)有小数的字段:有小数的字段:数值型数值型、浮点型
5、、双精度型、浮点型、双精度型字段宽度字段宽度 = 整数部分宽度整数部分宽度 + 小数点小数点1位位 +小数位宽度小数位宽度p77的解释!的解释!5 5、空值支持、空值支持 ( Null )( Null )空值是用来标识一个字段空值是用来标识一个字段“没有值没有值”的标志的标志空值表示没有任何值或没有确定值,是用来表示数空值表示没有任何值或没有确定值,是用来表示数 据存在与否的属性说明据存在与否的属性说明空值不等同于数值空值不等同于数值0、空字符串或逻辑、空字符串或逻辑“假假”可用函数可用函数ISNULL( ) 测试空值测试空值, 判断某字段是否有值判断某字段是否有值上一页下一页退 出7 75/
6、3/20225/3/20223.3.2 3.3.2 表结构的创建和修改表结构的创建和修改方法方法: n可视化操作:可视化操作:表设计器表设计器 n命令方式:命令方式:SQL命令命令create table 表文件表文件: 文件名文件名.扩展名扩展名 文件名文件名.dbf 表结构若包含表结构若包含M、G字段,字段, 则系统同时自动产生表备注文件则系统同时自动产生表备注文件 文件名文件名.fpt上一页下一页退 出8 85/3/20225/3/20221、用表设计器创建表结构、用表设计器创建表结构(xs.dbf)(1) 打开打开“表设计器表设计器”?项目管理器项目管理器/自由表自由表/新建新建/新表
7、新表/保存保存注:注: A、也可从菜单或工具栏中直接新建表、也可从菜单或工具栏中直接新建表 B、与在、与在“项目管理器项目管理器”中新建表不同的是:中新建表不同的是: 这样新建的表将不包含在项目中这样新建的表将不包含在项目中(2)在在“表设计器表设计器”中创建表结构中创建表结构 表设计器表设计器/字段字段/输入输入/确定确定保存表结构保存表结构3.2.2 表结构的创建表结构的创建上一页下一页退 出9 95/3/20225/3/20222、用、用create table -SQL命令创建表结构命令创建表结构 p101 create table 表文件名表文件名(字段名字段名1 1 字段类型字段类
8、型 (字(字段宽度段宽度 ,小数位数,小数位数 )NULL|NOT NULLNULL|NOT NULL , 字段名字段名2 2 字字段类型段类型 (字段宽度(字段宽度 ,小数位数,小数位数 ) )例:例:学生表结构学生表结构 create table xs2(xh c(6),xm c(8),xb ; c(2),zydh c(6),ximing c(18) 上一页下一页退 出10105/3/20225/3/2022注意点注意点:表文件存放位置表文件存放位置? 表创建后的状态表创建后的状态?3、使用、使用Null值值n表设计器表设计器/字段字段/NULLncreate table 中中NULL,N
9、OT NULL子句子句例:例:create table zg(gh c(6) not null,xm c(8) not null,csrq d null)nset null on/Off上一页下一页退 出11115/3/20225/3/20223.3.2 修改表结构修改表结构1、表设计器、表设计器项目管理器项目管理器/选定表选定表/修改修改2、命令、命令nUSE XS / MODIFY STRUCTUREnALTER TABLE-SQL命令命令添加字段:添加字段:ADD COLUMN 子句子句例:例: ALTER TABLE XS ADD COLUMN BJMC C(12)重命名字段:重命名字
10、段:RENAME COLUMN 子句子句例例:ALTER TABLE XS RENAME COLUMN BJMC TO BJ删除字段:删除字段:DROP COLUMN 子句子句例:例: ALTER TABLE XS DROP COLUMN BJ上一页下一页退 出12125/3/20225/3/20223.3.3 字段属性与表属性字段属性与表属性n库表的字段属性库表的字段属性=自由表字段属性自由表字段属性+扩展属性扩展属性n库表的字段扩展属性设置库表的字段扩展属性设置通过库表设计器通过库表设计器进行进行n库表的字段扩展属性设置记载在数据字典中库表的字段扩展属性设置记载在数据字典中上一页下一页退
11、出13135/3/20225/3/2022一、字段的扩展属性一、字段的扩展属性 用于指定字段用于指定字段输入时输入时和和显示时显示时的格式的格式 1)字段的标题和注释:)字段的标题和注释:增强增强可读性可读性 2)字段的显示属性)字段的显示属性 字段格式:字段格式:指定字段数据指定字段数据显示显示的格式的格式P79表表3-2 字段格式字段格式 输入掩码:输入掩码:指定字段数据指定字段数据输入输入的格式的格式 P79表表3-3 输入掩码输入掩码上一页下一页退 出14145/3/20225/3/20223)默认值)默认值作用:作用:可减少用户的数据输入工作量可减少用户的数据输入工作量n添加记录时,
12、指定字段所具有的最初的值添加记录时,指定字段所具有的最初的值n字段字段默认值要与该字段类型匹配默认值要与该字段类型匹配n允许允许.NULL.值的字段,亦可将之置为值的字段,亦可将之置为 .NULL.n系统自动的默认值(系统自动的默认值(P80)上一页下一页退 出15155/3/20225/3/20224)字段的有效性规则和有效性信息)字段的有效性规则和有效性信息1.字段有效性规则字段有效性规则n有效性规则有效性规则作用:作用:控制用户输入到控制用户输入到字段字段中的数据的中的数据的取值范围取值范围(也可检查已输入字段值的合法性也可检查已输入字段值的合法性) 。n有效性规则有效性规则设置方式:设
13、置方式:一个逻辑表达式(包括该字一个逻辑表达式(包括该字段)段) 字段级规则在字段值改变时发生作用。字段级规则在字段值改变时发生作用。字段级的字段级的有效性规则将把已输入的字段值用所定义的规则表有效性规则将把已输入的字段值用所定义的规则表达式进行验证,如果输入的值不满足规则要求,则达式进行验证,如果输入的值不满足规则要求,则拒绝该值。拒绝该值。2. 有效性信息有效性信息n字段有效性信息:字段有效性信息:一个字符表达式,显示出错信息一个字符表达式,显示出错信息上一页下一页退 出16165/3/20225/3/20225)字段的默认控件类)字段的默认控件类n该属性用于指定使用该属性用于指定使用“表
14、单向导表单向导”生成表单或从数生成表单或从数据环境中将字段拖放到表单上时,与该字段相应的据环境中将字段拖放到表单上时,与该字段相应的控件类。控件类。上一页下一页退 出17175/3/20225/3/20222、数据库表的表属性、数据库表的表属性 数据库表不仅可以设置字段的高级属性,且可数据库表不仅可以设置字段的高级属性,且可为表设置属性为表设置属性(也作为数据字典内容保存也作为数据字典内容保存)表属性包括:表属性包括:n 长表名长表名n 表注释表注释n 表记录的有效性规则及说明表记录的有效性规则及说明n 触发器触发器上一页下一页退 出18185/3/20225/3/20222、数据库表的表属性
15、、数据库表的表属性(1 1)长表名与表注释)长表名与表注释(2 2)表记录的有效性规则和信息)表记录的有效性规则和信息(3 3)触发器)触发器上一页下一页退 出19195/3/20225/3/20221. 长表名与表注释长表名与表注释n表名长度规定表名长度规定n受操作系统的限制(受操作系统的限制(DOS、Windows)n自由表自由表,数据库表数据库表最长最长128个字符个字符n长表名作用:长表名作用:代替表名用以在各种窗口显示代替表名用以在各种窗口显示 增强可读性增强可读性n长表名使用:长表名使用:等同于表文件名等同于表文件名 但用使用长表名打开表时,表所属数据库必须打开并且是当前但用使用长
16、表名打开表时,表所属数据库必须打开并且是当前数据库,否则将不能成功打开。而使用表文件名打开表时,如果数据库,否则将不能成功打开。而使用表文件名打开表时,如果所属数据库未打开,将会自动打开数据库所属数据库未打开,将会自动打开数据库n表注释:表注释:表的说明信息表的说明信息上一页下一页退 出20205/3/20225/3/20222 .表记录的验证规则表记录的验证规则包括:包括:表记录表记录有效性规则和有效性信息有效性规则和有效性信息n作用:作用:记录级规则记录级规则 用来验证用户输入到用来验证用户输入到记录记录中的一组数据,通常校中的一组数据,通常校验同一验同一 记录中的两个或多个字段值之间是否
17、满足某种关记录中的两个或多个字段值之间是否满足某种关系要求。系要求。n设置方式设置方式: :包括记录相关字段的一个逻辑表包括记录相关字段的一个逻辑表达式达式上一页下一页退 出21215/3/20225/3/20222 .表记录的验证规则表记录的验证规则包括:包括:表记录表记录有效性规则和有效性信息有效性规则和有效性信息n何时被激活何时被激活n记录值改变时:记录值改变时: 在记录指针移离记录时检查;在记录指针移离记录时检查; 或关闭或关闭“浏览浏览”窗口时窗口时n增加记录有效规则,增加记录有效规则,一般要对已有记录数据进行检一般要对已有记录数据进行检查查n如何设置如何设置: : n表设计器表设计
18、器“表表”选项卡选项卡nCREATE TABLE CHECK、ERROR子句子句nALTER TABLE 命令的命令的SET CHECK 、ERROR子句子句上一页下一页退 出22225/3/20225/3/20222、数据库表的表属性、数据库表的表属性(3 3)触发器)触发器n 触发器(触发器(Trigger)是绑定在表上的逻辑表达式,当表中的任是绑定在表上的逻辑表达式,当表中的任何记录被修改(插入、更新或删除)时,在进行了其他所有检查何记录被修改(插入、更新或删除)时,在进行了其他所有检查之后被激活。之后被激活。n分为三类:分为三类:n 插入触发器插入触发器n 更新触发器更新触发器n 删除
19、触发器删除触发器n界面:界面: 通过库表设计器通过库表设计器 “表表”选项卡选项卡n 注意点:注意点:P P8282表表3-53-5上一页下一页退 出23235/3/20225/3/20223 3 表的触发器表的触发器n 基本概念:基本概念:n“表触发器表触发器” (Trigger)是在对表)是在对表插入、更插入、更新或删除新或删除记录时运行的记录时运行的检查规则检查规则n不同的不同的操作动作操作动作可以对应不同的可以对应不同的检查规则检查规则。nTrigger是绑定在表上的是绑定在表上的逻辑表达式逻辑表达式,当表中的,当表中的任何记录被指定的操作命令任何记录被指定的操作命令插入、更新或删除插
20、入、更新或删除时,时,对应触发器在其他规则进行了相关检查之后被激对应触发器在其他规则进行了相关检查之后被激活。活。n如果从数据库中移去一张表,则同时删除和该表如果从数据库中移去一张表,则同时删除和该表相关联的触发器。相关联的触发器。上一页下一页退 出24245/3/20225/3/2022n创建表的触发器:创建表的触发器:n三个触发器三个触发器n插入(插入(INSERTINSERT)触发器:)触发器:每次向表中插入或追加新记录时触发该规则;每次向表中插入或追加新记录时触发该规则;n更新(更新(UPDATEUPDATE)触发器:)触发器:每次在表中修改记录时触发该规则;每次在表中修改记录时触发该
21、规则;n删除(删除(DELETEDELETE)触发器:)触发器:每次在表中删除记录时触发该规则。每次在表中删除记录时触发该规则。触发器必须返回触发器必须返回.T.T.(允许操作(允许操作)或)或.F.F.(不允许操作)(不允许操作)上一页下一页退 出25255/3/20225/3/2022n创建方法创建方法n表设计器表设计器 “表表”选项卡选项卡n命令命令CREATE TRIGGER ON 表名表名 FOR INSERT AS 逻辑表逻辑表达式达式CREATE TRIGGER ON 表名表名 FOR UPDATE AS 逻辑表逻辑表达式达式CREATE TRIGGER ON 表名表名 FOR
22、DELETE AS 逻辑表逻辑表达式达式上一页下一页退 出26265/3/20225/3/2022n例例:在在JS1表中创建更新触发器表中创建更新触发器,防止防止GL字段值字段值 大于大于50(不大于不大于)CREATE TRIGGER ON JS1 FOR UPDATE ; AS GL=50n移去或删除触发器移去或删除触发器操作方法操作方法: :n表设计器表设计器 “表表”选项卡选项卡n命令命令DELETE TRIGGER ON 表名表名 FOR ; DELETE|INSERT|UPDATE 提醒:提醒:如果从数据库中移去或删除表如果从数据库中移去或删除表,则所有属于该表的则所有属于该表的触
23、发器都从数据库中删除触发器都从数据库中删除上一页下一页退 出27275/3/20225/3/2022 数据库表的字段级和记录级规则以及表的触发数据库表的字段级和记录级规则以及表的触发器等,为表数据的输入和修改实施了约束器等,为表数据的输入和修改实施了约束。数据库表的约束机制及其激活时机制数据库表的约束机制及其激活时机制约束机制约束机制级级 激活时机激活时机NULL有效性有效性字段字段 /列列 当从浏览中离开字段当从浏览中离开字段/列,或在执行列,或在执行INSERT或或 REPLACE更改字段值时。更改字段值时。字段级规则字段级规则字段字段 /列列 当从浏览中离开字段当从浏览中离开字段/列,或
24、在执行列,或在执行INSERT或或 REPLACE更改字段值时。更改字段值时。记录级规则记录级规则记录记录发生记录更新时。发生记录更新时。侯选侯选 /主索引主索引记录记录发生记录更新时。发生记录更新时。VALID子句子句表单表单移出记录时。移出记录时。触发器触发器表表在在 INSERT、 UPDATA或或 DELETE事事件中,表中值改变时。件中,表中值改变时。上一页下一页退 出28285/3/20225/3/20221、概念、概念 工作区:工作区:用以标识一张打开的表的区域用以标识一张打开的表的区域 打开表实质就是将数据表放入一个内存区打开表实质就是将数据表放入一个内存区-工作区工作区 每个
25、每个工作区工作区都由有一个编号都由有一个编号:1-32767(p68) 使用特点使用特点:一个工作区在某一时刻只能打开一张表一个工作区在某一时刻只能打开一张表.举例:举例: USE XS &默认在默认在1号工作区打开号工作区打开 LIST USE JS &XS自动关闭自动关闭 LIST3.3.4 表的打开与关闭表的打开与关闭3.3.4.1 3.3.4.1 工作区工作区上一页下一页退 出29295/3/20225/3/2022Cpu内内 存存磁盘磁盘表表1(1)表表2(2)表表3(86)表表4(11120)表表1(11121)上一页下一页退 出30305/3/20225/3/20
26、22一张表可以同时在多个工作区打开一张表可以同时在多个工作区打开.多张表可以同时在多个工作区分别打开多张表可以同时在多个工作区分别打开. 当前工作区当前工作区: 又称默认工作区又称默认工作区 即正在使用的工作区即正在使用的工作区在不指定情况下在不指定情况下, 系统以系统以当前工作区当前工作区的表为的表为操作对象操作对象Vfp系统启动后默认的系统启动后默认的当前工作区当前工作区为为1号号工作区工作区SELECT命令命令:选择当前工作区选择当前工作区 p83:语法语法上一页下一页退 出31315/3/20225/3/20222、表的别名、表的别名 对工作区中打开的表的一个临时标识对工作区中打开的表
27、的一个临时标识 USE ALIAS 例:例:USE XS ALIAS STUDENTS 重复打开?:重复打开?: USE XS Again In 03、当前工作区设定、当前工作区设定(1)在)在“数据工作期数据工作期”窗口中设置当前工作区窗口中设置当前工作区 窗口窗口/数据工作期数据工作期/别名别名 (2)命令)命令 SELECT 工作区号工作区号|别名别名例:例:SELE 2 SELE STUDENTS上一页下一页退 出32325/3/20225/3/2022SELECT命令命令:选择当前工作区选择当前工作区可以同时在多个工作区中打开多张表可以同时在多个工作区中打开多张表SELE 1USE
28、XSSELE 2USE JSSELE 1上一页下一页退 出33335/3/20225/3/2022n操作非当前工作区中的表操作非当前工作区中的表n把其它的工作区选为当前工作区把其它的工作区选为当前工作区SELE 2n在命令中强行指定工作区在命令中强行指定工作区GO TOP IN 工作区号工作区号|别名别名n关于关于 SELE 0 及及 IN 0 0 表示选择未被使用的最小编号的工作区表示选择未被使用的最小编号的工作区3.3.4.23.3.4.2数据工作期窗口数据工作期窗口 上一页下一页退 出34345/3/20225/3/2022nVFP在使用一个表前必须把表打开在使用一个表前必须把表打开 显
29、式打开显式打开:界面打开操作或者打开命令界面打开操作或者打开命令(use) 隐式打开隐式打开:由相关操作引起系统自动打开表由相关操作引起系统自动打开表n打开命令打开命令nUSE (当前默认目录下的表的打开当前默认目录下的表的打开)nUSE (指定目录下的表的打开指定目录下的表的打开)nVFP在结束使用一个表时,必须把表关闭在结束使用一个表时,必须把表关闭n关闭命令关闭命令nUSEnCLOSE ALLnCLOSE DATABASE/TABLE3.3.4表的打开和关闭表的打开和关闭上一页下一页退 出35355/3/20225/3/2022n刚创建的表处于打开状态刚创建的表处于打开状态n打开的表可以
30、被关闭打开的表可以被关闭,关闭的表也可以再关闭的表也可以再次打开次打开1、表的打开、表的打开n界面界面文件文件/打开或打开或“打开打开”按钮按钮窗口窗口/数据工作期数据工作期/打开打开在在“项目管理器项目管理器”中打开中打开USE ?上一页下一页退 出36365/3/20225/3/2022n 命令命令 (p85语法语法)USE USE IN n 多次打开同一张表多次打开同一张表一张表可以在多个工作区同时打开一张表可以在多个工作区同时打开USE AGAIN例:例:USE XS SELE 0 USE XS AGAIN上一页下一页退 出37375/3/20225/3/20222、表的关闭、表的关闭
31、n表的自动关闭表的自动关闭?n界面:窗口界面:窗口/数据工作期数据工作期/关闭关闭n命令命令USEUSE IN CLOSE ALL &数据库、索引、项目管理器等也被数据库、索引、项目管理器等也被关闭关闭CLOSE DATABASES &如果当前没有打开的数据如果当前没有打开的数据库,则把自由表全部关闭库,则把自由表全部关闭CLOSE TABLES &关闭所有工作区中的表关闭所有工作区中的表退出退出VFP注意注意:SQL语句能自动打开表,但不会自动关闭表!语句能自动打开表,但不会自动关闭表!上一页下一页退 出38385/3/20225/3/2022 表的独占与共享使用表的
32、独占与共享使用表的共享使用:一张表可以同时被多个用户打开访问表的共享使用:一张表可以同时被多个用户打开访问(SHARED)表的独占使用:一张表只能被一个用户打开表的独占使用:一张表只能被一个用户打开(默认默认)(EXCLUSIVE)n设置独占与共享打开表的状态设置独占与共享打开表的状态n工具工具/选项选项/数据数据nSET EXCLUSIVE OFF/ON(共享共享/独占独占)n强行用一种方式打开表强行用一种方式打开表n“打开打开”“独占独占”复选框复选框nUSE USE SHARED/EXCLUSIVE SHARED/EXCLUSIVEn设置改变,并不改变已经打开的表的状态(演示)设置改变,
33、并不改变已经打开的表的状态(演示)n一张表同时被多次打开时,只以第一次的打开方式为准一张表同时被多次打开时,只以第一次的打开方式为准(窗口(窗口/ /数据工作期)数据工作期)上一页下一页退 出39395/3/20225/3/2022 3.3.5 3.3.5 记录的处理记录的处理一、记录的输入一、记录的输入1、立即输入记录(、立即输入记录(显示显示/追加方式追加方式)2、浏览窗口下追加(、浏览窗口下追加(浏览浏览/显示显示/追加方式追加方式 表表/追加新记录追加新记录)3、使用、使用INSERT - SQL命令追加记录命令追加记录INSERT INTO 表名表名(字段(字段1,字段,字段2);
34、VALUES(表达式(表达式1,表达式,表达式2)例:例:INSERT INTO XS(XH,XM,XB,XIMING);); VALUES(“950106”,“高山高山” ,“男男”,“管理系管理系”)4、其它追加记录方法、其它追加记录方法n 命令命令APPEND BLANK :追加空记录追加空记录n APPEND FROM:从其他表或文件中追加记录从其他表或文件中追加记录5、备注型与通用型字段数据输入、备注型与通用型字段数据输入上一页下一页退 出40405/3/20225/3/2022二、记录的浏览二、记录的浏览1、浏览窗口、浏览窗口n进入进入 :BROWSE 命令命令 use xs/显示
35、显示/浏览浏览项目管理器项目管理器/选定某个表选定某个表/单击单击“浏览浏览”按钮按钮 n使用:窗口、使用:窗口、“表表”菜单、命令菜单、命令2、BROWSE命令命令nLIST nBROWSE FIELDS xh,xm,xb for . p88:语法语法上一页下一页退 出41415/3/20225/3/2022三、记录的筛选三、记录的筛选n 界面界面P88 “表表”“属性属性”“数据过滤器数据过滤器”例:例:找出所有小于找出所有小于60岁的人岁的人n 命令命令n SET FILTER TO n SET FILTER TOn BROWSEn FOR子句子句n 注意:注意:n是隐藏而非删除是隐藏而
36、非删除n对对SELECT-SQL、 DELETE-SQL、UPDATE-SQL无效无效上一页下一页退 出42425/3/20225/3/2022四、限制对字段的访问四、限制对字段的访问n表表/属性属性/字段筛选字段筛选nBROWSE FIELDSnSET FIELDS TO上一页下一页退 出43435/3/20225/3/2022五、记录的定位五、记录的定位Go topgo bottomskip1、记录指针标志、记录指针标志记录号:按初次输入顺序记录号:按初次输入顺序记录的开始标志记录的开始标志 BOF ( )记录指针标志记录指针标志: 当前记录当前记录 RECNO ( )记录的结束标志记录的
37、结束标志 EOF ( )2、记录的定位方式、记录的定位方式绝对定位绝对定位 go to相对定位相对定位 skip条件定位条件定位 locate for第第n条记录条记录第第1条记录条记录:文件头文件头上一页下一页退 出44445/3/20225/3/2022例例1 1:假设假设xs表有表有13条记录,先后执行以条记录,先后执行以 下命令:下命令: bof() eof() recno()Use xs f f 1Skip -1 t f 1 skip -1 出错出错 Go bott f f 13 skip f t 14 skip 出错出错上一页下一页退 出45455/3/20225/3/2022例例
38、2 2 ?recno( )Use xs 1go 5 5skip +2 7skip -3 4locate for xm=“高平” 8 上一页下一页退 出46465/3/20225/3/20223、记录定位的实现、记录定位的实现n界面方式界面方式 (“表表”“转到记录转到记录”)记录号:绝对定位记录号:绝对定位 goto定位:条件定位定位:条件定位 locate for作用范围作用范围:all,next,record,rest,for找到找到/未找到未找到n命令方式命令方式 绝对定位绝对定位:GO( GOTO ) GO( GOTO ) TOP/BOTTOM 相对定位:相对定位:SKIP 快速移动快
39、速移动:SEEK 及 FIND(与索引有关)(与索引有关)上一页下一页退 出47475/3/20225/3/2022六、记录的修改六、记录的修改1、在浏览窗口中修改、在浏览窗口中修改n表打开后:表打开后:EDIT / CHANGE / BROWSE 或者:显示或者:显示/浏览浏览n项目管理器项目管理器/浏览浏览例:修改例:修改xs表中第表中第5条记录条记录 use xs edit record 5上一页下一页退 出48485/3/20225/3/20222、批量记录的修改、批量记录的修改(1)界面方式)界面方式 “表”“替换字段”字段条件(2)命令方式)命令方式-UpdatenUPDATE-S
40、QL命令命令(表不必事先打开表不必事先打开,语法见语法见p92) UPDATE 表名表名; SET 字段字段1=表达式表达式1,字段字段2=表达式表达式2; WHERE 条件表达式条件表达式例:把例:把js表中所有工龄不满表中所有工龄不满30的教师的工龄加的教师的工龄加1UPDATE JS SET GL=JS.GL+1 WHERE GL30上一页下一页退 出49495/3/20225/3/20222、批量记录的修改、批量记录的修改(2)命令方式)命令方式-ReplacenREPLACE 命令(命令(P92) Replace 字段名字段名1 with 表达式表达式1 Additive , , 范
41、围范围For 条件表达式条件表达式n注意:注意:使用前必须打开对应的表使用前必须打开对应的表n示例示例 USE JS REPLACE GL WITH GL+1 FOR GL60或者或者: use js delete for year(date()-; year(js.csrq)602、彻底删除(物理删除)、彻底删除(物理删除)浏览窗口浏览窗口/“表表”/“彻底删除彻底删除”命令命令: PACK(独占)(独占)以上操作将以上操作将彻底删除彻底删除当前工作区表中当前工作区表中加注删除标志记录加注删除标志记录!命令命令:ZAP 相当于相当于delete all +pack(独占)(独占)ZAP操作将
42、操作将彻底删除彻底删除当前工作区表中当前工作区表中所有记录所有记录!上一页下一页退 出52525/3/20225/3/20223.恢复带删除标记的记录恢复带删除标记的记录(撤销逻辑删除)(撤销逻辑删除) 法法1:鼠标点击:鼠标点击删除标记列删除标记列小方框小方框/ 黑黑-白白 法法2:“表表”“恢复记录恢复记录” (条件恢复)(条件恢复) 法法3:RECALL 范围范围 FOR 逻辑条件表达式逻辑条件表达式 recall &恢复当前记录恢复当前记录 recall all recall all for xb=男男 (这里的这里的all 可省可省)上一页下一页退 出53535/3/2022
43、5/3/20224.对带删除标记记录的访问对带删除标记记录的访问(1)测试当前记录的删除标记测试当前记录的删除标记:delete()函数函数(2)控制对带删除标记记录的访问控制对带删除标记记录的访问 set deleted on/off说明:说明:默认为默认为OFF(允许访问带删除标记记录允许访问带删除标记记录)实验:实验:先删除若干记录(逻辑删除)先删除若干记录(逻辑删除)LIST 默认为默认为OFFSET DELETED ONLIST上一页下一页退 出54545/3/20225/3/2022n数据的复制:数据的复制:COPY TO命令命令 作用:作用:将当前工作区中表的数据复制到其他表文件
44、或其将当前工作区中表的数据复制到其他表文件或其他类型文件中他类型文件中语法格式:语法格式: Copy To 文件名文件名 Fields 字段列表字段列表范围范围For 条件条件表达式表达式SDF|XLS|DELIMITEDWith 分隔符分隔符 八、数据的复制八、数据的复制上一页下一页退 出55555/3/20225/3/20223.3.6 表的索引表的索引1、 记录的顺序记录的顺序n物理顺序:指物理顺序:指表记录表记录在存储介质上形成的在存储介质上形成的存储顺序存储顺序 是按其是按其最初输入的时间顺序最初输入的时间顺序存放的存放的 查找记录方式:按顺序找,速度慢,查找效率底查找记录方式:按顺
45、序找,速度慢,查找效率底 如何实现对表记录的快速查询?如何实现对表记录的快速查询?n逻辑顺序:既将逻辑顺序:既将初始表记录初始表记录按其按其某个字段值某个字段值或或某些字段某些字段 值的运算结果值的运算结果进行排序,从而形成的进行排序,从而形成的表表记录记录 新顺序新顺序 可作为记录的处理顺序可作为记录的处理顺序 逻辑顺序下:可用快速查找记录方式逻辑顺序下:可用快速查找记录方式上一页下一页退 出56565/3/20225/3/2022n排序与索引排序与索引 表记录如何按用户要求重新排序?表记录如何按用户要求重新排序? 两种方法:两种方法:按某种逻辑顺序要求排序后形成新表按某种逻辑顺序要求排序后
46、形成新表建立索引建立索引?形成索引:?形成索引:将按某种逻辑顺序要求排序后形将按某种逻辑顺序要求排序后形成新的表顺序号成新的表顺序号(逻辑顺序号)(逻辑顺序号)与原表物理与原表物理顺序的记录号一一对应,建立一个对照表顺序的记录号一一对应,建立一个对照表,再将该对照表保存为一个独立文件。再将该对照表保存为一个独立文件。索引的优点:索引的优点:(1)速度快;)速度快;(2)容量小;)容量小;(3)多角度)多角度上一页下一页退 出57575/3/20225/3/2022 索引概述索引概述1、索引(、索引(Index) 是根据是根据索引关键字索引关键字(索引表达式)(索引表达式)的值的值进行进行逻辑逻
47、辑排序(升序或降序)排序(升序或降序),形成由,形成由索引序号指针索引序号指针与表原与表原物物理记录指针理记录指针相对应的一组指针。相对应的一组指针。 索引文件构成索引文件构成:索引序号索引序号-记录号记录号(物理顺序指针)(物理顺序指针) 主要作用主要作用:实现对表数据的:实现对表数据的快速访问快速访问 根据根据索引关键字值索引关键字值强制实现表记录唯一性强制实现表记录唯一性2、索引关键字、索引关键字(Index Key)n建立索引的依据建立索引的依据-由由字段组成字段组成的索引表达式的索引表达式n索引关键字组成:单个字段索引关键字组成:单个字段/多字段表达式多字段表达式n注意!注意!-不能
48、基于备注型和通用型字段建立索引不能基于备注型和通用型字段建立索引上一页下一页退 出58585/3/20225/3/2022n多字段索引表达式要求同类型字段相运算多字段索引表达式要求同类型字段相运算nVFP使用使用索引关键字的值索引关键字的值来排序形成来排序形成索引序号索引序号 对索引关键字对索引关键字值值: 由小到大排序由小到大排序-升序升序 由大到小排序由大到小排序-降序降序n用用多个字段多个字段建立索引表达式时应建立索引表达式时应注意注意:字符型索引表达式字符型索引表达式中各字段的中各字段的运算顺序运算顺序将影响索引的将影响索引的结果结果 例如:例如:(XIMING+XB)与()与(XB+
49、XIMING)多个数值型字段建立的多个数值型字段建立的数值型索引表达式,数值型索引表达式,将按表达将按表达式式最终运算结果值最终运算结果值排序排序 例如:例如:JBGZ+GL 若要按各数值字段值分别排序,并按各自在若要按各数值字段值分别排序,并按各自在索引表达索引表达式中式中的前后顺序确立优先排序权,则必须先转为字符型:的前后顺序确立优先排序权,则必须先转为字符型:STR(JBGZ)+STR(GL)上一页下一页退 出59595/3/20225/3/2022不同类型字段不同类型字段构成索引表达式时,必须转为构成索引表达式时,必须转为同一类型同一类型,通常转为字符型,转换函数:,通常转为字符型,转
50、换函数:STR与与DTOC函数函数 例如:例如:XB+ STR (JBGZ) DTOC(gzrq)+STR (JBGZ)3、索引标识(、索引标识(Tag)nVfp中一张表可以有多个索引中一张表可以有多个索引n表的多个索引必须有对应的索引名表的多个索引必须有对应的索引名-索引标识索引标识 即即索引关键字的名称索引关键字的名称(索引名索引名)n命名规则同前命名规则同前n要便于记忆要便于记忆上一页下一页退 出60605/3/20225/3/20224、索引的类型、索引的类型 vfp中可创建的表索引有四种类型中可创建的表索引有四种类型:n侯选索引侯选索引(Candidate indexs)以表的侯选关
51、键字作为索引表达式而创建的索引以表的侯选关键字作为索引表达式而创建的索引侯选索引要求侯选索引要求: :对表中所有记录而言对表中所有记录而言: : 指定的索引表达式中不允许有重复值指定的索引表达式中不允许有重复值! !一张表中可以建立多个侯选索引一张表中可以建立多个侯选索引侯选索引可用于数据库表和自由表侯选索引可用于数据库表和自由表n主索引主索引(Primary indexs)只存在数据库表中只存在数据库表中, ,且每张表只能创建一个主索引且每张表只能创建一个主索引组成主索引关键字的字段或表达式组成主索引关键字的字段或表达式, ,在表的所有记录在表的所有记录中不能有重复的值中不能有重复的值( (
52、例如例如: :学号可以学号可以, ,姓名不可以姓名不可以) )自由表不能建立主索引自由表不能建立主索引上一页下一页退 出61615/3/20225/3/2022n普通索引普通索引(Regular indexs)(Regular indexs)同样可以决定记录的逻辑处理顺序同样可以决定记录的逻辑处理顺序可用于数据库表和自由表可用于数据库表和自由表允许索引关键字值或表达式的值出现重复允许索引关键字值或表达式的值出现重复对一张表可以创建多个普通索引对一张表可以创建多个普通索引n唯一索引唯一索引(Unique indexs)(Unique indexs)参加索引的字段值或表达式值在表中允许有重参加索引
53、的字段值或表达式值在表中允许有重复值复值, ,但在索引对照表中但在索引对照表中, ,具有重复值的记录仅具有重复值的记录仅存储其中的第一个存储其中的第一个(XIMING)(XIMING)其他特性与普通索引相同其他特性与普通索引相同上一页下一页退 出62625/3/20225/3/20225、索引文件的种类、索引文件的种类 索引本身并不改变表中数据的物理顺序号索引本身并不改变表中数据的物理顺序号 建立的索引信息将保存在索引文件中建立的索引信息将保存在索引文件中 vfp支持三种索引文件:支持三种索引文件:n结构复合索引文件结构复合索引文件(CDX)将一张表的一个或多个索引信息存储在一个索引文件中将一
54、张表的一个或多个索引信息存储在一个索引文件中与数据表同名与数据表同名文件名是在创建文件名是在创建结构复合结构复合索引时由系统自动给定索引时由系统自动给定结构复合索引文件与表文件同步打开、更新、关闭结构复合索引文件与表文件同步打开、更新、关闭是表结构的一部分是表结构的一部分n非结构复合索引文件(非结构复合索引文件(CDXCDX)文件名由用户给出,与表文件不同名文件名由用户给出,与表文件不同名不再是表结构的一部分,不随不再是表结构的一部分,不随表文件同步打开、更新、关闭表文件同步打开、更新、关闭n独立索引文件(独立索引文件(IDXIDX):只存储一个索引的索引文件):只存储一个索引的索引文件上一页
55、下一页退 出63635/3/20225/3/2022 创建结构复合索引文件创建结构复合索引文件n利用表设计器利用表设计器“表设计器表设计器”“索引索引”选项卡选项卡nIndex命令命令INDEX ON TAG FOR ASCENDING|DESCENDINGASCENDING|DESCENDINGUNIQUE|CANDIDATEUNIQUE|CANDIDATE注意!注意!n默认对当前工作区表操作默认对当前工作区表操作n不能对备注字段和通用字段建立索引不能对备注字段和通用字段建立索引n不要建立无用的索引不要建立无用的索引上一页下一页退 出64645/3/20225/3/2022 索引的修改和删除
56、索引的修改和删除n索引的修改索引的修改n表设计器表设计器“表设计器表设计器”“索引索引”选项卡选项卡n命令命令INDEX命令修改原索引命令修改原索引n索引的删除索引的删除n表设计器表设计器“表设计器表设计器”“索引索引”选项卡选项卡nDELETE TAG 删除索引标识删除索引标识n注意!命令操作对象为当前工作区表注意!命令操作对象为当前工作区表上一页下一页退 出65655/3/20225/3/2022 索引的使用索引的使用注意:表可以有多个索引,在某一时刻哪个索引起作用?注意:表可以有多个索引,在某一时刻哪个索引起作用? 创建的表结构复合索引不会自动对表产生作用!创建的表结构复合索引不会自动对
57、表产生作用!n设置主控索引设置主控索引 主控索引主控索引:决定显示或访问表中记录的顺序的索引决定显示或访问表中记录的顺序的索引主控索引是主控索引是:复合索引文件中的一个标识复合索引文件中的一个标识(主控标识主控标识)n打开表的同时指定主控索引打开表的同时指定主控索引 命令:命令:use+ordern打开后再设置主控索引打开后再设置主控索引窗口窗口 /数据工作期数据工作期 /属性属性/索引顺序索引顺序 或:浏览或:浏览/表表/属性属性/索引顺序索引顺序命令命令 SET ORDER TO上一页下一页退 出66665/3/20225/3/2022nSEEK 命令命令用于在一张表中搜索指定表达式值首次
58、出现的记录用于在一张表中搜索指定表达式值首次出现的记录 该记录的索引关键字值必须与指定表达式值匹配。该记录的索引关键字值必须与指定表达式值匹配。命令语法命令语法SEEK 命令只能在索引过的表中使用命令只能在索引过的表中使用,并且只能搜并且只能搜索索引关键字索索引关键字 例如:例如:(XS/960102)测试:测试:RECNO() EOF()FOUND() P100n函数:SEEK () =SEEK+FOUND()利用索引快速定位记录利用索引快速定位记录上一页下一页退 出67675/3/20225/3/20221.库表之间的永久关系库表之间的永久关系(1) (1) 永久关系(永久关系(persi
59、stent relationshippersistent relationship)n永久关系是库表之间的一种关系,不仅在运行时存在,永久关系是库表之间的一种关系,不仅在运行时存在,而且一直保留,而且一直保留,拥有永久关系的表必须在数据库中拥有永久关系的表必须在数据库中。n表间的永久关系是表间的永久关系是使用索引建立使用索引建立的。的。n在一对多关系中,在一对多关系中,“一方一方”( (主表主表) )必须用必须用主索引关键字主索引关键字(或主索引标识),或者用(或主索引标识),或者用侯选索引关键字侯选索引关键字(或侯选标(或侯选标识);在识);在“多方多方”( (子表子表) )则使用则使用普通
60、索引关键字普通索引关键字(或普(或普通索引标识)。通索引标识)。n在一对一关系中,两个表必须都用在一对一关系中,两个表必须都用主索引关键字主索引关键字(或主(或主索引标识)或索引标识)或侯选索引侯选索引(或侯选索引标识)。(或侯选索引标识)。3.4 永久性关系与参照完整性永久性关系与参照完整性上一页下一页退 出68685/3/20225/3/2022(2) (2) 永久关系作用永久关系作用n在在“查询设计器查询设计器”和和“视图设计器视图设计器”中,自动作为中,自动作为默认联接条件默认联接条件n作为表单和报表的默认的临时关系,在作为表单和报表的默认的临时关系,在“数据环境数据环境设计器设计器”中显示中显示n用来存储表之间的参照完整性信息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB32T-防汛抗旱特征水位核定规程编制说明
- 海南省海口市2024-2025学年四年级(上)期末语文试卷(含答案)
- 2025年社会服务行业投资策略报告:稳舵定锚行致远奋楫扬帆谱新篇
- 球的表面积和体积课件
- 【大学课件】单片机的系统扩展
- 经济学马晓莲课件房地产市场研究分析
- 中国证券市场供需格局及未来发展趋势报告
- 2025年容积泵项目可行性研究报告
- 中国陶瓷耐磨砖项目投资可行性研究报告
- 2025共同出资合作开发地块合同模板
- 2024-2024年上海市高考英语试题及答案
- Python数据分析与应用 课件 第12章 Seaborn
- 初三历史复习备考策略
- 广东省云浮市(2024年-2025年小学五年级语文)人教版期末考试(上学期)试卷及答案
- 国潮风中国风2025蛇年大吉蛇年模板
- 《信托知识培训》课件
- 物业项目经理岗位竞聘
- 第8课《蒲柳人家(节选)》教学设计-2023-2024学年统编版语文九年级下册
- 幼儿沙池活动指导方法
- 2024年冬季校园清雪合同
- 翻译美学理论
评论
0/150
提交评论