《数据库应用基础》PPT课件.ppt_第1页
《数据库应用基础》PPT课件.ppt_第2页
《数据库应用基础》PPT课件.ppt_第3页
《数据库应用基础》PPT课件.ppt_第4页
《数据库应用基础》PPT课件.ppt_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

第7章 数据库应用基础VFP,7.1 数据库的基本概念,日常生活工作中,我们每天都要接触大量的信息,比如学生 成绩、人事档案、工资表、货物清单等。那么,它们都可以表示 为数据的形式,这么多的数据,单靠纸、笔、算盘进行统计几乎 是不可能的,计算机的出现解决了这个复杂的问题,它将大批量 的数据信息存储在大容量磁盘上,并方便地进行管理。那么,这 些数据是怎样存储的,怎样被访问、修改和删除呢?这就用到了 数据库技术。数据库技术将各种各样的数据分门别类地存储起 来,用户可以很容易地查看、管理、操作这些数据。,数据不仅仅是文本,多媒体数据库的发展可以让数据是图 片、声音、视频等内容。 7.1.1 数据库系统的特点、数据模型 7.1.1.1 数据库系统的特点 a. 数据的共享性 b. 数据的独立性 c. 数据的完整性 d. 数据的集中性 7.1.1.2 数据模型,1、层次数据模型,系名 系号 系主任,专业号专业名,教师号 姓名 职称,学号 姓名 性别 年龄,课程号 课程名 学分,系教务管理层次模型,2、网状数据模型,3、关系数据模型 关系模型中每个关系对应一张二维表,它由一些行和列组 成。关系模型中,实体和实体之间的联系都使用关系(二维表) 来表示的。关系模型结构单一、操作方便,容易被用户接收,且 有坚实的数学理论基础,因而得到了广泛的应用,成为目前最流 行的一种数据模型。当前的一些数据库,从Oracle到SQL Server,以及Access和VFP,都毫无例外地采用了关系模型。,7.1.2 了解数据类型 1、字符型(C) 由字母(汉字)、数字、空格等任意字符串组成。每个字符占1字节,汉字占2字节。长度0-254。 2、货币型(Y) 存储与货币有关的数据,如工资、价格等。 3、日期型(D) 保存不带时间的日期,存储格式为“yyyymmdd”。字段宽度8字节。 4、日期时间型(T) 包括年、月、日、时、分、秒。,5、逻辑型(L) 用于存储只有两个值的数据,存入的值只有(.T.)和(.F.)两种状态,占一个字节。如婚否,及格否等。 6、数值型(N) 用来存储由数字、小数点和正负号组成的,可以进行计算的数据,如成绩、重量、体积、订货数量等。 7、双精度型(B) 存储高精度的试验数据。 8、浮点型(F) 9、整型(I) 存放由数字和正负号构成的整数型数据。其字段宽度为4字节。使用整型比使用其它类型节省空间,运算速度也快。,10、备注型(M) 占用10个字节的空间,单独存在于一个备注文件中,备注文件扩展名为.DBT。 7.1.3 掌握VFP中常量与变量的概念 1、常量 值不变的数据项。 数值型常量:5、2.345、-100。 字符型常量:“XUV”、“欢迎!”、Hello。 逻辑型常量:.T. 和 .F. 。 日期型常量和日期时间型常量:2008-11-11、2009-1-12 11:11am 。,2、变量 可以变化,有名字的数据。 命名规则:变量名只能由字母、数字、下划线组成。以字母或 下划线开头,长度为1128个字符。不能使用VFP的保留字。每个汉 字占2字符。 “A_XX” 、“_UU” 、“运算结果”。 “7abc” 、“IF”、 “ELSE” 、“A2”、“2” 、“8开始” 。,7.1.4 掌握VFP表达式的使用 1、算术运算符 2、字符串运算符 3、日期时间运算符 4、关系运算符 5、逻辑运算符,求值: 2+3 1+4 .AND. .NOT. 68,算数运算符的优先级为( ) 或* *和/ % +和- 。,1、算术运算符,表达式的书写规则: 每个符号占格,所有符号都必须排在同一横线上,不能出现上标或下标。 例如:102写为102或10*2、3xy写为3*x*y、2x+5(y+z)写为2*(x+5*(y+z)、r2写为pi()*r2。 练习:将下式写为VFP算术表达式。 2、字符串运算符,字符串表达式: “ab123”+”88xy” 结果为: “ab12388xy”。 “欢迎光临”“谢谢惠顾!”结果为:“欢迎光临谢谢惠顾!”。 “abc “+” 123 “+” xyz “结果为:”abc 123 xyz “。 “ABC “+”DEF”结果为:”ABCDEF ”。 3、日期时间运算符 日期之间只能进行加减运算,有下面3种情况: (1) 日期相减,得到相差的天数。 (2) 日期加数值,得到新的日期。 (3) 日期减数值,得到以前某个日期。,例如: 2008/11/11 2008/11/1 结果为数值10。 2008/11/11 + 5 结果为日期型数据: 2008/11/16。 2008/11/11 - 3 结果为日期型数据: 2008/11/8。 4、关系运算符,说明:关系运算符两边的表达式只能是数值型、字符串型、 日期型,不能是逻辑型的表达式或值 。 字符型数据按其ASCII码值进行比较,ASCII码大的字符所在 的串值大。(ASCII码用0-127的数字表示字母和一些符号,其中 空格(的ASCII码)0129ABZabcz) “=”表示精确匹配。例如,使用条件 UPPER(NAME)=“SMITH”进行查找时,可以找到SMITHSON、 SMITHERS、SMITH等串,而如果用“=”,将得到精确匹配 SMITH的串。,5、逻辑运算符 .NOT. 非 AND. 与 .OR. 或,逻辑运算真值表:,运算符的优先顺序:,算术运算符,关系运算符,逻辑运算符,优先级降低,算数运算符的优先级为( ) 或* *和/ % +和- 。 关系运算符: 、=、#、$、=。 逻辑运算符:.NOT. 、.AND. 、.OR. 。,例7-1:写出VFP表达式2+3 1+4 .AND. .NOT. 65 .AND. .NOT. 60 .AND. B2-4*a*c=0。,闰年的条件是:年号(year)能被4整除,但不能被100整除;或者能被400整除。 结果为:(y%4=0 .AND. Y%1000) .OR. (y%400=0) 7.1.5 VFP常用函数 1、数学函数 MAX(表达式1,表达式2,) 求各表达式中的最大值。 MIN( ) 求各表达式中最小值。 MOD(表达式1,表达式2) 求表达式1除以表达式2的余数。 ?BETWEEN(15,10,30) &结果显示 .T. score=80 ?IIF(score=90,”优”,”合格”) &显示:合格。 2、字符串函数 LEN(表达式) 求字符串表达式长度。 SUBSTR(表达式 ,n,m ) 从字符串表达式中提取从n开始的m个字符的字符串,若省略m,则取n开始的所有字符串。,SUBSTR(“11/30/03”,7,2)=“03“ LOWER(表达式) 将字符串表达式中的大写字母转化为小写字母,其余不变。 UPPER(表达式) 与上相反。 3、日期时间函数 DATE( ) 取系统当前日期。 TIME( ) 取系统当前时间。 DATETIME( ) YEAR(日期表达式) 取日期表达式的年份值,返回整数。 MONTH(日期表达式) 取日期表达式的月份值,返回整数。 DAY(日期表达式) 取日期表达式的月份值,返回整数。 LIST YEAR(出生日期),4、类型转化函数 STR(数值表达式) 转换数值表达式为数字字符串。 CTOD(表达式) 将字符串转化为日期型。 DTOC(表达式) 将日期型表达式转化为字符串。 86年出生的表达式: SUBSTR(DTOC(出生时间),7,2)=“86“ 等价于: YEAR(出生时间)=1986 出生时间必须为日期型。,1、求3的10次方。 2、求199除以5得的余数。 3、 “1995 “+ “年“+ “8 “+ “月“+ “日“ 结果为什么? 4、 “闻鸡 起舞 “+ “枕戈 待旦“ 5、 “闻鸡 起舞 “ “枕戈 待旦“ 6、2008/11/11 - 3 结果为? 7、3#9 结果为 ?(或、!=) 8、“菊“$“采菊东篱下“ 结果为? 9、陶潜=陶 精确匹配,结果为? 10、(18).AND.(24),习题:,11、(18).OR.(24) 12、求 “a“$“bca“ .AND. (3!=5 .OR. .F.) 的值。 13、ALLTRIM(“ 123 “) =? 14、STR(表达式) 的作用? 15、CTOD(表达式) 的作用? 16、DTOC(表达式) 的作用? 17、YEAR(CTOD(“01/01/08“) 的值为什么? 18、MONTH(CTOD(“11/01/86“) 的值为什么? 19、DATE()、TIME()、DATETIME() 的值为什么?,7.1.6 VFP命令的语法 VFP命令由命令动词(关键字)+短语。 CREATE 数据库文件名。 USE SHARED EXCLUSIVE NOUPDATE 以共享方式打开,以独占方式打开,以只读方式打开。VFP中有些命令要求以独占的方式打开才能执行,如ALTER TABLE 、INDEX、INSERT、MODIFY STRUCTURE 、PACK等。 对记录进行操作的命令: 命令动词 FIELDS FOR OFF ( 表示可选,表示必选。),显示表结构: LIST | DISPLAY STRUCTURE &多出来的一个字节是存放删除标记用的。 BROWSE &打开表的浏览窗口。,LIST (列出当前表中所有记录项)。 命令: LIST &默认范围为ALL LIST NEXT 3 &只对包含当前记录在内的n 个记录进行操作。 LIST RECORD 5 &只对第5条记录进行操作。 Go 6 &跳转到第6条记录。 LIST REST &从当前记录一直到文件尾。 范围子句的说明: 记录范围一般有种选择: ALL: 对数据表文件的全部记录进行操作,省略时,默认为ALL。 NEXT n: 对包含当前记录在内的以下n个记录操作。 RECORD n : 只对第n个记录操作。 REST :从当前位置开始到文件尾。,默认的数据表记录范围:,DELETE & 删除当前记录行。(不带FOR语句) DISPLAY & 显示当前记录。 RECALL & 取消当前记录的删除标记 DELETE FOR 性别 &(删除所有性别为男的学生,仅打上删除标记,非物理删除)。 DISPLAY FOR 入学成绩=480 & 显示入学成绩大于480的所有记录。 Go 2 RECALL ALL & 取消当前表中所有记录的删除标记。 FIELDS子句: 后面可以跟字段名和表达式。 LIST FIELDS 姓名,性别,出生时间,入学成绩 & 后跟字段名 LIST FIELDS “姓名”+姓名,”性别”,性别,FOR子句: LIST FOR 性别 .AND. 入学成绩=480 LIST FIELDS 姓名,入学成绩 FOR 性别 .AND. 入学成绩=480 LIST FIELDS “姓名”+姓名,”性别”,性别 FOR .NOT. 性别 LIST ALL FIELDS 学号,入学成绩 FOR 入学成绩=460 .AND. 性别 DISPLAY FOR 出生时间的作用是:在规定的中,按检查全部记录。即从第1条记录开始,满足条件的就执行该命令,不满足条件就跳过去继续搜索,直到最后一条记录。若省略,则默认为ALL。,命令书写规则: 1)每条命令必须以一个命令动词开头。 2).T. .F. 两个逻辑值中的小数点与字母间不能有空格。 3)一个命令行的最大长度是254个字符,空格数也包括在内。 4)如果一个命令太长,一行写不下,可以使用续行符“;”。 5)不区分大小写。 6)命令动词和子句中的短语可以用其前4个字符缩写表示。如DISPLAY STRUCTURE 可简写为DISP STRU。 7)不要用A到I之间的单个字母作为表名,因为它们已被保留作数据库工作区的名称。 8)不要用VFP的保留字作文件名、字段名、变量名等。 9)一行只能写一条命令,每条命令的结束标志是回车键。 10)数据库文件后缀为.DBC、表文件名后缀为.DBF、备注文件.FPT。,7.2 VFP数据表 7.2.1 数据表的基本概念 数据表: 一些有组织数据的集合,由行、列组成的二维表格。简称表 (Table)。一个数据库包含一个或多个二维表,表表示现实世界的关系 或实体,各个数据表之间可能存在某种关系。 字段:数据表中的每一列称为一个字段,它对应表格中的数据项, 每个数据项的名称称为字段名(属性),如“年龄”、“性别”、“学号”、“入 学时间”等都是字段名。 记录:表中每一数据行成为一条记录,每条记录由许多字段组成, 如“2006001、赵小霞、女、1987年6月12日、490、计算机、程家吉”。,St.dbf数据表,7.2.2 启动VFP 7.2.3 建立数据表 可以在VFP中建立两种表:数据表和自由表。数据表是数据库的一部分,自由表可以独立存在于任何数据库之外。数据库文件后缀为.DBC、表文件名后缀为.DBF、备注文件.FPT。 1) 利用“表设计器”创建新表。 2) 追加记录。 3) 使用命令创建新表 CREATE TABLE ( () ,() ,字符型(C) 由字母(汉字)、数字、空格等任意字符串组成。每个字符占1字节,汉字占2字节。长度0-254。 货币型(Y) 存储与货币有关的数据,如工资、价格等。 日期型(D) 保存不带时间的日期,存储格式为“yyyymmdd”。字段宽度8字节。 日期时间型(T) 包括年、月、日、时、分、秒。 逻辑型(L) 用于存储只有两个值的数据,存入的值只有(.T.)和(.F.)两种状态,占1个字节。如婚否,及格否等。,数值型(N) 用来存储由数字、小数点和正负号组成的,可以进行计算的数据,如成绩、重量、体积、订货数量等。 整型(I) 存放由数字和正负号构成的整数型数据。其字段宽度为4字节。使用整型比使用其它类型节省空间,运算速度也快。 备注型(M) 占用10个字节的空间,单独存在于一个备注文件中,备注文件扩展名为.DBT。 1、创建新表命令 CREATE TABLE St_1(学号 c(7), 姓名 C(6), 性别 L(1), 出生时间 d(8),入学成绩 n(6,1), 所在系 c(10), 系负责人 c(8) ),2、打开表命令 USE St 3、关闭表命令 USE 4、添加记录命令 APPEND 7.2.4 浏览数据表 USE St (如果当前表不在默认路径下,一定要加路径) BROWSE USE “d:vfpst.dbf” 显示数据还可以使用LIST和DISPLAY命令。命令格式如下: LIST或DISPLAY FIELDS FOR OFF (DISPLAY若没有FOR语句,则只显示当前行。若不指定FIELDS,则输出所有字段。加上OFF,则显示系统加上的记录号,反之,不显示。),显示所有数据: LIST 或 DISPLAY ALL。 显示当前记录: DISPLAY 不带记录号现实当前记录: DISP OFF 显示男同学的姓名和出生时间: DISPLAY 姓名,出生时间 FOR 性别 或 LIST 姓名,出生时间 FOR 性别,显示入学成绩在480分以上的女生的学号、姓名、性别、入学成绩。 LIST OFF “学号:”+学号,姓名,性别,入学成绩 FOR .not. 性别 .and. 入学成绩=480 显示女同学的姓名和年龄: DISP 姓名,year(date()-year(出生时间) FOR 性别 编辑模式:EDIT与CHANGE命令等价。 例如: 修改当前记录 EDIT 修改第n条记录 EDIT n 修改包括当前记录在内的n条记录:EDIT NEXT n,列出8月份出生的女同学的姓名和出生时间? 列出年龄大于等于20岁的学生纪录,要求不显示记录号?,记录指针的移动: 绝对定位: GO TOP、GO BOTTOM、GO 。 相对定位: SKIP 。 n0 下移、n0 上移、无n向下移动一条记录,n包含小数,则四舍五入取整。 条件定位:LOCATE FOR条件范围 按顺序搜索表,直到找到满足制定条件的第一个记录,若无满 足条件的记录,指针停在指定范围的最后一条记录。(所谓的“范围”包 括ALL、NEXT n、RECORD n、REST)若要继续查找满足条件的记 录,用CONTINUE(必须在LOCATE之后出现)。,指针的定位: 定位到第1条记录: GO TOP。 定位到最后一条记录: GO BOTTOM。 下一个: SKIP。 上一个: SKIP-1。 定位到第n条记录: GO n 。 当前记录的记录号可用函数 RECNO( ) 返回。 当前表中记录的总个数可用RECCOUNT( ) 函数返回。,指向文件头的BOF( )函数和指向文件尾的EOF( )函数。 由于大多数的操作都是针对表记录的,那么就引入了一个概念: 当前记录。刚打开一个表时,指针指向表的第一条记录。第一条记录前 还有一个位置称为文件头,在最后一条记录的后面有一个位置称为文件 尾。,记录指针,文件头,1,2,n,文件尾,第1条记录,第2条记录,第n条记录,指针指向文件头时:函数BOF( )的值为 .T. 。当指针指向文件尾 时,文件尾函数EOF( )值为真。如果打开的是一个空表,则两函数同 时为 .T. 。,USE st ?BOF(),EOF(),RECNO() &结果为 .F. .F. 1 SKIP ?BOF(),EOF(),RECNO() &结果为 .F. .F. 2 GO TOP ?BOF(),EOF(),RECNO() &结果为 .F. .F. 1 SKIP-1 ?BOF(),EOF(),RECNO() &结果为 .T. .F. 1 GO BOTTOM SKIP ?BOF(),EOF(),RECNO() &结果为 .F. .T. 12,7.2.5 编辑表中的数据 1、在“浏览”模式下修改记录 2、在“编辑”模式下修改记录 EDIT 3、使用批替换命令 例:给女同学的“入学成绩”加10分,将某数据表的总分字段设 置为“语文”和“数学”的成绩和。 命令如下: REPLACE ALL 入学成绩 WITH 入学成绩+10 FOR 性别 REPLACE ALL 入学成绩 WITH 语文+数学,将计算机系学生的成绩加10分? 将计算机系学生的系负责人改为”丁老师”?,批替换命令REPLACE可对字段内容成批自动地进行修改(替 换),而不必在编辑状态下逐条修改。语法格式如下: REPLACE WITH , WITH FOR 说明: 选项只能是ALL、NEXT、RECORD、REST4种。 若不选择、FOR 子句,默认为当前记录。,REPLACE 命令不重新定位记录指针,因此在执行该命令时,必 须先把记录指针定位到要修改的那个记录,如果没有FOR条件限制,只更改当前行。 如果要用REPLACE命令填充一个新记录的数据,那么这个记 录应先用APPEND BLANK或INSERT BLANK命令生成一个空记 录,再填入数据。例如: APPEND BLANK REPLACE 学号 WITH “2006200”,姓名 WITH “丁一”,性别 WITH .T.,出生时间 WITH CTOD(“07/19/87”),入学成绩 WITH 505,所在系 WITH “计算机”,系负责人 WITH “程家吉”,将第2条记录的名字改为“朱勤”。,例:新表的创建和数据的添加: create table ScoreTable(学号 c(8), 课程号 c(3), 成绩 n(6,1) append blank replace 学号 with “2002001“, 课程号 with “003“,成绩 with 99 append blank replace 学号 with “2002200“, 课程号 with “001“,成绩 with 80.5 append blank replace 学号 with “2002020“, 课程号 with “002“,成绩 with 89 list,删除记录: 1、在“浏览”或“编辑”模式下删除记录 标记删除属于逻辑删除,不等同于物理删除,要想真正删除记录 (物理删除),应选择“表”菜单”彻底删除”。 2、删除满足条件的记录 3、删除的命令 DELETE FOR &该命令属于逻辑删除, 删除后记录仍能够被修改、复制、显示等,只是前面多了删除标记“*”。 例:将所有记录加上删除标记。 DELETE ALL,例:删除所有入学成绩小于等于470的学生记录。 DELETE ALL FOR 入学成绩 FOR RECALL是DELETE的逆操作,作用是取消标记,恢复成正常记录。,删除出生时间在1986年及以前的学生信息? 删除中文系的所有学生? 物理删除所有男同学的信息?,物理删除记录命令 将数据表中所有具有删除标记的记录正式从表中删除。 PACK 为物理删除命令,一旦执行,无法恢复。 物理删除所有记录命令 ZAP 命令等价于DELETE ALL 与 PACK连用,但速度更快,一旦执行,无法恢复。 例如:彻底删除表中所有记录。 DELETE ALL PACK,7.2.6 修改数据表结构 使用下面命令打开表设计器: MODIFY STRUCTURE 或 MODI STRU 。,7.3 数据表的索引、查询和统计 通常我们输入的数据是无序的,当数据量很大,表中有成千上万条 记录时,如果不按照某种顺序排列,寻找数据必须从头到尾搜索整个数 据表,这样效率就大大降低了。为了解决这个问题,可以让记录按照某 种顺序(如数字大小或字符顺序)来排列,在数据库中该方法称为索 引 。有了索引,用户可以快速查到所需的数据。 1 、 索引的概念 索引就是根据某字段值,创建一个有序的索引文件,并不实际调整 数据表中每个记录的位置,因而记录在数据表中的位置不变,而索引文 件中的项是有序的。索引相当于基本表的目录,如同有一本书,它前面 设有目录,目录包括摘要内容和对应页码,索引则相应地含有索引项和 元组地址。,基于学号的索引,基本表(无序),索引包括两项内容:,索引项 元组地址,无序表和有序表的查询时间区别很大。,在没有索引的表上进行数据查询,显然,是对无序表的查询,需要 花费相当多的时间,从第一行记录开始一行一行地进行查询,这种方法 显然效率很低。那么,如果是对于一个有序表,在查询它的某一行记录 时,就可采用查询速度快的快速查找方法。 这样,对于数据含量非常大的表,就必须提取一列或若干列,建立 有序索引,才能大大加快数据的查询速度。,1,n,x,折半查找法,有序树,2、索引的类别 主索引、候选索引、唯一索引、普通索引。 主索引强调“不允许出现重复值”,一个表只能有一个主索引。 候选索引也要求字段的唯一性,可建立多个候选索引。 普通索引允许字段中出现重复值,可建立多个普通索引。 独立索引后缀为 .IDX,复合索引后缀为 .CDX。 3、建立索引 表设计器建立 命令建立 在VFP中,有时需要临时建立一些普通索引或唯一索引,可以用命 令来建立,语法如下:,INDEX ON TO FOR 注意:组合索引(多列)要将非字符串类型的数据转化为字符串 数据,然后按照主关键字在前,次关键字在后的次序用“+”号连接在 一起。 例如:要按语文、数学的顺序对记录建立组合索引,则各关键字 转化为字符后用“+”连接。索引表达式为:STR(语文,5,1)+STR(数 学,5,1) 如果用多个数值型字段建立一个索引表达式,索引则按照表达 式的值进行排序。STR(语文,5,1)+STR(数学,5,1)与 语文+数学这两个索 引含义不同,前者建立有主次关系的组合索引,后者按照两个数值和 的值进行排序。,若选用FOR子句,则只有符合条件的记录才被索引。 这样,既缩短了索引建立时间,又提高了FIND或SEEK命令的检索速 度。索引默认按升序排列,执行创建命令后,索引就被打开,其记录指 针指向逻辑首记录(GO TOP处)。 几个创建普通索引的命令: INDEX ON 学号 TO xh LIST INDEX ON -入学成绩 TO cj LIST INDEX ON 姓名 TO xm LIST,筛选年龄在19岁以上的记录:(条件为YEAR(DATE( )-YEAR(出 生时间)19)。 INDEX ON 学号 to xh for year(date()-year(出生时间)=22 LIST 4、查询记录 使用普通索引、候选索引或主索引,可以进行记录排序,以便提 高显示、查询或打印的速度。 字符查找 例:在已经建立的索引文件的基础上,查找姓名为“李才”和学 号为“2006011”的记录。,SET ORDER TO xm FIND 李才 DISP SET ORDER TO xh FIND 2006011 DISP FIND 2006001 DISP 注意:使用SET ORDER命令,可以改变表单中记录的顺序。格式 为:SET ORDER TO (索引名为已存在的索引)。FIND 字符查找命令,查找关键字与所给字符串相匹配的第一个记录。若找 到,指针指向该记录,否则指向文件尾。 FIND | ,表达式查找: 例:以性别为关键字建立索引,并查找第一个男生记录和第一个女生记录. INDEX ON 性别 TO xb SET ORDER TO xb LIST SEEK .T. DISP SEEK .F. DISP SEEK 命令查找关键字与所给字符串相匹配的第一个记录。若找到,指针指向该记录,否则指向文件尾,给出信息“没找到”。语法格式为: SEEK 删除所有索引:DELETE TAG ALL。 删除索引:DELETE TAG 索引名。,说明:只能找出符合条件的第一条记录,该命令可以查找字符、数值、日期和逻辑型索引关键字。若为字符串,则必须用界限符号括起来(,“”,)。 若是找到了符合条件的首记录,则函数FOUND( )的值为 .T. ,否则为 .F. 。 顺序查询 例:在数据表中依次查找86年出生的学生记录。 USE ST LIST LOCATE FOR SUBSTR(DTOC(出生时间),7,2)=“86” DISP CONTINUE DISP CONTINUE DISP,将记录指针定位在第一条中文系学生纪录上? 将记录指针定位在第一条成绩大于500分的学生纪录上?,LOCATE命令是在不建立索引的条件下,查找当前数据表中满足条件的第一条记录。语法格式为: LOCATE FOR 统计记录 建立数据表后,常常要对数据表中数值型字段的记录进行统计。 统计记录数COUNT: 例:分别统计女生人数和入学成绩480分的学生记录。 USE st LIST COUNT FOR .NOT. 性别 TO n COUNT FOR 入学成绩=480 TO x ? n,x,统计函数使用COUNT命令,格式为: COUNT FOR TO 求和SUM: 例:求女生入学成绩之和。 SUM 入学成绩 FOR .NOT. 性别 TO nu 求平均值AVERAGE: 例:求86年出生的学生的平均入学成绩,以及中文系男学生的平均入学成绩。 AVERAGE 入学成绩 FOR SUBSTR(DTOC(出生时间),7,2)=“86” TO pjcj,AVERAGE 入学成绩 FOR SUBSTR(DTOC(出生时间),7,2)=“86” 另外一种写法: AVERAGE 入学成绩 FOR YEAR(出生时间)=1986 LIST YEAR(出生时间) &返回4位数整数。 LIST FOR YEAR(出生时间)=1987,AVERAGE FOR 所在系“中文” TO pjszx ? “86年出生的学生的平均入学成绩为:”+str(pjcj) ? “中文系学生的平均入学成绩为:” +str(pjszx) AVERAGE命令格式为: AVERAGE FOR TO ,补充内容: 索引的降序处理: 如果是数字,可直接在前面加“-”号。如果是字符串,则格式如下: INDEX ON 出生时间 TAG sj DESC 求最大值最小值函数(MAX和MIN函数的使用)。 CALCULATE SUM(入学成绩),MAX(入学成绩),MIN(入学成绩),AVG(入学成绩) CALCULATE MAX(入学成绩) TO maxcj,复制数据到新文件 命令如下:COPY TO FIELDS FOR COPY TO 学生2.dbf FIELDS 姓名,补助,出生日期 FOR 专业=“计算机“,对计算机专业的学生按年龄的降序排列,生产新表table1.dbf,且只包含姓名、性别、出生时间3字段? 将1986年出生的同学按分数升序排列,并生成新表table2?,常用的操作命令总结: 子句 4种情况:ALL 操作对象为表中全部数据。 NEXT 操作

温馨提示

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

评论

0/150

提交评论