数据库应用基础 电大崇信县工作站:王 敏
Lo k f r o o
一、本节课的教学目标: 掌握LOCATE命令的基本格式和功能 掌握SEEK、FIND命令的功能和区别,并会灵活应用 会应用测试检索是否成功的函数 掌握统计命令、求和命令、求平均值命令的用法 通过学习本节课对检索数据 有新的认识,形成好的思考 问题的方式 Q&A
二、 检 索 数 据 目 录 在表中检索数据 继续查 找命令 测试检索是否成功的函数 使用索引快速检索数据
三、内容回顾及新课引入 一、内容回顾: 二、引入新课: 为什么要创建索引?VFP中创建索引的命令是什么? 如何从大量的数据中找出需要的数据呢? 通常要使用检索数据的命令:可以直接在表中检索数据用LOCATE命令;也可以在索引中快速检索数据,用SEEK和FIND命令。
在表中检索数据—LOCATE命令 返 回 LOCATE命令的基本功能 LOCATE命令 的基本格式 LOCATE 命令说明 Invest in property 10% of total AUM £425M UK Diversified portfolio At least 70% directly owned Absolute return benchmark RPI +4% Appoint a suitable manager To achieve these objectives Fully discretionary 返 回
在表中检索数据—LOCATE命令 LOCATE 命令的基本格式: LOCATE 命令功能: LOCATE 命令说明: LOCATE FOR<条件> LOCATE 命令功能: 在当前表中查找满足条件的第1条记录。 LOCATE 命令说明: “条件”指定记录满足的条件,它是一个逻辑表达式。
在表中检索数据—LOCATE命令 例1: USE XSDA LOCATA FOR 班级=”计算机01” 例2: USE XSDA
继续查找命令—CONTINUE命令 继续查找命令—CONTINUE命令 继续查找命令—CONTINUE命令 命令格式: CONTINUE 继续查找命令—CONTINUE命令 继续查找命令—CONTINUE命令 继续查找命令—CONTINUE命令 继续查找满足条件的下一条记录 命令功能 命令说明:(1)CONTINUE命 令只能与LOCATE命令联合使用,它使用LOCATE命令的条件继续查找满足条件的下一条记录。 (2)LOCATE命令与CONTINUE 命 令只能定位记录,不能显示记录,显示记录时用显示命令显示。 返 回
LOCATE和CONTINUE的应用 命令功能:在XSDA.DBF中查询 计算机01班的记录 例: USE D:\XS\XSDA LOCATA FOR 班级=”计算机01” DISPLAY CONTINUE 命令功能:在XSDA.DBF中查询 计算机01班的记录
使用索引快速检索数据 SEEK 命令 FIND 命令 返 回
使用索引快速检索数据 SEEK 命令 FIND
使用索引快速检索数据 SEEK 命令 FIND 命令
使用索引快速检索数据 SEEK 命令 FIND 命令
使用索引快速检索数据 SEEK 命令 FIND 命令
使用索引快速检索数据 SEEK命令的基本格式: SEEK命令的功能: 在当前表的索引中检索指定表达式的值。 SEEK<表达式>[TAG 索引 名][IN工作区号︱别名] SEEK命令的功能: 在当前表的索引中检索指定表达式的值。
使用索引快速检索数据 FIND命令的基本格式: FIND 字符型/数值型常量 FIND命令的功能: 在当前表的索引中检索指定的值。
SEEK与FIND命令说明 (1)SEEK和FIND命令只能用于索引文件 中,所以使用该命令之前必须建立索引文件。 件的第一条记录,要查找满足条件的下 一条记录时,用SKIP命令将记录指针跳 到下一条满足条件的记录上。 (3)SEEK和FIND命令都是按确定的值进行查询。SEEK后接表达式而FIND命令只能接字符型或数值型的常量。 (4)在对字符型的变量查找时,SEEK必须加定界符(””,’’,[ ])而FIND命令可加可不加。 (5)如果被查询的值放在变量中,SEEK命令可直接接变量名而FIND必须使用宏替换。
使用索引快速检索数据—举例 例1、例2的命令功能相同:在XSDA.DBF中查询姓名是李明同学的记录 例1:USE XSDA INDEX ON 姓名 TO XM FIND 李明 DISPLAY 例1、例2的命令功能相同:在XSDA.DBF中查询姓名是李明同学的记录 例2:USE XSDA INDEX ON 姓名 TO XM SEEK ”李明” DISPLAY Core Centre - Edinburgh Improving location – between Princes St & George St Multi-use Multi-let 例3:命令功能:在 XSDA.DBF中查询1989年3月14日出生的学生的记录 例3:USE XSDA INDEX ON 出生日期 TO CSRQ SEEK{∧ 1989/03/14} DISPLAY
使用索引快速检索数据—举例 USEXSDA INDEX ON 学号; TO XS XM=“20040007”SEEK XM DISPLAY 命令功能:在 XSDA.DBF中查询学号 是“20040007”的学生 记录 USE XSDA INDEX ON 学;号 TO XS XM=“20040007” FIND &XM DISPLAY
检测检索是否成功的函数 FOUND函数、EOF函数是测 试检索是否成功的函数。 1.FOUND函数的格式:FOUND() 检测检索是否成功。若检索成功,则函数 返回逻辑真;否则返回逻辑假。 3. EOF函数的功能: 如果检索成功,则记录指针不在文件尾, EOF函数返回逻辑假;如果检索失败, 则记录指针在文件尾, EOF函数 返回逻辑真。 返 回
五、检索数据练习 1.设职工数据表文件已经打开,其中有工资字段,要把指针定位在第一个工资大于620元的记录上,应使用的命令是( ) 1.设职工数据表文件已经打开,其中有工资字段,要把指针定位在第一个工资大于620元的记录上,应使用的命令是( ) A)Find For 工资>620 B)Seek 工资>620 C)List For 工>620 D)Locate For 工资>620 D 2.假定学生数据表student.dbf中前六条记录均为女生的记录,执行以下命令序列后,记录指针定位在( ) Use student Go to 3 Locate Next 3 For 性别=“男” A)第3条记录上 B)第4 条记录上 C)第5条记录上 D)第条6记录上 A
检索数据练习 3.当前表按”职称”字段建立了索引,利用索引查找职称为”教授”的第二条记录,正确的命令是( ) 3.当前表按”职称”字段建立了索引,利用索引查找职称为”教授”的第二条记录,正确的命令是( ) A)seek 职称=”教授” B)seek”教授” skip continue C)seek”教授” D)seek”教授” skip skip ”教授” C 4.假定学生数据表student.dbf中前六条记录均为男生的记录,执行以下命令序列后,记录指针定位在( ) use student Go to 4 Locate Next 3 For 性别=“女” A)第1条记录上 B)第4 条记录上 C)第6条记录上 D)第条7记录上 D
检索数据练习 值 索引 5. SEEK和FIND命令检索数据时,是按照 查询的。使用SEEK和FIND查询时必须先要为当前表建立 。 6.使用LOCATE命令检索到满足条件的第一条命令,若要检索满足条件的下一条命令应该用 命令;而SEEK和FIND命令检索到满足条件的命令时,若要检索到满足条件的下一条记录,需执行 命令。 7.使用SEEK、LOCATE和CONTINUE检索数据后,可以使用 函数测试检索是否成功,若检索成功,则函数的返回值是 ;否则,函数的返回值是 。 索引 CONTINUE SKIP FOUND( ) .T. .F.
检索 数据 小结 使用命令 检索数据 检测检索是否 继续检索命令 成功的函数 CONTINUE命令 使用索引 SEEK和FIND 检索数据 命令的比较
六、探索与思考 怎样使用EOF函数测试检索数据是否成功?它和FOUND函数的区别是什么? 求XSDA.DBF中计算机01班学生入学成绩的平均值,应该怎样操作? 在XSDA.DBF中如何统计计算机01班的学生的个数?
Thank you!