• 沒有找到結果。

教学难点 表的索引与排序。

?between(100,x,y)

(20)x=100

学 进 程 与 设 计

首先通过提问的形式将上一讲中的重点知识进行回顾;然后进行表 的数据类型和创建表的回顾,进而在表中浏览和编辑信息以及索引导入 本次课程内容。

教学讲授:(75 分钟)

第 3 章 数据表的基本操作

数据表是组成关系型数据库的基本单元,也是程序操作的数据对 象。在编写程序之前需创建表,设计表的结构和录入数据,以便为应用 程序提供数据处理的对象。在数据表创建之后也有大量的维护工作,如 记录的增加、删除和修改等。

3.3 浏览和编辑表中信息 1、修改已有表的结构

(1)打开表及“表设计器”

(2)表设计器中的“表”选项卡

(3)在表中增加字段

(4)删除表中的字段

(5)改变字段顺序 2、添加新记录

若想在表中快速加入新记录,可以将浏览/编辑窗口设置为“追加方 式”状态。在“追加方式”中,文件底部显示了一组空字段,用户可以在其 中输入新记录。

3、删除记录

4、在表中移动记录指针

表的内部有一个记录指针,当打开表文件时,指针将指向首条记 录。当对记录进行操作时,记录指针将会移动,指向当前记录。

5、定制浏览窗口

(1)变列宽和行高

(2)调整字段顺序

(3)打开或关闭网格线

(4)拆分浏览窗口

3.4 表的索引与排序

Visual FoxPro 中的索引和书中的索引类似。书中的索引是一份页 码

的列表,指向书中的页号。表索引是一个记录号的列表,它存储了一组 备注

学 进 程 与 设 计

记录指针指向待处理的记录,并确定了记录的处理顺序。索引并不改变 表中所存储数据的顺序,它只改变了 Visual FoxPro 读取每条记录的顺 序。

对于已经建好的表,索引可以帮助用户对其中的数据进行排序,以 便加速检索数据的速度;可以快速显示、查询或者打印记录;还可以选 择记录、控制重复字段值的输入并支持表间的关系操作。

1、索引

(1)索引类型

索引有 4 种类型:为主索引,候选索引,普通索引,唯一索引。其 特点为:

主索引:可确保字段中输入值的唯一性并决定了处理记录的顺序。

可以为数据库中的每一个表建立一个主索引。如果某个表已经有了一个 主索引,可以继续添加侯选索引。

候选索引:像主索引一样要求字段值的唯一性并决定了处理记录的 顺序。在数据库表和自由表中均可为每个表建立多个候选索引。

普通索引:也可以决定记录的处理顺序,但是允许字段中出现重复 值。在一个表中可以加入多个普通索引。

唯一索引:为了保持同早期版本的兼容性,还可以建立一个唯一索 引,以指定字段的首次出现值为基础,选定一组记录,并对记录进行排 序。

(2)创建索引

鼠标法:显示/表设计器

命令法:index on 字段名 asc/desc tag 索引名 candidate/unique/

注:此命令不能创建主索引

例如:设置姓名为普通索引,按降序排序,索引名为 xm。

index on 姓名 desc tag xm

例如:设置学号为候选索引,按升序排序,索引名为学号。

index on 学号 tag 学号 candidate

(3)设置当前索引

鼠标法:窗口/数据工作区/属性/索引顺序 命令法:set order to 索引名

例如:设置学号为当前索引 set order to 学号

学 进 程 与 设 计

3、排序

前面介绍的是利用索引进行逻辑排序,也可以利用 SORT 命令进行 物理排序。

(1)命令格式

sort to <新表文件名> on <字段名> [asc/desc][for<条件>]

(2)举例 use xsdb

sort to npx on 院系 for 性别= ''男'‘

对所有的男同学按院系的升序排序生成一个新的表 npx.dbf,排序后 并不改变原表 xsdb 的顺序。

3.5 表的数值计算 1、纵向求和 sum

(1)命令格式

sum [<数字型字段名> [to <内存变量名表>][<范围>][for <条 件>]]

(2)命令功能

在当前表中,凡是在指定范围内指定条件的记录,可计算指定的数 值型字段的代数和,并分别将计算结果依次存入指定的内存变量中。

例如:计算课程编号为 2001 这门课的成绩总和。

sum 成绩 to y for 课程编号="2001"

2、纵向求平均值 average

(1)命令格式

average [<数字型字段名> [to <内存变量名表>][<范围>][for

<条件>]]

(2)命令功能

在前表中,凡是在指定范围内指定条件的记录,可计算指定的数值 型字段的平均值,并分别将计算结果依次存入指定的内存变量。

例如:计算课程编号为 2001 这门课的成绩平均值。

average 成绩 to y for 课程编号="2001"

3、统计记录数 count

(1)命令格式

count [to <内存变量名>[<范围>][for <条件>]]

(2)命令功能 备注

count to x for 课程编号="2001"

教学讲授小结:(5 分钟)

3.课后第一题选择题 10、13、14、17、18?

课后小结