




已阅读5页,还剩104页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章VisualFoxPro的基本操作 4 1基本概念和操作 4 数据库 4 创建数据表 4 数据表的基本操作 4 查询与统计操作 4 6多工作区操作 4 7小结 第4章VisualFoxPro的基本操作 4 1基本概念和操作 4 1 1VisualFoxPro的基本操作方式VisualFoxPro与前期的数据库产品一样 都可以支持两类不同的基本操作方式 即交互式操作方式和程序操作方式 1 交互式方式VisualFoxPro的交互式操作方式有命令执行与界面操作两种类型 命令执行方式与界面操作方式是一致的 许多的命令功能都可以通过相应的菜单选择来实现 事实上 当用户选择了某一菜单命令并执行它时 在命令窗口中便会自动显示与其对应的键盘命令 就好像用户通过键盘输入了该命令一样 所以在VisualFoxPro中 用户可以任意选用或交替使用这两种方法 2 程序操作方式程序执行方式就是将一系列的语句或命令存储在一个文件中而成为一个程序文件 PRG 通过运行该程序文件 完成某些特殊的功能 程序操作方式不仅运行效率高 而且可重复执行 可见 交互式操作方法虽然方便 灵活 但是当用户需要反复执行某些相同的命令序列 或处理较复杂的问题时就不能发挥计算机高速度 自动化运行的优势 为此 VisualFoxPro提供了程序执行方式来解决该问题 4 1 2命令操作的基本要求 1 命令的一般格式为了熟练掌握各种命令的使用方法 首先要了解命令的语法规则 以便读者正确地使用命令 命令的一般格式如下所示 命令关键字 范围 FOR WHILE 2 命令书写规则 1 文件命名方法文件名由主文件名和扩展名两部分组成 主文件名由字符组成 字符可以包括字母 数字 下划线 连字符等 扩展名由 加3个字母组成 表示文件类型 2 本书命令 函数符号的约定VisualFoxPro的命令在书写时 为了便于叙述 常引入下列几个符号 其约定如下 l 其中的内容是可选项 不选时系统自动取默认值 但在程序输入时或在命令窗口中输入时均不书写这对 而只写其中参数的内容 l 其中的内容是用户的选择项 通常有多种可能供用户选择一种 若 不在 内 则为必选项 即用户必须选择多种可能中的一种 若 在 内时 当不选 中的内容时 其 中的内容也不能选 而当选择 中的内容时 其 中的 内的内容就为必选项 但在程序输入时或在命令窗口中输入时均不书写这对 而只写其中的参数的内容 l 为二选一表示符 要求用户从本符号的左右两项中选择一顶 同样 在命令或函数的输入中 线也不要写 l 省略符 它表示在一个命令或函数表达式中 某一部分可以按同一方式重复 3 命令格式的说明从上述命令格式可以看到 VisualFoxPro命令主要由5个部分组成 各部分功能如下 1 命令关键字 是一个英文动词 是VisualFoxPro的命令名 用来指定计算机要完成的操作 例如STORE LIST COPYTO等都是命令关键字 分别表示定义内存变量 显示表的记录 复制表的内 2 表达式表 表达式表子句是由数据和运算符一起构成的有意义的式子 各表达式表是一个或多个由逗号分隔开的表达式 该表达式在一般情况下由表中字段名构成 表达式除了可以是字段 字段名表外 还可以加进运算符 如 单价 1 05 也是一个表达式 3 范围子句 范围子句用来指定命令可以操作的有效记录范围 范围可有下列四种选择 lALL 指当前表中的全部记录 lNEXT n 指从当前记录开始的连续N条记录 lRECORD n 指当前表中的第N号记录 lREST 指从当前记录开始到最后一条记录为止的所有记录 4 FOR 条件 子句 对满足条件的记录进行操作 如果使用FOR子句 VPF6 0将记录指针重新指向表文件顶部 系统会用FOR条件与每条记录进行比较 5 WHILE 条件 子句 在表文件中 从当前记录开始 按记录顺序从上向下处理 一旦遇到不满足条件的记录 就停止搜索并结束该命令的执行 FOR和WHILE都是条件子句 但在默认范围选择项条件下主要有两点不同 lFOR子句是从首记录开始判断逻辑表达式是真还是假 而WHILE子句则从当前记录起判断条件是否成立 lFOR子句对逻辑表达式取真值的所有记录进行规则操作 不管这些记录是呈连续排列或是间断排列 而WHILE子句是从当前记录开始 只要遇到其逻辑表达式取假值就停止操作 不管其后是否有满足条件的记录 4 1 3命令的输入与编辑 1 命令的输入在VisualFoxPro命令窗口中按命令的语法规则键入需要操作的命令 最后按下Enter键 就可以执行该命令了 2 命令的编辑命令窗口是一个可以编辑的窗口 可以在命令窗口中进行各种编辑操作 如插入 删除 拷贝 剪切等 或者用光标和滚动条在整个命令窗口中上下移动 这些特性对命令输入起了很大的帮助作用 比如要键入一个和上一次命令相似的命令 那么只需将光标移动到上一条命令上 然后输入或删除命令的不同部分 最后按下Enter键 就可以执行这条新命令了 3 输入命令时的注意事项 1 命令关键字不能省略 必须是命令行的第一个英文动词 其它子句可以以任意顺序跟在其后 命令动词与各子句之间用一个或多个空格隔开 如 EDITFIELDS学号 姓名 班级ALLFOR高等数学 85EDITALLFIELDS学号 姓名 班级FOR高等数学 85EDITFOR高等数学 85ALLFIELDS学号 姓名 班级 2 命令动词和VISUALFOXPRO保留字一般可用前4个或4个以上字母简写 如 DISPLAYMEMORYDISPLMEMODISPMEMO 3 当表达式中 由FIELDS引导字段名表时 字段名表中的各字段间必须用逗号分割 但逗号 必须是在英文状态下输入的西文逗号 4 命令 关键字 变量名和文件名中的字母既可以大写也可以小写 还可以大写 小写混合 三者等效 5 虽然命令窗口可以上下左右滚动 也可以在一行把命令输完 但屏幕的左右滚动会很不方便 这时不妨尝试一下续行操作 输入命令时可以在命令的关键字或子句之间加分号 然后按回车键 再在下一行输入命令的剩余部分 这样就可以把一条长命令分成好多行来写 进行续行操作 应注意以下几点 l命令的最后一行不能以分号结尾 如 lREPLACEALL实发工资WITH 基本工资 职务津贴 奖金 养老保险 1 03FOR工龄 20l当一条命令被分成多行输入时 如果想同时使用 命令加入一些注释 此时注释不能出现在分号之后 而只能将注释放在命令的最后一行的后面 l当准备执行一个被分成多行的命令时 可将光标放在该命令的任意一行上 然后按下Enter键 4 1 4设置格式 1 设置字体在进行命令输入的过程中 可以通过改变命令窗口中的字体大小 行间距等清晰地显示每一条命令 用户可以使用 格式 菜单中的 字体 选项改变字体的大小 2 设置行缩进行缩进可以极大地改善被分成多行的命令的可读性 在命令窗口中为产生缩进效果 在输入命令前先按Tab键 当然也有可能需要多按几次TAB键 以产生更多的行缩进 这样接下来的行就自动产生相同的缩进 一旦在命令窗口中加入一个行缩进 那么接下来的行就可自动产生相同的缩进 不过此时需要按Ctrl Enter将光标移到下一行 而不能用Enter键 3 出错处理在命令窗口输入命令时 会出现一些输入错误 在没发现之前按下回车键之后 系统会给出一个简单的提示 4 2数据库 如果想把多个表联系起来 就一定要建立数据库 只有把这些有关系的表存放在同一个数据库中 确定它们的关联关系 数据库中的数据才能被更充分地利用 数据库文件扩展名为 dbc4 2 2创建数据库利用 数据库设计器 建立数据库 操作方法是 在VisualFoxPro系统主菜单下 进入 数据库设计 窗口 然后打开 数据库 菜单 对数据库进行各种操作或单击鼠标右键 弹出 数据库 快捷菜单 对数据库进行各种操作 还可以通过在 项目管理器 中创建数据库 由文件菜单创建数据库 通过命令建立数据库 4 2 1数据库概念 4 2 3数据库的维护 1 数据库的打开和关闭 1 由文件菜单打开和关闭数据库打开一个已存在的数据库 操作方法是 打开 文件 菜单 选择 打开 在 打开 窗口 在文件类型下拉框内 选择数据库类型 然后输入要打开的数据库名 再按 确定 按钮 进入 数据库设计器 窗口 2 通过命令对数据库进行操作l打开一个数据库 格式 OPENDATABASE 功能 打开一个数据库 举例 在当前目录下打开 教职工 数据库 opendatabaseD LIULI 教职工 l修改一个数据库 格式 MODIFYDATABASE 功能 修改编辑一个数据库 举例 修改并编辑 教职工 数据库 MODIdataD LIULI 教职工l删除一个数据库 格式 DELETEDATABASE 功能 删除一个数据库 举例 删除指定路径D LIULI下的 教职工 数据库 DELEdataD LIULI 教职工 2 在数据库中添加表有了数据库文件 就可以向数据库添加表了 通常数据表只能属于一个数据库文件 如果你想向当前数据库中添加的表已被添加到了别的数据库中 在加入你所建立的数据库之前 必须要从其它数据库中移去后才能添加到你的数据库中 向数据库添加数据表 操作方法是 打开数据库在 数据库设计器 窗口 单击鼠标右键 弹出 数据库 快捷菜单 选择添加表 在 打开 窗口 选择要添加的表 返回 数据库设计器 窗口 重复操作可以将多个表添加到数据库中 从数据库中移去或删除表 主要有以下两种方式 在 项目管理器 的 数据 选项卡中 选择 数据库 下方 表 中的 教师基本情况表 然后单击 移去 按钮 在弹出的对话框中 选择 移去 或 删除 在 数据库设计器 中的预删除的表上单击鼠标右键 在弹出的快捷菜单中选择 删除 选项 或单击 数据库设计器 工具栏上的 移去表 按钮 也可将预添加的表文件从数据库中 移去 或 删除 3 在数据库中移去 删除表 4 3 1数据表的概念1 数据库与表的关系数据表是存储记录数据的文件 是关系型数据库管理系统中处理数据的基本单元数据表是由一组相关的数据按行和列排列的二维表格 表文件扩展名为 DBF类型自由表 不包含于任何数据库数据库表 包含于某个数据库 两者关系 相关概念 字段 字段名 记录 数据库 DBC 2 字段的命名 P50 3 字段的数据类型 P50 4 3数据表 数据库表包含许多自由表没有的属性数据库表和自由表可以相互转换自由表添加到数据库中成为数据库表数据库表移出数据库成为自由表一个表只能属于一个数据库如果要将表从一个数据库转到另一个数据库中 必须先将它移出前一个数据库 才能加入后一个数据库 自由表和数据库表的关系 学生表示例 6个字段 字段名分别为 学号 姓名等 2条记录 12个字段值 4 3 2创建表结构 1 创建表结构 项目管理器 数据 文件 新建 表 表向导 文件 新建 表 新建文件 命令 CREATE 可任意定义为数据库表或自由表 若当前某数据库为打开状态 则创建的为数据库表 否则为自由表 创建表结构的几点说明 字段名以字母或汉字开头 由字母 数字 下划线和汉字组成字段类型根据具体情况而定 字段值与字段类型要匹配若为字段添加索引 在索引列中选择一种排序方式字段的NULL列有一个钩 表示该字段可以接受NULL值 在项目管理器的 数据 选项卡中 打开数据库选择数据库下的表 单击 添加 添加为数据库表选择自由表 单击 添加 添加为自由表 要添加的表必须具备下列条件该表是一个有效的 DBF文件表不允许与打开的数据库中已有的表同名表不能同时放在另一个数据库中要加入表的数据库必须具备下列条件必须以独占方式打开 要想独占地打开一个数据库 在使用OPENDATABASE命令时加入EXCLUSIVE子句 2 添加数据表到项目中 3 修改表结构 当建立了数据表结构之后 如果发现表结构有问题 可以利用表设计器来修改 1 修改字段 P53 2 添加 删除字段 P53 3 调整字段顺序 P53 1 设置字段显示 设置字段标题系统默认 表的标题显示的是字段名 字段名的最大长度只有10个字符长 在进行浏览时 如果用户不进行字段标题的设置 有时难以概括清楚该名下数据的属性 为了在显示表中数据时浏览的清晰 方便 用户可以自定义字段标题 标题的长度可达128个字符 4 设置字段属性 有补充 例 打开学生选课数据库 打开学生表 打开 显示 菜单 选择 表设计器 选定需要指定标题的字段 在标题框中对标题进行设置 对学号字段设置标题 对字段加以注释 以提醒自己或其它用户 清楚地掌握字段的属性 意义及特殊用途等 对字段加以注释 2 为字段输入注释 3 设置字段的数据输入 设置默认字段值为了提高表中数据输入的速度和准确性 设置字段数据的默认值时 注意字段的类型 字符型数据要加定界符 日期型数据要用到字符日期转换函数等 对入学时间设置默认值 为提高表中数据输入的速度和准确性 除了定义字段的默认值外 还可以定义字段格式和掩码 如 学号字段只接受数字字符 对学号字段设置输入掩码 4 设置字段的格式和掩码 格式掩码中可用的功能符和格式符 5 设置字段的有效性规则 有效性规则和有效性说明点击 字段有效性 中 规则 框的三点按钮 可在表达式生成器中设置字段的格式 对学号字段设置规则 违反规则的出错信息 记录的输入界面立即输入 创建完表结构后 在输入数据记录对话框中选择 是 如下图示之后输入 打开表 选择 显示 浏览 选择 显示 追加方式 选择 是 立即输入记录 4 3 3输入数据记录 2 输入记录时的注意事项 逻辑型字段宽度为1 只接受T Y F N这4个字母之一 大小写均可 日期型数据必须与系统日期格式相符SETDATEMDY可将系统日期格式转换为美国日期格式mm dd yy备注型与通用型字段的输入与编辑备注型与通用型字段中已填有memo和gen等内容 等待输入有关数据 操作如下 1 把光标定位于 memo 或 gen 2 按Ctrl PgDn Ctrl PgUp或Ctrl Home等组合键之一或双击鼠标 出现 memo 或 gen 编辑窗口 3 输入或编辑数据后 按Ctrl W或单击关闭按钮 以储存数据和返回数据输入窗口 如果按Ctrl Q或Esc键则放弃当前所输入的信息而返回 4 在备注型或通用型字段数据输入后 该记录的 memo 或 gen 中的第一个字母被改写成大写 变为 Memo 或 Gen 备注型与通用型字段值存储在与表文件同名 但扩展名为 FPT的备注文件中 1 打开表的菜单方式单击 文件 菜单中的 打开 选项 打开 打开 对话框 选择将要打开的文件类型 文件名及其路径 然后单击 确定 按钮 也可以用以下几种方式打开数据库即相关表1 打开包含表的数据库 启动数据库设计器2 双击要打开的表3 选择显示模式 1 单击 显示 编辑 编辑该表 edit 以分隔线将每一条记录分割开 字段按纵向排列 2 单击 显示 浏览 浏览该表 browse 以一行显示一条记录 每一列显示一个字段 4 4数据表的基本操作 4 4 1打开和关闭表 2 打开 关闭表的命令方式 1 打开表 格式 USE 功能 在当前工作区打开一个表文件 2 关闭表 格式1 USE 功能 关闭当前工作区中正打开的表文件及其索引文件 格式2 CLOSE ALL DATABASES 功能 关闭各种类型文件 3 退出VFP系统 1 菜单方式退出VFP系统的方式第2章介绍过 可选用以下任何一种方法退出VFP l选择 文件 菜单中 退出 菜单项 l鼠标单击VisualFoxPro6 0窗口右上角的关闭按钮 l双击VisualFoxPro6 0主窗口左上角的 控制 菜单按钮 l直接按Alt F4组合键 2 命令方式 格式 QUIT 功能 关闭打开的所有文件 退出VFP系统返回到操作系统 4 4 2显示数据1 表结构文件的修改 命令方式 USEMODIFYSTRUCTURE菜单方式 1 选定要打开的表 文件 打开2 打开表设计器 显示 表设计器 添加字段 删除字段 修改字段内容 按着拖动改变字段位置 2 表文件结构的显示命令方式 格式 DISPLAY LISTSTRUCTURE TOPRINTER TOFILE 功能 显示表文件的字段结构 3 表文件记录数据的显示 命令的工作方式 描述 在命令窗口中键入一条VFP命令回车后 该命令立即被执行 并将命令结果显示在VFP主窗口中 范围 ALL 对表中全部记录进行操作 NEXT 对从当前记录在内的以下连续N条记录进行操作 RECORD 只对第N条记录进行操作 REST 对从当前记录到文件尾的所有记录进行操作 FIELDS子句 指明当前操作涉及表的哪些字段 字段名间用 隔开 注意 FOR子句与WHILE子句均指明进行操作的记录的条件 其区别在于 1 范围缺省时 FOR子句默认为ALL WHILE子句则只从当前记录开始按条件筛选2 当发现一个记录不满足条件时 FOR子句跳过该记录继续检查下去 WHILE子句则只操作到这个不满足条件的记录为止 若两者同时出现 则优先处理WHILE子句 举例 LISTNEXT5FIELDS学号 入学成绩FOR入学成绩 600 说明 1 命令以命令动词开头 且命令动词可缺省写为前4个字母2 命令与子句 子句与子句 子句的各部分间须至少以一个空格隔开 且各子句的书写顺序任意 2 查看表数据命令 BROWSE LAST FIELDS FOR FREEZE LOCK 功能 浏览或编辑表中数据参数描述 FREEZE 定义唯一允许修改的字段LOCK 当水平方向翻动屏幕时 屏幕左边连续出现不参加滚动的字段数 举例 显示学生表中所有记录的学号 姓名和入学成绩USE学生BROWFIELDS学号 姓名 入学成绩 举例 显示学生表中入学成绩 600分同学记录USE学生LISTFOR入学成绩 600 LIST DISPLAY FIELDS FOR WHILE TOPRINT OFF 功能 选择输出表文件中记录数据 也可用于显示表达式的值说明 LIST与DISPLAY的区别 范围 与 条件 缺省时 LIST默认为ALL DISPLAY为当前记录LIST为滚动方式输出 DISPLAY为分屏输出 4 4 3追加记录 菜单方式 在浏览或编辑窗口环境中选 显示 追加方式 可自动在尾部追加N条记录选 表 追加新记录 只允许添加一条记录选 表 追加记录 从选定文件向当前表添加多条记录 格式一 APPEND BLANK 格式二 APPENDFROM FIELDS SDF 格式三 INSERTINTO 字段1 字段2 VALUE 表达式1 表达式2 格式四 INSERT BLANK BEFORE 命令方式 说明 APPEND相当于 菜单方式1 APPENDBLANK相当于 菜单方式2 命令方式的格式二相当于 菜单方式3 在APPENDFORM命令中 是否使用SDF子句 要根据文本文件中的数据格式来确定 命令方式的格式四 用于在当前记录之前 后插入一条新记录 4 4 4记录的删除与恢复 可在 浏览 或 编辑 窗口中删除记录点击作删除标记选 表 彻底删除 对打了删除标记的记录作真正删除 删除标记当再次单击时 为取消标记 删除记录分两步进行 第一步将要删除的记录做删除标记 第二步才将记录真正从表中删除 1 记录的逻辑删除 若要有选择的删除一组记录 可单击 表 删除记录 填写对话框 例如 可将学生表中 入学成绩 600分 的所有记录作删除标记 要作物理删除 再单击 表 彻底删除 3 恢复被逻辑删除的记录 P62 2 记录的物理删除 P62 4 删除 恢复记录的命令方式 格式 DELETE FOR WHILE 格式 PACK DBF MEMO 格式 RECALL FOR WHILE 格式 ZAP 1 逻辑删除命令 2 取消删除标记命令 3 物理删除命令 4 删除全部记录命令 ZAP命令与DELETEALL和PACK两条命令执行的结果相同 区别在于ZAP直接执行物理删除 例 Use学生Deletenext6 学生表上1到6条记录加删除标记ListRecallfor性别 男 取消性别为男的记录的删除标记GOTO5Recall 取消第5条记录的删除标记Pack 将带有删除标记的记录从表中删除Zap 将所有记录从表中删除 4 4 5修改记录 格式1 EDIT CHANGE FIELDS FOR WHILE 格式2 BROWSE FIELDS FOR REPLACE命令功能 不进入全屏幕编辑方式 根据命令中指定的条件和范围 用表达式的值去更新指定字段的内容 参数描述 指定要替换值的字段 WITH 指定用来进行替换的表达式或值 说明 WITH后面表达式的类型必须与WITH前面字段的类型一致 1 全屏幕编辑命令方式 格式 REPLACEWITH WITH FOR WHILE 2 自动替换命令方式 例 浏览 学生 表中 女 生的 姓名 入学成绩 USE学生Browsefields姓名 入学成绩for性别 女 例4 5修改 学生 表的结构 增加 年龄 字段 将所有学生2004年的年龄填入该字段 USE学生MODIFYSTRU 添加年龄字段 确定REPLACEALL年龄WITH2004 YEAR 出生日期 4 4 6表的复制 格式 COPYTO FIELDS FOR WHILE 1 复制任何类型的文件 格式 COPYFILETOTO 2 复制表文件 格式 COPYSTRUTO FIELDS 3 复制表的结构 例 根据 学生 表 建立名为 学生 2 的表 只包括 学号 姓名 性别和入学成绩 字段 且仅包括入学成绩大于或等于580的学生记录 Use学生Copyto学生 2fields学号 姓名 性别 入学成绩for入学成绩 580例4 8建立名为 学生 3 的数据表 结构与学生数据表一样 不包括数据 use学生Copyto学生 3structure 4 4 7记录的定位命令 浏览窗口中 选择 表 转到记录 指向当前记录的下一条记录 指向当前记录的上一条记录 转向第N条记录 指针指向第一条记录 指针指向最后一条记录 指针指向满足条件的第一条记录 1 菜单方式 格式1 GOTO RECORD TOP BOTTOM格式2 GO RECORD TOP BOTTOM格式3 命令功能 将记录指针直接定位到指定的记录上 2 命令方式 绝对移动 GO 相对移动 SKIP 查找定位 LOCATE 1 绝对移动命令 命令参数描述 指定一个物理记录号 记录指针移至该记录上 TOP 将记录指针定位在表的第一个记录上 BOTTOM 将记录指针定位在表的最后一个记录上 说明 RECORD可省略 的值必须大于0 且不大于当前表文件的记录个数 格式 SKIP 功能 将记录指针向前或向后作相对若干条记录的移动 参数描述 指定记录指针作相对移动的记录数据 说明 1 移动的记录数等于的值 其值为正数时 记录指针向下移动 当是负数时 记录指针向上移动 2 省略选择项 约定为向下移动一条记录 即SKIP等价于SKIP1 2 相对移动命令 补充 记录指针的查找定位命令 格式 LOCATE 范围 FOR WHILE CONTINUE 功能 将记录指针定位到满足条件的第一条记录上 说明 范围缺省时为all 继续查找满足条件的记录用continue命令 举例 显示学生表中入学成绩 600分的第二个同学记录LOCATEFOR入学成绩 600CONTINUEDISPLAY 表当前记录与数组之间的数据传送 读 写 SCATTER FIELDS MEMO TO GATHERFROM FIELDS MEMO 例 USE学生GO2SCATTOA A 2 A 7 A 7 A 7 10GATHFROMADISP 屏幕显示为 张辉608 4 4 8数组与表之间的数据交换 4 5 1排序与索引 功能 使数据记录按一定的顺序排列 方式 物理排序 排序 逻辑排序 索引 1排序2索引 4 5查询与统计操作 按 学号 排序图示按 学号 索引图示 概念排序 将表中的数据按一定的顺序重新排列 并将重新排列后的结果保存成为一个新的有序表关键字段 决定排列顺序的字段 可以是多个数据记录的排序命令SORTTOON A D C ON A D C ASCENDING DESCINDING FOR WHILE FIELDS FIELDSLIKE FIELDSEXCEPT 功能 根据当前数据表 建立一个经过排序的新数据表 1 表的排序 命令说明 排序文件名 新表的表名 文件名 ON子句中 排序字段 A 按升序排列 D 按降序排列 默认为升序 C 排序时忽略大小写 否则不忽略若选择多个字段 表示多重排序先按排列 若字段值相同 再按排列 ASCENDING将所有不带 D的字段指定为升序 DESCINDING将所有不带 A的字段指定为降序缺省 表示全部记录FIELDS子句 新表所包含的字段 例 对学生选课表 按成绩降序排序 并将排序结果输出到CJXH表中USE学生选课SORTON成绩 DTOCJXHUSECJXHBROWSE 例 SORTTO学生ON入学成绩 D 出生日期FOR专业编号 03 FIELDS学号 姓名 性别 出生日期 入学成绩 应用举例 2 表的索引 表的索引是一种逻辑排序方法 它不改变当前表文件记录的物理排序顺序 而是建立一个与该表文件相对应的索引文件 1 索引文件的类型单索引文件 文件中只包含一个索引标识 扩展名为IDX复合索引文件 文件中包含多个索引标识 扩展名为CDX 复合索引文件又分为结构复合索引和非结构复合索引 结构复合索引 索引文件名与相应的表名相同 随表的打开自动打开非结构复合索引 索引文件名与表文件名不相同 不能自动打开 2 索引的类型 主索引 指定的字段或表达式中索引关键字值绝对不允许有重复值 只能在数据库表中而不能在自由表中建立的索引主要用于在永久关系中的主表或被引用表里建立参照完整性一个表只能创建一个主索引候选索引 关键字值绝对不允许有重复值 有资格被选做主索引的索引 一个表可以有多个候选索引数据库表和自由表都可以建立候选索引 唯一索引 允许索引关键字有重复的值 当有重复值出现时 索引文件只保存重复值的第一次值数据库表和自由表都可以建立唯一索引为和早期版本兼容而设计 很少使用普通索引 是除了上面几种索引之外的一种索引 它允许索引关键字有重复的值 3 索引的建立建立索引有两种方式 菜单方式和命令方式通过用菜单方式建立的索引文件是结构复合索引文件菜单方式 建立 打开表设计器 选中 字段 选项卡 单击 如果要编辑索引 可选中 索引 选项卡 若要改变索引类型 在 类型 列点击 类型 列表框的下三角 弹出一列表 根据需要选中索引类型 若要改变索引名称 在 索引名 编辑框中键入索引名称 若要改变索引表达式 在 表达式 编辑框中键入索引表达式 或点击其右按钮 弹出 表达式生成器 对话框 在该对话框中编辑索引表达式后 点击 确定 按钮返回表设计器中 若要对满足条件的记录进行索引 可在 筛选 编辑框中键入筛选表达式 或点击其右按钮 弹出 表达式生成器 对话框 在该对话框中编辑筛选表达式后 点击 确定 按钮返回表设计器中 若要改变排序方式 选中 排序 列的箭头 点击该箭头即可改变排序方式 再次点击将恢复原排序方式 在该窗口中也可建立新索引 INDEXONTO TAG OF FOR ASCENDING DESCINDING UNIQUE CANDIDATE ADDITIVE 对当前表中符合条件的记录进行索引是由表中的字段 内存变量 数组等构成的字符 数值 日期或逻辑表达式 UNIQUE 选项建立惟一索引 CANDIDATE建立候选索引TAG建立复合索引文件和设置索引标识 若省略OF子句 为结构复合索引文件 否则为非结构复合索引文件 命令方式创建索引 结构复合索引文件随表文件的打开而打开SETINDEXTO ORDER TAG OF ASCENDING DESCENDING ADDITIVE 要打开的索引文件 如果没有用ORDER子句指定控制索引 则第一个索引文件为主控索引文件ADDITIVE 打开索引文件的同时 不关闭已打开的索引文件缺省所有选项将关闭当前工作区中除结构复合索引文件外的所有索引文件useindex打开表文件的同时打开索引文件CLOSEINDEX关闭所有索引 结构复合索引文件除外 4 打开和关闭索引文件 5 删除索引删除索引标识Deletetagall of of 从复合索引文件中移掉一个或多个标识 若选all删除所有的索引标识 相关的复合索引文件也被删除删除索引文件EraseDeletefile 排序 就是将表文件的记录按照某个或某几个字段值的大小顺序进行排序 即从物理顺序上对表文件重新加以整理 产生一个新的表文件 索引是一种逻辑排序 它只提供当前工作区中数据表内任一项符合条件的记录指针值 只产生索引文件 不改变原表文件的记录顺序 索引文件只是一种辅助文件 不可以脱离原表文件而独立使用 有关排序与索引的小结 4 5 2查询 查找是按照某些条件在表中查找所需记录并将记录指针指向符合条件的第一条记录 1 条件查询无索引查找 顺序查找 速度较慢 LOCATEFOR命令CONTINUE命令有索引查找 速度较快 要求事先对表进行索引 SEEK命令FIND命令 2 索引查询 索引查找的前提 打开表文件及相关的索引文件 确定控制索引文件或控制索引标识 1 SEEK命令 格式 SEEK ORDER TAG OF IN ASCENDING DESCENDING 功能 将记录指针定位到 索引关键字值 的第一条记录 命令说明 字符串表达式 用SETEXACTON OFF命令可设置字符串匹配规则 系统默认OFF 即模糊匹配 表达式值与关键字值左子串相同就可找到 ON表示完全匹配 表达式值与关键字值完全相同才认为找到 应用举例 例 按课程编号字段对学生选课表建立索引 然后进行查找 USE学生选课INDEXON课程编号TAGkcbhSEEK 02 FOUND DISPLAY 2 FIND命令 格式 FIND功能 将记录指针定位到 索引关键字值 的记录说明 可用SEEK命令代替 1 计数命令 格式 COUNT FOR WHILE TO 功能 计算指定范围满足条件的记录数 并将结果存于指定的内存变量说明TO 指定结果存放的内存变量名 若该变量不存在 系统会自动创建 若设置了命令setdeletedon 则作了删除标记的记录不被计数 4 5 3统计 应用举例 例 统计学生选课表中成绩超过85分的学生人数USE学生选课COUNTFOR成绩 85TOcjrs cjrs 2 计算命令 格式 CALCULATE FOR WHILE TO ARRAY 功能 在打开的数据表中 计算表达式的值说明有NULL的记录不包含在内表达式中可以包含下列函数AVG 平均值CNT 表中的记录数MAX 最大值MIN 最小值SUM 求和 应用举例 例 统计学生选课表中成绩超过85分的学生人数及平均成绩USE学生选课CALCULATECNT AVG 成绩 FOR成绩 85TOxsrs pjcj xsrs pjcj 求和命令 格式 SUM FOR WHILE TO ARRAY 功能 在打开的数据表中 对数值型字段表达式求和 对指定表达式求和 省略该选项 则对所有数值型字段求和 TO ARRAY 指定结果存放的内存变量名表或数组名 若变量或数组不存在 系统自动创建 数组存在且太小时 系统自动增加数组大小 应用举例 例 求学生选课表中成绩的总和 USE学生选课SUM成绩TOzcj zcj 求平均值命令 格式 AVERAGE FOR WHILE TO ARRAY 功能 在打开的数据表中 对数值型字段表达式求平均值 应用举例 例 求学生选课表中成绩的平均值 USE学生选课AVERAGE成绩TOpjcj pjcj 例 求学生表中2000级同学的平均年龄USE学生AVERAGEYEAR DATE YEAR 出生日期 FORLEFT 学号 4 2000 TOpjnl pjnl 3 分类求和命令 格式 TOTALTOON FIELDS FOR WHILE 功能 在打开的数据表中 按关键字分类 汇总计算 将结果存入新文件中说明数据表必须按关键字排序或索引 指定存放计算结果的新表文件名 指定作为分组总计依据的字段 FIELDS 指定要总计的字段 4 6多工作区操作4 6 1工作区选择 1 工作区概念VFP6 0提供了32767个工作区 每个工作区只能打开一个表文件 若在已有表文件的工作区打开新的表文件 以前打开的表文件就会自动关闭 各表在各自的工作区中被操作 2 工作区标识 1 系统别名 1 10分别用A J单个字母来命名 2 表名或用户定义的别名USE ALIAS IN 别名可以包含多达254个字母 数字或下划线 且必须以字母或下划线开头 3 工作区的选择命令 选择工作区命令格式为 SELECT VFP刚启动时默认1号工作区为当前工作区 SELECT 函数可以返回当前工作区的区号 SELECT0表示选定当前未使用的最小号工作区 多工作区中表字段的相互引用在当前工作区上使用其他工作区上的字段 跨工作区字段 时 必须用别名标识 格式为 别名 字段名或别名 字段名 4 6 2表与表之间的联接与关联 表与表之间的三种关系一对一关系 在表A中的一条记录在表B中最多只能有一条记录与之对应 反之 在表B中的一条记录在表A中也最多只能有一条记录与之对应 例如 学生表和学生成绩表之间 一对多关系 在表A中的一条记录在表B中可以有多条记录与之对应 而在表B中的一条记录在表A中最多只能有一条记录与之对应 例如 学生表和学生选课表之间 多对多关系 在表A中的一条记录在表B中可以有多条记录与之对应 而在表B中的一条记录在表A中也
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年储能技术多元化在新能源储能电站建设中的技术创新与突破报告
- 人工智能驱动的航天器任务ants自适应规划-洞察阐释
- 2025水电装修合同相关法律条款
- 2025短期工劳务合同样本
- 初中期中考试试题及答案
- 初中教师面试题库及答案
- 部编版语文八年级下册 《安塞腰鼓》教案
- 2025沥青混凝土搅拌加工合同
- 2019-2025年高级经济师之工商管理押题练习试卷A卷附答案
- 2024北京西城区初二6月适应性考试地理试题及答案
- 上海中学2025届高一数学第一学期期末联考试题含解析
- 105物体的浮与沉(原卷版)
- 2024秋期国家开放大学《建筑工程项目管理》一平台在线形考(作业1至4)试题及答案
- 语言学导论智慧树知到答案2024年广东外语外贸大学
- 中华民族共同体概论教案12第十二讲:民族危亡与中华民族意识觉醒(1840-1919)教案
- DL∕T 1909-2018 -48V电力通信直流电源系统技术规范
- 登高车施工方案
- 造价咨询项目的保密措施
- NB-T32042-2018光伏发电工程建设监理规范
- 成本加酬金合同结算方法
- 河南省许昌市2023-2024学年高二下学期7月期末教学质量检测数学试题
评论
0/150
提交评论