




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、数据库的基本概念一、数据库的基本概念 l 数据库的概念:数据库的概念:数据库是一个容器,是许多相关的数数据库是一个容器,是许多相关的数据库表及其关系的集合据库表及其关系的集合l 数据库设计的一般步骤:数据库设计的一般步骤:*需求分析;需求分析;*分解问题,确分解问题,确定表;定表;*确定表中字段;确定表中字段;*确定表之间关系;确定表之间关系;*改进优化改进优化l 数据库的功能:数据库的功能:存储一系列表,在表间建立关系,设存储一系列表,在表间建立关系,设置属性和数据有效性规则使相关联的表协同工作。置属性和数据有效性规则使相关联的表协同工作。l 库文件类型:库文件类型:每创建一个新的数据库
2、都将产生三个文每创建一个新的数据库都将产生三个文件:件:数据库文件数据库文件.dbc,关联的数据库备注文件关联的数据库备注文件.dct,关,关联的数据库索引文件联的数据库索引文件.dcx设计一个完善、高效和结构优化的数据库,是创建以数据设计一个完善、高效和结构优化的数据库,是创建以数据库为基础的信息系统中必不可少的重要环节,库为基础的信息系统中必不可少的重要环节,VFP的主要的主要操作对象就是数据库(库表)操作对象就是数据库(库表)n一对一关系(1:1) 设有甲乙两张表,如果甲表的一个记录在乙表中有且只有一个记录与之对应,则这两张表之间的关系为“一对一关系”。这种关系在实际应用中不常使用。在许
3、多情况下,两张表的信息可以简单合并成为一张表。确定表之间的关系确定表之间的关系n一对多关系(1:n) 设有甲乙两张表,如果甲表的任意一个记录在乙表中都有几个记录与之对应,而乙表中的每个记录在甲表中仅有一个记录与之对应,则这两张表之间的关系为“一对多关系”。甲表为“一表”(或“主表”、“父表”),乙表为“多表”(或“子表”)。1:nn多对多关系(m:n) 设有甲乙两张表,如果甲表的任意一个记录在乙表中存在多个记录与之对应,而乙表中的每个记录在甲表中也存在多个记录与之对应,则这两张表之间的关系为“多对多关系”。在实际应用中,多对多关系不能直接使用,必须建立第三张表,把多对多的关系分解成两个一对多关
4、系,这张表称为“纽带表”。1:mn:1m:n分析并确定表之间的关系 系 代 码 表 教 师 表 课 程 表 学 生 表 专 业 表 成 绩 表 任 课 表 图上箭头所示的关系均为一对多关系图上箭头所示的关系均为一对多关系3.1.2 数据库的组成n数据库表n表之间的关系n连接n视图n存储过程库与表之间的双向链接库与表之间的双向链接n前链前链n保存在数据库文件中保存在数据库文件中 n存储有关表文件的路径和文件名信息存储有关表文件的路径和文件名信息 n指向库表指向库表 n后链后链n存放在一张表的表头中存放在一张表的表头中 n存储有关库文件的路径和文件信息存储有关库文件的路径和文件信息 n指向拥有该表
5、的数据库指向拥有该表的数据库 存储过程n存储过程是保存在数据库中的过程代码的地方 n保存用户自定义函数和过程n保存参照完整性代码n打开数据库时,它们便被加载到内存中 l 概念概念:数据字典是指存储在数据库中,用于:数据字典是指存储在数据库中,用于描述所管理的表和对象的数据;存储在数据描述所管理的表和对象的数据;存储在数据字典中的信息称之为字典中的信息称之为元数据元数据(Metadata),),换言之,其记录的是关于数据的数据。换言之,其记录的是关于数据的数据。VFPVFP数据字典概述数据字典概述 l 数据字典的功能数据字典的功能:创建和指定以下内容:创建和指定以下内容表中字段的标题、注释、默认
6、值、输入掩表中字段的标题、注释、默认值、输入掩码和显示格式,以及表单中的默认控件码和显示格式,以及表单中的默认控件表的主索引关键字表的主索引关键字长表名和表注释长表名和表注释字段级和记录级有效性规则字段级和记录级有效性规则存储过程存储过程插入、更新和删除事件触发器插入、更新和删除事件触发器3.2 创建数据库l 数据库的创建:数据库的创建:l 界面方式界面方式: 1、 在在“项目管理器项目管理器”中创建,创建的库在中创建,创建的库在项目项目 2 、通过、通过“新建新建”按钮或按钮或“文件文件”“新建新建”来创建,来创建, 创建的库不在项目中创建的库不在项目中命令方式:命令方式: 用用create
7、 database databasename|?l 打开一个库:打开一个库:界面方式:界面方式:新建一个数据库,保存后会自动打开新建一个数据库,保存后会自动打开在打开一个数据库表时,系统也会自动在打开一个数据库表时,系统也会自动的打开相应的库的打开相应的库在在“项目管理器项目管理器”中用中用“打开打开”或或“修修改改”按钮按钮命令方式:命令方式:Open database databaseNameexclusive|sharednoupdatevalidaten打开数据库设计器nMODIFY DATABASEl设置当前数据库设置当前数据库在在“常用常用”工具栏工具栏“数据库下拉列表数据库下拉列
8、表”中选择中选择利用利用set database to databaseName命令来命令来进行设置进行设置l检查数据库的有效性:检查数据库的有效性:p75n若用户移动了数据库文件若用户移动了数据库文件(.dbc,.dct,.dcx)或与数据库相关联的)或与数据库相关联的表文件,则这些文件的相对路径会改变,表文件,则这些文件的相对路径会改变,那么有可能破坏那么有可能破坏VFP关联库和表的双向关联库和表的双向链接,就需要重建链接或检查有效性,链接,就需要重建链接或检查有效性,使用命令:使用命令:Validata database recoverto printer|to file filenam
9、e 可取消后链,使此表成为真正的自由表。 n关闭数据库nCLOSE DATABASE:关闭当前数据库 nCLOSE DATABASE ALL:关闭所有数据库nCLOSE ALL:关闭所有数据库、表、索引及设计器n关闭库:关闭库:“项目管理器项目管理器”“关闭关闭”按钮按钮 n删除数据库n“项目管理器项目管理器”“移去移去”按钮按钮;delete file3.3 表的创建与使用n根据是否从属于数据库分类:n自由表n数据库表n自有表和数据库表的差异:n自由表具有的特性数据库表都有,但数据库表还具有数据库管理的其他特性 自由表自由表数据库表数据库表数据库l 库表的创建库表的创建 :v界面方式:界面方
10、式:选中选中“项目管理器项目管理器”“数据库数据库”“表表”,新建按钮新建按钮“数据库设计器数据库设计器”“数据库设计器工具数据库设计器工具栏栏”“新建表新建表”在数据库打开时在数据库打开时,“文件文件”“新建新建”或或“新建新建”按钮按钮v命令方式:命令方式:p101,注意注意name与与free子句子句在数据库打开时在数据库打开时,利用,利用create table-SQL语句语句来创建表,此时若在命令中不使用来创建表,此时若在命令中不使用free子句,子句,则创建的为库表则创建的为库表注意注意:在利用命令创建库表时,可以使用:在利用命令创建库表时,可以使用name子句定义长表名(表名长度
11、可超过子句定义长表名(表名长度可超过128个个字符)字符)3.3.1 表结构n表:存放在磁盘文件中的一张二维表,一张表保存为一个表文件。n表的扩展名n.DBF 表文件n .FPT 备注文件(当表中有备注字段通用字段)n字段,最多255个字段n记录 n表的组成:表结构+表数据v表结构:字段名、数据类型、宽度1字段名 (命名规则)2字段的数据类型n字母表示:CharactercurrencYNumericFloatDate dateTime douBle Integer Logical Memo Generaln日期型输入 / / 、逻辑型表示n备注型(不定长的一段文字)n通用型(图片、声音等)3
12、字段宽度(能容纳的最大字节数)n除字符型、数值型和浮点型外,其他类型的宽度固定n逻辑型1字节,日期型8字节n备注型、通用型字段宽度为4字节,包含的是引用信息n指向真正的备注内容和包含真正图片及声音的文件。n有内容时在表中显示为大写字母M、G ; 无内容为小写字母m、g。双击打开窗口可以输入内容。表文件.dbf4字节备注文件.FPT备注型/通用型问题?M有多个备注字字段,对应几个备注文件? n如果表结构中存在一个或多个备注型字段,则存在且仅一个同名的备注文件,扩展名为.FPT,M各记录的备注段、通用字段中保存的是什么内容?n各记录的备注字段 指出备注文字在备注文件中的位置。n各记录的通用字段 指
13、向备注文件中所管理的数据对象。4小数位数 n在数值型、浮点型、双精度型中可以指定小数位数。n字段宽度=整数宽度+小数点1位+小数宽度M123.4的宽度是多少? 55空值支持(.NULL.)n空值表示没有任何值或没有确定值,不等同于数值0、空字符串或逻辑假值n允许接受空值:选定表设计器NULL列 n在表中输入空值:按CTRL+0 n给变量赋空值:变量名= . NULL . n建表的命令:P101nCREAT TABLE CJ1 NAME 考试成绩 (XH C(12),KCDM C(6),CJ N(5,1),CJBZ C(4)n表设计器:n项目管理器窗口-修改按扭n对于有项目管理的表nUSE 表名
14、 -MODIFY STRUCTURE问 题M表设计器只读怎么办? 当表共享打开时,表设计器为只读M打开表设计器的命令?modify structure3.3.3 数据库表字段的扩展属性n标题(Caption)n注释(Comment)n字段的显示格式(Format)n输入掩码(InputMask)n默认值n字段的验证规则、信息数据库表除了具有自由表的属性之外,还可以设置一些数据库表除了具有自由表的属性之外,还可以设置一些扩展属性;这些属性在扩展属性;这些属性在“表设计器表设计器”中设置,并作为数中设置,并作为数据字典保存在数据库中据字典保存在数据库中l库表的字段扩展属性库表的字段扩展属性 :P7
15、880,例例v字段显示属性:字段显示属性:只要求会根据给出的条件进行设只要求会根据给出的条件进行设置置字段格式字段格式:用于指定字段用于指定字段显示时的格式显示时的格式,包括浏览窗口、,包括浏览窗口、表单和报表中显示时的大小写和样式等,可用的格式字母表单和报表中显示时的大小写和样式等,可用的格式字母代号见代号见 P79 表表3-2输入掩码:输入掩码:用于指定字段中用于指定字段中输入数据的格式输入数据的格式,可用的掩,可用的掩码字符见码字符见P79 表表3-3字段的标题和注释:字段的标题和注释:标题和注释是为了使表标题和注释是为了使表具有更好的具有更好的可读性和可理解性可读性和可理解性,不是必需
16、的;在,不是必需的;在“项目管理器项目管理器”中选中选中字段,窗口下部的状态栏会显示字段注释中字段,窗口下部的状态栏会显示字段注释设置字段级规则n 用来进一步限定字段的取值范围用来进一步限定字段的取值范围n 包括:包括:n 有效性规则有效性规则n 有效性信息有效性信息n 默认值默认值字段有效性规则:字段有效性规则:用来控制输入到字段中的数据的取用来控制输入到字段中的数据的取值范围,是一个值范围,是一个逻辑表达式逻辑表达式,且,且当前字段包含在表达式当前字段包含在表达式当中;当输入数据时,系统根据表达式进行验证,若结当中;当输入数据时,系统根据表达式进行验证,若结果为果为.t.,则接收输入的值;
17、否则,拒绝输入的值,并且,则接收输入的值;否则,拒绝输入的值,并且显示一个提示框显示一个提示框字段有效性信息:字段有效性信息:它是有效性规则的说明,它是有效性规则的说明,是一个字是一个字符表达式符表达式,是在拒绝输入值时显示的提示框中的说明信,是在拒绝输入值时显示的提示框中的说明信息息默认值默认值:向一张数据库表中添加新记录时所指定的最向一张数据库表中添加新记录时所指定的最初的值称为该字段的默认值,初的值称为该字段的默认值,它必须是一个与字段类型它必须是一个与字段类型相同的表达式相同的表达式,适当的设置默认值可以减少输入的工作,适当的设置默认值可以减少输入的工作量量nXb$”男女”n字段的默认
18、控件类型:作用是指定在使字段的默认控件类型:作用是指定在使用用“表单向导表单向导”生成表单或从数据环境生成表单或从数据环境中将字段拖放到表单上时,与字段相对中将字段拖放到表单上时,与字段相对应的控件类应的控件类n 还可以利用命令来进行扩展属性的设置:还可以利用命令来进行扩展属性的设置:P101102Create table 表名表名 (字段名(字段名 类型(宽度)类型(宽度)default 表达式表达式check 表达式表达式error 提示信提示信息息)Alter table 表名表名 alter column 字段名字段名 set defa 表达式表达式set check 表达式表达式er
19、ror 提示信息提示信息P101-103 例子阅读,请读懂例子阅读,请读懂上机操作:为上机操作:为CJ表的表的CJ字段设置扩展属性:字段设置扩展属性:XH的默的默认值为认值为“980000”,要求,要求CJ必须在必须在0100之间,若之间,若不是在此范围请给出提示信息:成绩必须在不是在此范围请给出提示信息:成绩必须在0100之间之间l 表结构的修改表结构的修改 用用“表设计器表设计器”修改表结构(对应于命修改表结构(对应于命令令modify structure) 用用alter table-SQL命令来修改表结构命令来修改表结构P103,记住命令使用格式,看懂书上的,记住命令使用格式,看懂书上
20、的例子例子 数据库表不仅可以设置字段的扩展属数据库表不仅可以设置字段的扩展属性,还可以为表设置一些属性,如性,还可以为表设置一些属性,如长表名、长表名、记录级验证、触发器记录级验证、触发器等,这些属性在等,这些属性在“表表设计器设计器”中设置,也保存在数据字典中中设置,也保存在数据字典中数据库表的表属性l 库表的表属性库表的表属性 :P8182,例例v长表名和表注释长表名和表注释长表名:长表名:创建表时,若不做任何规定则表文件创建表时,若不做任何规定则表文件名就是表名;若设置了长表名属性,则该数据名就是表名;若设置了长表名属性,则该数据库在任何场合均以长表名代替表文件名使用库在任何场合均以长表
21、名代替表文件名使用 在在“表设计器表设计器”“表表”卡片卡片“表名表名”中设置,中设置,也可在使用也可在使用create table命令创建库表时用命令创建库表时用Name子句来设置(如前述)子句来设置(如前述)表注释:表注释:表的说明信息,在表的说明信息,在“表设计器表设计器”“表表”卡片中进行设置;设置卡片中进行设置;设置后在后在“项目管理器项目管理器”中选中相应的表,可在窗口的下部状态中选中相应的表,可在窗口的下部状态栏中看到表的注释栏中看到表的注释表属性n表记录的有效性规则n用来控制用户输入到记录中的信息类型,通常比较同一记录中的两个或多个字段值。n在记录指针改变或关闭“浏览”窗口时激
22、活。n从数据库中移去具有关联规则的表时,所有属于 该表的字段级和记录级规则都会从数据库中删除。因为规则存放在.DBC文件中。n 记录级验证:用于定义记录级验证:用于定义记录级校验规则记录级校验规则,包括了记录的有效性规则和有效性信息包括了记录的有效性规则和有效性信息注意比较字段级验证和记录级验证的区别注意比较字段级验证和记录级验证的区别记录有效性规则和信息的设置类似于字段有效记录有效性规则和信息的设置类似于字段有效性规则和信息的设置,也可在性规则和信息的设置,也可在create table时利时利用用check子句来进行设置或在子句来进行设置或在alter table时利用时利用set che
23、ck子句来进行设置子句来进行设置注意比较利用命令进行字段验证设置和记录验注意比较利用命令进行字段验证设置和记录验证设置的区别证设置的区别n表触发器:是绑定在表上的表触发器:是绑定在表上的逻辑表达式逻辑表达式,是表在进行是表在进行插入、更新或删除插入、更新或删除记录是的记录是的检验规则检验规则触发器分为三种:插入、更新、删除触发器分为三种:插入、更新、删除触发器的返回值为触发器的返回值为.t.或或.f.,若为若为.t.,则允,则允许该操作执行许该操作执行;否则,就,不允许该操作;否则,就,不允许该操作执行执行触发器可在触发器可在“表设计器表设计器”“表表”卡片中卡片中设置,也可通过设置,也可通过
24、create trigger on来设置触来设置触发器,通过发器,通过delete trigger on来删除触发器来删除触发器nCREATE TRIGGER ON 表名 FOR DELETE|INSERT|UPDATE AS 条件表达式CREATE TRIGGER ON JS FOR DELETE AS .F.nDELE TRIG ON 表名 FOR DELE|INSE|UPDAl 库表的约束机制及其激活时机综述:库表的约束机制及其激活时机综述:P82 表表3-5l 库表的索引:前述有关自由表索引的一切内库表的索引:前述有关自由表索引的一切内容均适用于库表,但库表多出一个主索引容均适用于库表
25、,但库表多出一个主索引v设置主索引时必须注意:设置主索引时必须注意:主索引必须是一个候选索引,即记录的值必须主索引必须是一个候选索引,即记录的值必须唯一唯一主索引对每张库表都只有一个主索引对每张库表都只有一个库表的约束机制及其激活时机约束机制约束机制级级激活时机激活时机NULL有效性字段当从浏览中离开字段或在执行INSERT或REPLACE更改字段值时字段级规则字段当从浏览中离开字段或在执行INSERT或REPLACE更改字段值时记录级规则记录发生记录更新时候选/主索引记录发生记录更新时VALID子句表单移出记录时触发器表在INSERT、UPDATE或DELETE事件中,表中值改变时l 库表的
26、添加和移去:库表的添加和移去:向库中添加表是指将自由表添向库中添加表是指将自由表添加到库中,使自由表成为数据库表,本质上是建立了加到库中,使自由表成为数据库表,本质上是建立了库表和库之间的双向链接;而从库中移去表,则是删库表和库之间的双向链接;而从库中移去表,则是删除了库表和库之间的双向链接除了库表和库之间的双向链接v添加:添加:“项目管理器项目管理器”“添加添加”“数据库设计器数据库设计器”“工具栏工具栏”“添加添加”按钮按钮在数据库打开并为当前库时,用在数据库打开并为当前库时,用add table 表名表名 来添来添加加注意:一张表只能添加到一个库中去注意:一张表只能添加到一个库中去v移去
27、:移去:“项目管理器项目管理器”中选中表中选中表“移去移去”“库设计器库设计器”中选中表中选中表“工具栏工具栏”“移去移去”按钮按钮在数据库打开并为当前库时,用在数据库打开并为当前库时,用remove table 表名表名来移去来移去n为为JS表设置字段扩展属性表设置字段扩展属性nGH:标题:工号;去掉其首尾的空格;输入时:标题:工号;去掉其首尾的空格;输入时GH第一位为字母,其他为数字;做注释为第一位为字母,其他为数字;做注释为“主关键字主关键字”nXB:默认值为男;该字段只能为男或女,不能为:默认值为男;该字段只能为男或女,不能为其他值,若输入了其他值则提示错误信息其他值,若输入了其他值则
28、提示错误信息“性别只性别只能为男或女能为男或女”n为为JS表设置表属性表设置表属性n长表名为:教师基本档案表长表名为:教师基本档案表n验证参加工作时,所有教师的年龄必须在验证参加工作时,所有教师的年龄必须在18岁以上岁以上n给给JS表设置注释:教师基本信息表(表设置注释:教师基本信息表(2009年建)年建)n当当GH字段不为空时才允许插入,当字段不为空时才允许插入,当GH字段为空时字段为空时才允许删除才允许删除FDl 有关库和库表的几点说明:有关库和库表的几点说明:v尽可能使用数据库表,因它存在这一些约束条件尽可能使用数据库表,因它存在这一些约束条件v可以使用!来指定数据库(在打开多个库时)可
29、以使用!来指定数据库(在打开多个库时)v移动和复制库文件时要考虑到相应库表的位置,以防移动和复制库文件时要考虑到相应库表的位置,以防出现前、后链的错误出现前、后链的错误v不要轻易的从库中移去表不要轻易的从库中移去表v做过多次修改库结构、库表结构的操作后,要进行做过多次修改库结构、库表结构的操作后,要进行“数据库清理数据库清理”,以防出现错误和数据的冗余,以防出现错误和数据的冗余v在删除库后,应该有一个在删除库后,应该有一个FREE tablename库表的命令库表的命令v若多次移动、删除了库或库表,应使用若多次移动、删除了库或库表,应使用validate database recover命令重
30、建双向联接命令重建双向联接 表的打开与关闭工作区n工作区是指用以标识一张打开的表的区域n一个打开表并在其中操作表所占用的区域,n是用以标识一个表的编号的区域。n共有32767个n表和工作区之间的关系?n表是保存在磁盘上的文件,工作区是内存的区域,表名和工作区名可以相同也可以不同n一个工作区只能同时打开一个表,n一个表可在多个工作区同时打开n工作区的标识?n工作区号 132767,前前10个工作区号也可以用字个工作区号也可以用字母母AJ表示表示n别名 系统别名 A B C D E J 用户别名 (打开表时)当前工作区 n正在使用的工作区称为当前工作区n设置某个工作区为当前工作区nSELECT S
31、ELECT 工作区号 / 别名 Select 1 Select stuMSelect 0 是什么意思?n选择一个编号最小的空的工作区M怎么知道现在的工作区号?nSELECT(0)-返回工作区号M叫某个别名的工作区的区号?nSELECT(”别名”)数据工作期窗口n当前数据动态工作环境的一种表示,显示出当前数据的一些基本信息,并能够通过该窗口对数据进行一些基本操作,工作区信息主要在该窗口状态栏进行显示n 设置当前工作区? 窗口菜单-数据工作期-选别名表的打开n通过界面打开表n菜单:n数据工作期窗口,n项目管理器 n命令: Use tablenamein nworKarea|ctablealiasa
32、gainalias ctableALIASnoupdatenUSE 表名nUSE 表名 AGAIN (多次打开)nuse 表名 .IN 工作区号/别名n隐式打开某些操作会自动打开表 工作区别名n工作区别名在打开表时确定nUSE 表名 ALIAS 别名1 别名为别名1nUSE 表名 别名为表名nUse xs alias stu stun如何访问字段?n别名.字段名 stu.xh xs.xhn当前工作区的字段,直接访问 xh问 题M下面的情况,别名是什么?n打开表未指定别名n多次打开表未指定别名M如何对其他工作区操作?n.IN 工作区号/别名 Use in Brow in 表的关闭n界面n 数据工
33、作期窗口, n命令 nUSEnUSE IN 工作区号/别名nCLOSE TABLESnCLOSE ALLnCLOSE DATABASES表的独占与共享n表的独占:只能由单个用户使用n共享使用:可以为多个用户或单个用户使用1.设置打开表的默认状态 n命令 set exclusive on / set exclusive offn界面 工具菜单-选项2. 强行用一种方式打开一个表 USE 表名 SHARED / Use 表名 EXCLUSIVEn多次打开一张表时以第一次的独占或共享状态为准共享方式打开的表,不能修改结构,不能建立索引等!记录的处理n表结构确定以后,用户可以添加数据到表,并对表中数据
34、进行浏览、定位、修改、删除、复制、统计等操作记录的输入n表结构创建后立即输入记录表结构创建后立即输入记录 n在浏览状态下向表中追加记录在浏览状态下向表中追加记录(1)(1)打开浏览窗口打开浏览窗口项目管理器项目管理器“浏览浏览”按钮按钮打开表后,打开浏览窗口打开表后,打开浏览窗口v打开表(文件菜单打开表(文件菜单-打开、打开、USE USE 表名)表名)v打开浏览窗口打开浏览窗口 浏览窗口打开后出现浏览窗口打开后出现“表表”菜单菜单 (显示菜单的浏览命令、(显示菜单的浏览命令、BROWSEBROWSE命令)命令)(2)(2)追加新记录追加新记录n追加一条记录:利用追加一条记录:利用“表表”菜单
35、菜单“追加新记录追加新记录” n追加一批记录:菜单追加一批记录:菜单“显示显示”“追加方式追加方式”,可成批,可成批追加追加nAPPEND BLANKAPPEND BLANK(浏览窗口可不打开)(浏览窗口可不打开)记录的输入n使用SQL命令 nINSERT INTO 表名 (字段1)VALUES (值1)n举例:n从其他表追加多个记录n表菜单-追加记录nAPPEND FROM命令追加n备注字段和通用型字段的输入(P87)用用APPEND FROM命令从其他表或文件中导命令从其他表或文件中导入数据,命令格式:入数据,命令格式: APPEND FROM FileName DELIMITED| XL
36、S 例:例:CLOSE TABLES ALL USE XS1 SELECT 2 USE XS2 APPEND FROM XS1USE XSAPPEND FROM XS XLSDELIMITED:追加文本文件:追加文本文件XLS:追加:追加Excel文件文件缺省缺省:追加表文件:追加表文件表的浏览使用使用browse命令浏览命令浏览 P88Browse fields fieldslistfor lexpressionfreeze fieldsnamenoappendnodeletenomodifytitle cexpressionn记录的筛选记录的筛选( (行方向行方向) )n“表表”菜单菜单-
37、 -属性属性- -数据过滤器数据过滤器条件条件nSET FILTER TOSET FILTER TO 条件条件SET FILTER TO XB=SET FILTER TO XB=“女女”n限制对字段的访问(列方向)限制对字段的访问(列方向)n“表表”菜单菜单- -属性属性- -允许访问筛选字段允许访问筛选字段- -筛选筛选字段字段 nSET FILEDS TOSET FILEDS TO 字段列表字段列表SET FILEDS TO XH,XM,XBSET FILEDS TO XH,XM,XB记录的定位 用户输入记录后,用户输入记录后,VFP为每条记录按输入顺序给出为每条记录按输入顺序给出记录号,
38、第一个为记录号,第一个为1,其余类推,其余类推记录指针:记录指针:1.表打开后,系统生成三个控制标志:表打开后,系统生成三个控制标志:开始标志,开始标志,指针标志,结束标志指针标志,结束标志,三个标志在表中所处位置,三个标志在表中所处位置见见 P75 图图3-82.记录指针用于指向当前处理的记录的位置,指针记录指针用于指向当前处理的记录的位置,指针所指的那个记录称为所指的那个记录称为“当前记录当前记录”,可将指针理,可将指针理解为保存当前记录号的一个变量解为保存当前记录号的一个变量3.指针的值(当前记录的记录号),可用指针的值(当前记录的记录号),可用RECNO()来测试,指针是否处于有效范围
39、内可用)来测试,指针是否处于有效范围内可用BOF(),),EOF()来测试,指针指向开始标志()来测试,指针指向开始标志BOF()=.T.,指针指向结束标志,指针指向结束标志EOF()()=.T.,P90 表表3-6 请牢记请牢记表文件结构n记录指针标志n用于指示当前处理的记录位置,可以理解为保存当前记录号的变量n当前记录n记录指针指向的那个记录nRecno()n测试记录指针的值nBOF()和EOF()n记录指针是否在记录有效范围内 BOF Begin Of File EOF End Of FilenRecCount()n表中的记录数文件头文件头(包含表结构信息)(包含表结构信息)第第1条记录
40、条记录第第2条记录条记录第第n条记录条记录记录指针标记录指针标志志结尾标志结尾标志开始标志开始标志?记录指针情况n打开表示记录指针的情况n开始标志处记录指针的值 1n结尾标志处记录指针的值 reccount()+1表中的记录情况BOF()RECNO()EOF()无记录.T.1.T.有记录.F.1.F.记录的定位:也就是指针的定位记录的定位:也就是指针的定位 三种定位方式:绝对定位,相对定位,条件定位三种定位方式:绝对定位,相对定位,条件定位 P901.界面方式:菜单界面方式:菜单“表表”“转到记录转到记录”“定位定位”,打开,打开“定位记录定位记录”对话框,进行选择和设对话框,进行选择和设置置
41、2.命令方式:命令方式:GOTO |GO 绝对绝对 SKIP 相对相对 LOCATE FOR 条件条件P91 例例3.使用命令方式进行定位时的注意点使用命令方式进行定位时的注意点 P91,4点,非常重要点,非常重要注意事项n移动到开始标志n1-skip 1-bof()为.t.,recno()为1n移动到结尾标志nn-skip-eof()为.t.,recno()为n+1nskip、go top、go bottom相对于记录的逻辑顺序nLocate for continuenLocate for 找到第一条符合条件的记录nContinue 接着找第2、3条记录的修改n界面方式的记录修改(浏览窗口)
42、n单个记录的修改n批量记录的修改n“表”菜单替换字段命令n例:学号的首位为9更改为199,首位为0更改为200 条件 left(xh,1)=9 字段 xh 替换为 “19”+xh 范围 alln例:更改教师基本工资,教授加600,副教授500,讲师400,助教300 条件 zc=“教授” 字段jbgz 替换为 jbgz+600 范围 all 记录的修改n使用SQL命令修改记录nUpdate 表名 Set 字段名=表达式 where 条件n例: update js set jbgz=jbgz+100 where year(date()-year(gzrq)29记录的修改n使用VFP命令修改记录n
43、Replace 字段 with 表达式 for 条件n例: close tables all use js (要求被操作的表在当前工作区!) replace jbgz with jbgz+100 for year(date()-year(gzrq)29记录的删除n标记要删除的记录n界面方式n删除单个记录 单击删除标记列n删除批量记录 表菜单删除记录删除记录窗口例:删除所有不及格的成绩信息n命令方式nDELETE FROM 表名 WHERE 条件nDELETE FROM CJ WHERE CJ60nDELETE (VFP命令,需要操作的表处于打开状态)nDELETE FOR CJ60 IN CJ
44、记录的删除n彻底删除带标记的记录n界面方式:表菜单彻底删除n命令:PACKnZAP 彻底删除所有记录彻底删除记录要求表必须在当前工作区独占打开记录的删除n恢复带删除标记的记录n界面方式:n表菜单恢复记录恢复记录窗口n单击删除标记列n命令: RECALL n对带删除标记的记录的访问nDeleted() 检验当前记录是否带删除标记n控制是否处理(浏览计算)带有删除标记的记录nSET DELETED ON 忽略带有删除标记的记录 nSET DELETED OFF 允许访问带有删除标记的记录一般默认为一般默认为OFF,也可在,也可在“工具工具”“选项选项”“数据数据”中中设置设置数据的复制nCopy
45、to n将当前工作区中的表复制到其他文件,该文件可以其他类型文件nCopy to 目标文件名 fields 字段列表 for 条件 sdf | xls|例:copy to xs01 for xb=“女” copy to xs02 fields xh,xm,xb copy to xs03 xls数据的统计n对当前工作区打开的表数据进行统计nCount (计数)nCount 范围 for 条件 to 变量count rest for cj=N=2m-1索引的使用索引文件的状态n打开或关闭n打开后控制(不控制)表的处理顺序n打开后的索引,如果没有被指定起控制作用,则表中记录仍按物理顺序显示和访问n主
46、控索引n在某一时刻对表的显示和访问起控制作用的索引M主控索引和主索引的区别?设置主控索引n打开表的同时指定主控索引nUse 表名 order 索引标识 asce|desc例:use xs order ABCDn打开表后再设置主控索引nSet order to 索引标识 asce|descnSet order to 关闭主控索引例:use xs set order to xsxh利用索引快速定位记录nSeek命令n在具有索引的表中使用n基于索引关键字进行检索nSeek 查找内容 order 索引名例1:use xs order xsxh seek “950101”例2:use xs seek “
47、950101” order xsxhn是否找到用found()检测 .T. 找到 .F. 没有找到nSeek()函数 相当于seek +found()索引的其他用法n索引的作用:n指定记录的访问顺序n快速定位n建立表之间的永久关系 (数据库)n建立表之间的临时关系 (表单的数据环境)n一对一关系(1:1) 设有甲乙两张表,如果甲表的一个记录在乙表中有且只有一个记录与之对应,则这两张表之间的关系为“一对一关系”。这种关系在实际应用中不常使用。在许多情况下,两张表的信息可以简单合并成为一张表。表之间的关系表之间的关系n一对多关系(1:n) 设有甲乙两张表,如果甲表的任意一个记录在乙表中都有几个记录
48、与之对应,而乙表中的每个记录在甲表中仅有一个记录与之对应,则这两张表之间的关系为“一对多关系”。甲表为“一表”(或“主表”、“父表”),乙表为“多表”(或“子表”)。1:nn多对多关系(m:n) 设有甲乙两张表,如果甲表的任意一个记录在乙表中存在多个记录与之对应,而乙表中的每个记录在甲表中也存在多个记录与之对应,则这两张表之间的关系为“多对多关系”。在实际应用中,多对多关系不能直接使用,必须建立第三张表,把多对多的关系分解成两个一对多关系,这张表称为“纽带表”。1:mn:1m:n永久关系的建立和编辑P103n建立n建立两张表的索引n在“数据库设计器”中拖动索引标识n编辑n在“数据库设计器”中双
49、击关系连线n单击连线数据库编辑关系n删除n单击连线,按DEL键n右击连线删除关系n永久关系的作用n在“查询设计器”和“视图设计器”中,自动作为默认联接条件 n作为表单和报表的默认的临时关系,在“数据环境设计器”中显示 n用来存储参照完整性信息参照完整性(RI)n用来控制数据库相关表之间的主关键字和外部关键字之间数据一致性的规则。n参照完整性是建立在库表之间永久关系基础之上的。n目的:防止孤立记录的产生。n实施机制:规则被设置在主表或子表的触发器中,规则的代码被保存在存储过程中。n相关表之间的数据一致性数据一致性要求:n有子必有父 n插子必有父 n父删子必删 设置参照完整性规则更新规则更新规则删
50、除规则删除规则插入规则插入规则当父表中的关键字当父表中的关键字值被修改时值被修改时当父表中记录被删当父表中记录被删除时除时当在子表中插入当在子表中插入或更新记录时或更新记录时级级联联 用新的关键字值更新子表中的所有相关记录删除子表中所有相关记录限限制制若子表中有相关记录则禁止更新若子表中有相关记录则禁止删除若父表中不存在匹 配 的 关 键 字值,则禁止插入忽忽略略允许更新,不管子表中的相关记录允许删除,不管子表中的相关记录允许插入数据完整性综述n三类完整性n实体完整性:字段级、记录级n参照完整性:表级n用户自定义完整性n通过字段级、记录级和表间三级完整性约束,有效地实现了数据的完整性和一致性。有关表操作的常用函数Recno()记录号 RecCount() 记录数Bof() 开始标记Eof() 结尾标记Deleted()是否删除Used() 是否已被使用Field(n)第n个字段的字段名 Fcoun
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中影视作品鉴赏课件
- 瑜伽导师与瑜伽馆合作合同范本专业指导与授课协议
- 车场租赁与商业地产:三方商业停车场租赁合同
- 离异家庭房产过户子女财产权保护及传承协议范本
- 离婚协议补充:房产分割及使用权调整协议
- 品牌季节性广告代理执行合同
- 员工职离职合同申请规程
- 服装生产车间安全管理规定
- 并行计算实施细则
- 人工智能在农业领域的应用细则
- 2025债权收购委托代理合同
- 2025年中国建筑集团招聘面试宝典与模拟题答案
- 2025年高考英语新课标Ⅱ卷点评及2026备考方向 课件
- (标准)舞蹈班转让合同协议书
- 2025年学宪法、讲宪法知识竞赛题库及答案
- T/CTRA 01-2020废轮胎/橡胶再生油
- 2025广西专业技术人员公需科目培训考试答案
- 高中英语新课标3000词汇表(新高考)
- 【MOOC】《中国马克思主义与当代》(北京科技大学)中国大学MOOC慕课答案
- 研究生新生入学教育
- 台车式电阻炉使用说明书
评论
0/150
提交评论