(精品)vfp第三章(2).ppt

上传人:hyn****60 文档编号:70944538 上传时间:2023-01-29 格式:PPT 页数:95 大小:339KB
返回 下载 相关 举报
(精品)vfp第三章(2).ppt_第1页
第1页 / 共95页
(精品)vfp第三章(2).ppt_第2页
第2页 / 共95页
点击查看更多>>
资源描述

《(精品)vfp第三章(2).ppt》由会员分享,可在线阅读,更多相关《(精品)vfp第三章(2).ppt(95页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第三章第三章 数据库与表的创建和使用数据库与表的创建和使用2003-20043.1 3.1 数据库概述数据库概述3.1.1数据库设计的过程分析数据需求确定需要的表确定表的字段确定表之间的关系设计的优化3.1.2数据库的组成表视图连接存储过程表表数据库表 从属于某一个数据库的表,称为数据库表,与自由表相比,具有许多扩展功能和管理特性。自由表 不属于任何一个数据库的表。数据库表与数据库之间的关系:表文件(表文件(.dbf)库文件(库文件(.dbc)前链后链前前链:保存在数据库文件中,包含表文件的路径和表名。链:保存在数据库文件中,包含表文件的路径和表名。后链:保存在表文件中,包含数据库名及其路径。

2、后链:保存在表文件中,包含数据库名及其路径。2、视图(、视图(View)把分散在相关表中的数据通过联结条件把它们收集到一起,把分散在相关表中的数据通过联结条件把它们收集到一起,构成一张构成一张“虚表虚表”,这张,这张“虚表虚表”就是视图。就是视图。视图使数据暂时从数据库中分离出来,成为游离数据,以便视图使数据暂时从数据库中分离出来,成为游离数据,以便在主系统之外收集和修改数据。在主系统之外收集和修改数据。视图分为:本地视图和远程视图视图分为:本地视图和远程视图 3、连接、连接(Connection)保存在数据库中的一个定义,指定了数据源的名称。这里的数保存在数据库中的一个定义,指定了数据源的名

3、称。这里的数据源指的是远程数据源。据源指的是远程数据源。连接远程数据源的方法:通过连接远程数据源的方法:通过ODBC(Open DataBase Connection)4、存储过程、存储过程在数据库中保存过程和代码的地方。包含用户自定义函数中的任何命令和函数,还有永久关系中参照完整性代码。对数据库中的数据进行相似或相同的处理,可以编写成自定义函数或过程保存在存储过程中,以供其他时候调用。3.1.3数据字典数据字典:数据字典:存储在数据库中用于描述所管理的表存储在数据库中用于描述所管理的表和对象的数据,即元数据。和对象的数据,即元数据。数据字典包括:数据字典包括:表的主索引关键字表的主索引关键字

4、数据库表之间的永久性关系数据库表之间的永久性关系长表名和注释长表名和注释.3.2数据库的创建、打开、与使用每创建一个新的数据库都将生成三个文件:每创建一个新的数据库都将生成三个文件:数据库文件(数据库文件(.DBC)关联的数据库备注文件(关联的数据库备注文件(.DCT)关联的数据库索引文件(关联的数据库索引文件(.DCX)注:数据库是一个包容器,但并不在物理上包容注:数据库是一个包容器,但并不在物理上包容任何附属对象,在数据库中仅存储了指向表文件的路任何附属对象,在数据库中仅存储了指向表文件的路径指针。径指针。3.2.1数据库的创建1、界面方式2、命令方式 CREATE DATABASE 数据

5、库名数据库名|?注:注:如果命令中没有数据库名或只给出了?,则命 令自动打开“新建对话框”。如果给出了数据库名,则创建数据库,并使该数据库处于打开状态,但不出现数据库设计器。3.2.2数据库的打开与关闭1、打开数据库、打开数据库打开数据库的命令:打开数据库的命令:OPEN DATABASE 数据库名数据库名 EXCLUSIVE|SHAREDNOUPDATEVALIDATE多次使用该命令可以同时打开多个数据库。多次使用该命令可以同时打开多个数据库。3.2.2数据库的打开与关闭设置当前数据库设置当前数据库 使用“常用”工具栏 使用命令设置:SET DATABASE TO 数据库名注:利用注:利用D

6、BC()函数返回当前打开的数据库的完函数返回当前打开的数据库的完整文件名。整文件名。函数函数DBUSED(数据库名)测试指定的数据数据库名)测试指定的数据库文件是否处于打开状态。库文件是否处于打开状态。关闭数据库关闭数据库(1)使用“项目管理器”(2)使用CLOSE DATEBASES命令 CLOSE DATABASES关闭当前数据库和表。若无当前数据库,则关闭所有工作区内所有打开的自由表、索引文件和格式文件,并选择工作区1。CLOSE DATABASES ALL关闭所有打开的数据库和其中的表、所有打开的自由表、所有工作区内所有索引和格式文件。CLOSE ALL关闭所有的数据库、表、索引以及各

7、种设计器。4、删除数据库利用项目管理器“移去”按钮。利用delete file 3.3表的创建与使用在VFP中,表分两种:自由表与数据库表表以.DBF形式保存,不可以用A-J中单个字母命名。每张表最多有每张表最多有255个字段个字段 记录记录 .字段(字段(Field)表表表结构表结构表记录表记录表的表的组成组成表结构即是表的框架表结构即是表的框架表记录是指表的内容表记录是指表的内容建立表的步骤是建立表的步骤是:先设计表的结构,再在:先设计表的结构,再在VFP 6.0中使用命中使用命令或表设计器建立表的结构,并保存为表文件,然后再输令或表设计器建立表的结构,并保存为表文件,然后再输入记录。入记

8、录。3.3.1 表结构概述表结构概述一、表的结构参数一、表的结构参数字段名字段名(Field Name)字段名取名规则:可以是字母、数字、下划线,只能是字母字段名取名规则:可以是字母、数字、下划线,只能是字母开头,自由表的字段名最多开头,自由表的字段名最多10个字符,数据库表的字段名可以个字符,数据库表的字段名可以达达128个字符。个字符。字段的数据类型(字段的数据类型(Type)数据类型有字符型、货币型、数值型、日期型、日期时间型数据类型有字符型、货币型、数值型、日期型、日期时间型、逻辑型、逻辑型、浮点型、双精度型、整型、备注型、通用型浮点型、双精度型、整型、备注型、通用型字段宽度(字段宽度

9、(Width)字符型最多是字符型最多是254个字符,货币(型个字符,货币(型8)、日期型()、日期型(8)、)、日期时间型(日期时间型(8)、逻辑型()、逻辑型(1)、双精度型()、双精度型(8)、整型()、整型(4)、)、备注型(备注型(4)、通用型()、通用型(4)小数位数(小数位数(Decimal)空值支持(空值支持(NULL)两种方法:两种方法:CREATE TABLE 命令的语法:命令的语法:CREATE TABLE 表名(字段表名(字段1 字段类型字段类型(字段宽度字段宽度,小数位数小数位数)NULL|NOT NULL;,字段字段2 字段类型字段类型;(字段宽度;(字段宽度,小数位

10、数,小数位数)3.3.2创建和修改表结构创建和修改表结构用用“表设计器表设计器”创建(自由表和数据库表)创建(自由表和数据库表)用用CREATE TABLE 命令创建(课本命令创建(课本3.3.8节)节)1.创建表:创建表:例如:例如:创建学生表的命令如下:创建学生表的命令如下:CREATE TABLE xs2(xh C(6),xm C(8),xb C(2),zydh C(6),ximing c(18))创建教师表的命令如下:创建教师表的命令如下:CREATE TABLE js(gh C(5),xm C(8),xb C(2),xdh C(2),zcdh C(2),;csrq D,jbgz N(

11、7,2),jl M)使用使用NULLNULL值值在建立新表时,可以指定字段是否接受在建立新表时,可以指定字段是否接受NULLNULL值。值。在在“表设计器表设计器”对话框中的对话框中的“字段字段”选项卡中选定选项卡中选定.在在CREATE TABLE-SQLCREATE TABLE-SQL命令中,可以使用命令中,可以使用NULL/NOT NULLNULL/NOT NULL子句来设定子句来设定是否让某字段接受是否让某字段接受NULLNULL值。值。例例3 创建创建zg表,其中表,其中gh和和xm不允许为不允许为NULL,csrq允许为允许为NULL值:值:CREATE TABLE zg(gh C

12、(6)NOT NULL,xm C(8)NOT NULL,csqr D NULL)注:当设置表中的字段可以为注:当设置表中的字段可以为NULL,该表最多有该表最多有254个字段。个字段。表结构的修改有两种方法:有两种方法:用用“表设计器表设计器”修改(修改(modify structure)用用ALTER TABLE 命令修改命令修改1)用)用ALTER命令添加字段命令添加字段 例如:将例如:将bjmc字段添加到字段添加到xs表中表中 ALTER TABLE xs ADD COLUMN bjmc C(12)2)用)用ALTER命令重命名字段命令重命名字段 例如:将例如:将bjmc改为改为bj A

13、LTER TABLE xs RENAME COLUMN bjmc TO bj3)用)用ALTER命令删除字段命令删除字段 例如:将例如:将bj字段删除字段删除 ALTER TABLE xs DROP COLUMN bj3.3字段属性与表属性1.数据库表的字段扩展属性:数据库表的字段扩展属性:格式、输入掩码、格式、输入掩码、标题、默认值、验证规则等标题、默认值、验证规则等注意:注意:保存数据时,如何控制现有的数据不对保存数据时,如何控制现有的数据不对照;照;字段的默认控件类的使用字段的默认控件类的使用例:例:数据库表字段的默认值保存在数据库表字段的默认值保存在_文件中文件中 A表表 B.数据库数

14、据库 C.项目项目 D.表的索引表的索引2.数据库表的表属性数据库表的表属性1)长表名与注释)长表名与注释 在创建表时,每张表的表文件名就是表名。在创建表时,每张表的表文件名就是表名。其长度受操作系统的限制,在其长度受操作系统的限制,在VFP中规定,数中规定,数据库表及自由表的表名最大长度为据库表及自由表的表名最大长度为128个字符。个字符。在打开数据库时,长表名可以代替表名。在打开数据库时,长表名可以代替表名。但是使用长文件名打开表时,表所属的数据但是使用长文件名打开表时,表所属的数据库必须是打开的,且设为当前数据库。库必须是打开的,且设为当前数据库。长表名的设置:长表名的设置:可以在可以在

15、“表设计器表设计器”或在使用或在使用CREATE TABLE 命令创建表时,用命令创建表时,用NAME子句子句指定长表名。指定长表名。如:如:CREATE TABLE BK NAME 学生补学生补考表考表(XH;C(6),),KCDH C(2),),CJ N(3,0)2)表记录的验证规则)表记录的验证规则何时设置:何时设置:向表中输入记录时,想要比较两个以上的字段是否向表中输入记录时,想要比较两个以上的字段是否满足一定的条件。满足一定的条件。例如:课时数大于例如:课时数大于4的学分不得少于的学分不得少于2。15岁之前不可能参加工作。岁之前不可能参加工作。何时被激活:何时被激活:和字段级规则一样

16、,在记录值改变时被激活。当把和字段级规则一样,在记录值改变时被激活。当把记录指针移离记录时,都要检查记录级规则。记录指针移离记录时,都要检查记录级规则。如何设置:如何设置:在“表设计器”的“表”选项卡中,在“规则”和“信息”框中输入所需的规则和信息。记录的验证规则是一个逻辑表达式,记录的验证信息是一个带双引号的字符表达式。例如,对例如,对js表中的记录需要满足如下要求:表中的记录需要满足如下要求:。则应在。则应在“记录验证规则记录验证规则”框中输入如框中输入如下的表达式:下的表达式:year(js.csrq)-year(js.gzrq)=18在信息框中输入:在信息框中输入:“工作日期与出生日期

17、工作日期与出生日期必须相差必须相差18年年”可以使用CREATE TABLE 或ALTER TABLE 命令的CHECK子句。如:ALTER TABLE JS SET CHECK year(js.csrq)-year(js.gzrq)=18;ERROR“工作日期与出生日期必须相差工作日期与出生日期必须相差18年年”用以下命令可删除JS表的记录有效性规则:ALTER TABLE JS DROP CHECK3.创建表的触发器创建表的触发器 触发器是绑定在表上的逻辑表达式,触发器是绑定在表上的逻辑表达式,是在插入、更新或删除记录时进行的检是在插入、更新或删除记录时进行的检验规则。验规则。三种触发器的

18、含义:三种触发器的含义:插入触发器:每次向表中插入或追加记录时触发该规则。如该条记录使规则为.T.,则接受该记录;若该规则为.F.,则提出警告,拒绝接受该记录。更新触发器:每次在表中修改记录时触发该规则。如该条记录经修改后使规则为.T.,则接受该记录;若使该规则为.F.,则提出警告,拒绝接受修改。删除触发器:每次在表中删除记录是触发该规则。如该条记录使规则为.T.,则允许被删除;若使该规则为.F.,则提出警告,不允许删除该记录。注:触发器必须返回注:触发器必须返回“真真”或或“假假”,在记录的验证规,在记录的验证规则之后进行。则之后进行。创建触发器:利用“表设计器”使用命令创建插入触发器:CR

19、EATE TRIGGER ON 表名表名 FOR INSERT AS 逻辑表达式逻辑表达式创建更新触发器:CREATE TRIGGER ON 表名表名 FOR UPDATE AS 逻辑表达式逻辑表达式创建删除触发器:CREATE TRIGGER ON 表名表名 FOR DELETE AS 逻辑表达式逻辑表达式移去或删除触发器移去或删除触发器在“表设计器”中直接从触发器区域删除表达式。利用如下命令:DELETE TRIGGER ON 表名 FOR DELETE|INSERT|UPDATE注:如果从数据库中移去或删除表,则所有属于该表的触发器都从数据库中删除。例:对例:对JS表设置如下规则和触发器

20、:表设置如下规则和触发器:(1)工龄在工龄在10年以上(包含年以上(包含10年)年)的教师,最低工资不得低于的教师,最低工资不得低于800元元(2)当当csrq字段的值是字段的值是.NULL.时允许时允许删除,否则不允许删除删除,否则不允许删除(3)只有男教师才可被修改,女教师只有男教师才可被修改,女教师不允许修不允许修设置如下:设置如下:创建表的触发器举例:创建表的触发器举例:(1)在js表中创建一个插入触发器,以防止gh字段为空串(即不填gh字段)(2)在JS表中创建一个更新触发器,以防止gl字段的值大于50(3)在JS表中创建一个删除触发器,以防止“信息管理系”的老师被意外地删除例:例:

21、CJ表中,XH(学号)字段的前两位表示年级,设置如下规则和触发器:(1)若03级的学生是新生,CJ(成绩)字段必须为0(2)只有02级的学生成绩才允许被修改(3)CJ表中所有记录不允许被删除练习:设置设置kc表的属性:表的属性:1、设置设置bxk字段的默认值为:字段的默认值为:.t.2、设置设置kss 字段的标题为:字段的标题为:“课时数课时数”,并,并且每门课的课时数不得低于且每门课的课时数不得低于2个课时个课时3、4个课时以上(包括个课时以上(包括4个课时)的课程的学个课时)的课程的学分不得低于分不得低于2个学分个学分4、课程名为空的课程记录可以被删除课程名为空的课程记录可以被删除5、必修

22、课记录不允许被修改必修课记录不允许被修改4、数据库表的约束机制、数据库表的约束机制 数据库表的字段级和记录级以及表的触发器,为数据的输入和更改实施了约束。3.3.4 表的打开与关闭1、工作区的概念、工作区的概念用以标识一张打开的表的区域。每个工作区都有一个编号,从用以标识一张打开的表的区域。每个工作区都有一个编号,从132747;一个工作区中只能打开一张表,但一张表可以在多个工作;一个工作区中只能打开一张表,但一张表可以在多个工作区中打开(用区中打开(用AGAIN子句);在工作区中已打开的表都有一个别名子句);在工作区中已打开的表都有一个别名(前前1010个工作区号可以用字母个工作区号可以用字

23、母A-JA-J表示)。表示)。一个工作区只能打开一张表,如果在一个工作区打开了一张表,再一个工作区只能打开一张表,如果在一个工作区打开了一张表,再在此工作区中打开另一张表时,前一张表将自动关闭。在此工作区中打开另一张表时,前一张表将自动关闭。表的别名分:系统别名(表的别名分:系统别名(A,B,J,W11,W12,W32747),),和用户别名(表名或用和用户别名(表名或用ALIAS子句指定的别名)。子句指定的别名)。访问非当前工作区中表的字段时用:别名访问非当前工作区中表的字段时用:别名.字段名字段名 或或 别名别名-字段名。字段名。选择工作区命令选择工作区命令 SELECT语法:语法:SEL

24、ECT 工作区号|别名说明:说明:VFP启动后,系统默认的工作区号为启动后,系统默认的工作区号为1;SELECT 0 表示选择当前未被使用的最小工作区;表示选择当前未被使用的最小工作区;SELECT()()函数可以测定当前工作区区号。函数可以测定当前工作区区号。2 2、数据工作期窗口、数据工作期窗口 数据工作期窗口是当前数据动态工作环境的一种表示。在数据工作期窗口是当前数据动态工作环境的一种表示。在VFPVFP系统启动后,系统自动生成一个数据工作期,称为系统启动后,系统自动生成一个数据工作期,称为“默认默认”数据数据工作期。每一个表单、表单集或报表在运行过程中,为了管理自工作期。每一个表单、表

25、单集或报表在运行过程中,为了管理自己的数据,可以形成自己的数据工作期。己的数据,可以形成自己的数据工作期。用户可以通过菜单命令用户可以通过菜单命令“窗口窗口/数据工作期数据工作期”,或,或“常用常用”工具栏上的工具栏上的“数据工作期数据工作期”按钮,打开其窗口。按钮,打开其窗口。数据工作期是当前数据工作期是当前数据动态工作环境数据动态工作环境的一种表示。通过的一种表示。通过该窗口,用户可以该窗口,用户可以进行有关表的一些进行有关表的一些操作。操作。选择选择“窗口窗口”菜单菜单下的下的“数据工作期数据工作期”命令,打开该对命令,打开该对话框。话框。3、表的打开:、表的打开:界面操作界面操作 使用

26、命令:使用命令:USE 表文件名表文件名工作区中表的别名可以用带别名的工作区中表的别名可以用带别名的USE命令实命令实现:现:语法:USE ALIAS 如:USE xs ALIAS students 如果在打开表时使用如果在打开表时使用ALIAS子句,则系统默认子句,则系统默认以表文件名作为别名。以表文件名作为别名。可用可用ALIAS(区号区号)函数可以取得当前工作)函数可以取得当前工作区或指定工作区的表的别名。区或指定工作区的表的别名。例如:打开学生表。例如:打开学生表。USE XS若要在若要在2号工作区打开学生表,则号工作区打开学生表,则 USE XS IN 2 (注意:注意:USE没有选

27、择工作区的作用没有选择工作区的作用)若要打开学生表的同时,给学生表另取别名若要打开学生表的同时,给学生表另取别名“学生学生”,则,则 USE XS IN 2 ALIAS 学生学生这时,学生表在这时,学生表在2号工作区中打开,系统别名为号工作区中打开,系统别名为“B”,用户别名为用户别名为“学生学生”。若要将学生表在若要将学生表在3号工作区中再次打开,则号工作区中再次打开,则 USE XS IN 3 AGAIN 若打开学生表,只允许访问,不允许修改,则若打开学生表,只允许访问,不允许修改,则 USE XS IN 0 NOUPDATE 例:SELECT 1 USE XS ALIAS 学生 SELE

28、CT 2 USE JS?ALIAS()?ALIAS(1)USE xs&在当前工作区打开在当前工作区打开xs表表,xsUSE js Alias jiaoshi IN 4&在工作区在工作区4中打开中打开js表表 USE zg IN 0&在最小未用工作区中打开在最小未用工作区中打开zg表表 USE xs AGAIN IN 5&在工作区在工作区5中再次打开中再次打开xs表表,EUSE xs AGAIN IN 15&在工作区在工作区15中再次打开中再次打开xs表表,W154、表的关闭:、表的关闭:界面操作界面操作 使用命令:使用命令:USE CLOSE TABLES ALL若要关闭当前工作区中的表,使用

29、命令若要关闭当前工作区中的表,使用命令 USE若要关闭指定工作区内的表,则使用命令若要关闭指定工作区内的表,则使用命令 USE IN 别名别名|工作区工作区若要关闭所有工作区的表,则使用若要关闭所有工作区的表,则使用 COLSE ALL或或 CLOSE TABLES 在退出在退出VFP时,所有的表被关闭时,所有的表被关闭用用USED()()函数可以测试指定工作区中是否打开了一张表。函数可以测试指定工作区中是否打开了一张表。若打开了一张表,返回值为若打开了一张表,返回值为.T.,否则,返回否则,返回.F.5、表的独占与共享、表的独占与共享:一张表只能被一个用户打开时一张表只能被一个用户打开时,称

30、为表的独占使用称为表的独占使用;当网络上当网络上的用户在同一时刻访问一张表时就是表的共享的用户在同一时刻访问一张表时就是表的共享.设置:设置:命令命令 “选项选项”对话框对话框 SET EXCLUSIVE OFF设置设置“共享共享”为默认打开方式为默认打开方式 SET EXCLUSIVE ON设置设置“独占独占”为默认打开方式为默认打开方式 在用命令打开表时,加子句在用命令打开表时,加子句“SHARED”或或EXCLUSIVE”来强行指来强行指定打开方式。定打开方式。USE xs SHARED&共享方式打开共享方式打开xs表表USE js EXCLUSIVE&独占方式打开独占方式打开js表表用

31、用“选项选项”对话框设置对话框设置:独占在在“打开打开”对话框中设定对话框中设定独占3.3.5 记录的处理1、记录的输入记录的输入1)表结构创建后立即输入。)表结构创建后立即输入。2)在浏览窗口中追加记录(选择在浏览窗口中追加记录(选择“显示显示”菜单下的菜单下的“追加方式追加方式”)。)。“显示显示”“浏览浏览”“数据工作期数据工作期”中选择中选择“表表”“项目管理器项目管理器”“浏览浏览”“显示显示”“浏览浏览”/“编辑编辑”3)使用)使用INSERT-SQL命令追加记录。命令追加记录。INSERT INTO命令的语法:命令的语法:INSERT INTO 表名表名(字段(字段1,字段,字段

32、2)VALUES(表达式表达式1,表达式,表达式2 )说明:说明:(字段1,字段2)指定新记录的字段名列表,缺省时为表的所有字段名。VALUES(表达式1,表达式2 )新插入字段的值例:向教师表中插入一条新记录INSERT INTO JS(Gh,xm,xb,csrq,jbgz)VALUES(“A0008”,“李力”,“男”,1960/03/12,1800)4)使用)使用APPEND 与与APPEND FROM命令命令用用APPEND命令添加命令添加语法:语法:APPEND BLANKIN nWorkArea|cTableAlias功能:在指定表的尾部添加记录功能:在指定表的尾部添加记录说明:说

33、明:BLANK:可选项,添加空记录。可选项,添加空记录。使用该命令必须先用使用该命令必须先用USE命令打开表命令打开表 用用APPEND FROM命令从其他表或文件中导入数据命令从其他表或文件中导入数据语法:语法:APPEND FROM Filename DELIMITED|XLSDELIMITED表示追加文件为文本文件,表示追加文件为文本文件,XLS表示文件为表示文件为Excel文件,文件,缺省时追加文件为表文件。缺省时追加文件为表文件。5)备注型与通用型字段的数据输入)备注型与通用型字段的数据输入备注型:+或者双击通用型:+或者双击,“编辑”“插入对象”2、浏览窗口浏览窗口浏览窗口BROW

34、SE 例:浏览教师表中信息管理系男教师的情况工号、基本例:浏览教师表中信息管理系男教师的情况工号、基本工资情况。工资情况。BROWSE flelds GH,JBGZ FOR XB=“男男”AND XIMING=“信息信息管理系管理系”3、记录的筛选记录的筛选(选择操作选择操作)条件(条件(FOR)子句子句“工作区属性工作区属性”窗口中的数据过滤器窗口中的数据过滤器 使用使用SET FILTER TO 命令命令例:CLOSE TABLES ALLUSE XSSET FILTER TO XB=“女”BROWSE FIELDS XH,XM NOMODIFY TITLE“女学生”4、限制对记录的访问(

35、投影操作)限制对记录的访问(投影操作)FILED子句子句“工作区属性工作区属性”窗口中的字段筛选窗口中的字段筛选使用使用SET FILED TO 例:CLOSE TABLES ALLUSE XSSET FIELD TO XH,XMBROWSE FOR XB=“女”NOMODIFY TITLE“女学生”5、记录的定位、记录的定位q三个控制标志:三个控制标志:记录的开始标志记录的开始标志 记录指针标志记录指针标志 记录的结束标志记录的结束标志文件头(包含表结构等信息)第1号记录第2号记录第n号记录.当前记录指针的值可用函数当前记录指针的值可用函数RECNO()()进行测试。进行测试。记录指针是记录

36、指针是VFP内部的内部的一个指示器,刚打开表一个指示器,刚打开表时,记录指针指向第一时,记录指针指向第一条记录。条记录。记录号 学号 姓名 性别 专业代号 系名 1 990101 李林 男 102006 信息管理系 2 990102 高山 男 102006 信息管理系 3 990106 陆海涛 男 102006 信息管理系 4 5 6 2函数函数 RECNO()返回当前记录号返回当前记录号(数值型数值型)BOF()测试记录指针是否在文件头测试记录指针是否在文件头(逻辑型)(逻辑型)EOF()测试记录指针是否在文件尾测试记录指针是否在文件尾(逻辑型)(逻辑型)1)记录指针:)记录指针:记录指针R

37、ECNO()文件头 BOF()文件尾 EOF()2)记录的定位)记录的定位绝对定位:绝对定位:指把指针移动到指定的位置,使用GOTO命令。例:GOTO 3 GOTO TOP GOTO BOTTOM相对定位:相对定位:把指针从当前位置开始,相对于当前记录向前或向后移动若干个记录位置,使用SKIP命令。Skip 1时,1可以缺省,表示向下一条记录。SKIP 2 SKIP -1条件定位:条件定位:指按照一定的条件自动地在整张表和表的某个指定范围中查找符合该条件的记录。如果找到,则把指针定位到该记录上,否则将定位到整张表或指定范围的表的末尾。条件定位的实现条件定位的实现1)界面方式:在菜单命令)界面方

38、式:在菜单命令“表表/转到记录转到记录/定位定位”中进行。中进行。2)使用命令)使用命令 LOCATE FOR 条件条件实例:实例:USE XS?RECNO()LOCATE FOR XB=“男男”?RECNO()CONTINUE?RECNO()q几个范围选项的含义:ALL 表中全部记录Next n 从当前记录开始的n条记录Record n 仅对n这条记录 Rest 当前记录及其后的所有记录。qFor与 while的区别For 是指表中所有满足条件的记录While 是指当前记录及其连续满足条件的记录,一旦碰到不满足条件的记录,即使下面还有满足条件的记录,则停止定位。6、记录的修改 修改记录修改记

39、录在浏览窗口中修改记录在浏览窗口中修改记录命令方式,修改一批记录命令方式,修改一批记录UPDATE命令命令语法:UPDATE SET 字段字段1=表达式表达式1,字段,字段2=表达式表达式2 WHERE 例:要将教师表中所有工龄满例:要将教师表中所有工龄满30年的教师的基本工资加年的教师的基本工资加100的命令为的命令为 UPDATE js SET jbgz=jbgz+100 WHERE year(date()-year(gzrq)=30练习练习:在在js 表中要按如下要求更改基本工资(表中要按如下要求更改基本工资(jbgz):):工龄在工龄在10年以下(不含年以下(不含10年)基本工资加年)

40、基本工资加20工龄在工龄在10-19年年 基本工资加基本工资加35工龄在工龄在20年以上(含年以上(含20年)年)基本工资加基本工资加50可用一个可用一个UPDATE 命令完成上述更改:命令完成上述更改:UPDATEjs JBGZ=IIF(js.gl10,_,;,;IIF(_,jgbz+50,jgbz+35)REPLACE命令语法:语法:REPLACE WITH ,字段字段2 WITH 表达表达式式2,SCOPEFOR 条件条件功能:用表达式表示的值去更新指定的字段的值。功能:用表达式表示的值去更新指定的字段的值。说明:说明:FOR和和SCOPE缺省时均表示对当前记录进行替换;缺省时均表示对当

41、前记录进行替换;用该命令更新表时,表必须事先打开;用该命令更新表时,表必须事先打开;执行完该命令后,记录指针位于指定范围的结尾。执行完该命令后,记录指针位于指定范围的结尾。例:例:Use js Replace jbgz with jbgz+100 for year(date()-year(gzrq)=30例例:若若XSCJ表表中中有有SX(数数学学)、YY(英英语语)、YW(语语文文)、ZF(总总分分)字字段段,都都是是N型型,要要将将所所有有学学 生的各门成绩汇总后存入生的各门成绩汇总后存入ZF字段中,请完成下列命令:字段中,请完成下列命令:UPDATE XSCJ SET ZF=SX+YY+

42、YW或者:或者:Use XSCJREPLACE ALL ZF WITH SX+YY+YW 7、记录的删除与恢复分两个步骤实现:分两个步骤实现:1)标记要删除的记录)标记要删除的记录2)彻底删除带删除标记的记录)彻底删除带删除标记的记录1)标记要删除的记录)标记要删除的记录 界面方式界面方式 在浏览状态下进行在浏览状态下进行 命令方式命令方式 DELETE命令(必须事先打开表)命令(必须事先打开表)语法:语法:DELETE ScopeFOR 条件表达式条件表达式 IN 工作区号工作区号|表的别名表的别名功能:对指定范围内满足条件的记录设置删除标记。功能:对指定范围内满足条件的记录设置删除标记。D

43、ELETE-Dbase例:对教师表中年龄超过例:对教师表中年龄超过60岁的教师加注删除标记。岁的教师加注删除标记。USE JSDELETE FOR (DATE()-CSRQ)/36560DELETE-SQL例:对教师表中工龄大于例:对教师表中工龄大于30的教师设置删除标记的教师设置删除标记DELETE FROM JS WHERE (DATE()-CSRQ)/365602)恢复带删除标记的记录)恢复带删除标记的记录使用使用RECALL 命令命令RECALL SCOPE FOR例如:例如:RECALL FOR (DATE()-CSRQ)/365603)彻底删除记录)彻底删除记录利用菜单或利用菜单或

44、PACK命令命令4)对带删除标记记录的访问DELETE()函数测试当前表的当前记录是否带有删除标记SET DELETED ON|OFF指定是否处理标有删除标记的记录忽略标有删除标记的记录允许访问带删除标记的记录ON:OFF:USE JS DELETE NEXT 2SET DELETE ONBROWSE&带删除标记的记录不显示SET DELETE OFFBROWSE&带删除标记的记录显示8)数据的复制语法:COPY TO FilenameFIELDS FieldList ScopeFOR|Expression;SDF|XLS|DELIMITEDWITH DELIMITER|BLANK|TAB功能:复制当前表文件中满足条件的记录复制到新表中。例:将信息管理系教师复制到新表XG中。USE JSCOPY TO XG FOR xdh=“信息管理系信息管理系”

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁