章 节 第1章 Visual FoxPro 6.0 基础知识 数据库基础知识 1.了解数据库的基本概念 2.了解数据模型的相关知识 3.了解关系操作知识 4.掌握Visual FoxPro 6.0的启动与退出 1.数据库的基本概念 2.Visual FoxPro 6.0的启动与退出 Visual FoxPro 6.0的启动与退出 讲授、演示 计算机演示 教学内容与过程 教学目标 教学重点、难点 技能培训重点、难点 教法 教具使用 教学内容 复习提问 导入新课 教师活动 1.同学平时使用什么软件处理数据? 2.现在你知道常用的数据库系统哪些? 介绍目前常用的数据库系统 如,Access、VFP、Oracle、SQL Server等 点出本书主要讲述Visual FoxPro 6.0系统。 1.1 数据库基本概念 1.数据 2.数据库 3.数据库管理系统 4.数据库系统 它们之间的关系: 数据库系统由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。 特性: (1) 特定的数据模型 (2) 实现数据共享,减少数据冗余 (3) 数据独立性 (4) 数据的保护控制 思考题: 1.什么是数据库?什么是数据库管理系统? 2.数据库系统主要有哪些主要特性? 学生活动 思考回答 备注 学生补充,教师点评 讲授新课 学生看书 学生回答 思考回答 教师讲解 1.2 数据模型 1.层次模型 2.网状模型 3.关系模型 在关系型数据库管理系统中,关系型数据库是通过一个二维表来表示数据之间联系的。表中的每一列称为一个字段,每个字段都有惟一的名字是字段名,每个字段中所有的数据都必须是同一种数据类型;每行是一条记录,一个数据表中可以存储多条记录。 思考: 常见的数据模型有哪些? 1.3 关系操作 1.筛选 指从数据表文件中找出满足条件的若干记录。 2.投影 指从数据表文件中找出满足条件的记录的多个字段。 3.连接 将两个数据表文件按某个条件筛选部分(或全部)记录及部分(或全部)字段组合成一个新的数据表文件,新生成的表包括两个表中记录的部分(或全部)字段(同名字段只出现一次)。 提高 1.数据的组成 字符: 字段: 记录: 文件: 2.关系的性质 常用术语 1.实体 2.属性 3.域 4.元组 5.关键字 思考: 学生思记 学生思考回答 学生阅读思考 教师讲解 教师讲解 教师指导 关系数据库中的关系操作有哪些? 1.4 Visual FoxPro 6.0的启动与退出 1.启动Visual FoxPro 6.0 单击“开始”→“程序”→“Microsoft Visual FoxPro 6.0”→“Microsoft Visual FoxPro 6.0”菜单项。 2.退出Visual FoxPro 6.0 资料卡 Visual FoxPro 6.0的新特性 1.增强的项目和数据库管理能力 2.改善的调试工具 3.更简便的表设计 4.灵活的查询及视图设计 5.增强的表单功能 6.提供丰富的向导 7.ActiveX控件 思考: 如何启动Visual FoxPro 6.0系统? 小结 作业 1.熟读教材 2.课后习题 3.预习下一章内容 学生思考回答 学生阅读思考 学生思考回答 教师演示 教师指导 章 节 第2章 表的基本操作 创建数据库与数据表 教学目标 1.掌握创建数据库的方法 2.掌握创建数据表的方法 1.创建数据库 2.创建数据库表 创建数据表 讲练结合 指导操作 安装有VFP的计算机 教学内容与过程 教学重点、难点 技能培训 教法 学法 教具使用 教学内容 复习提问 导入新课 讲授新课 教师活动 什么是数据表中字段、记录? 列举常见的数据表格,如何输入到计算机中? 给出本节课题 2.1创建数据库 【实例1】创建一个名为“产品订单”数据库,来实现对某公司的产品订单进行管理。在这个数据库中能了解到产品、客户订单明细及业务员的有关信息。 分析: 要使用“产品订单”数据库对各个数据表(如“订单”表、“产品”表等)进行管理,首先创建一个数据库。Visual FoxPro 6.0中创建数据库的方法有3种: (1) 从“文件”菜单中选择“新建”命令,在“新建”对话框建立数据库; (2) 建立或打开一个项目,在项目管理器中建立数据库; (3) 使用CREATE DATABASE命令建立数据库。 下面以第(1)种方法为例,创建“产品订单”数据库。 操作: (1) 启动Visual FoxPro 6.0后,打开“新建”对话框。 (2) 在“文件类型”框中选择“数据库”,学生活动 思考回答 观察操作过程 备注 学生补充,教师点评 教师给出任务 教师分析 观察操作结果 提高 使用命令CREATE DATABASE创建数据学生操作 库: 在命令窗口中键入命令: 观察操作结CREATE DATABASE 产品订单 果 阅读 阅读资料:数据库设计 思考: 1.使用命令方式在d:\\vfp6文件夹中建立 “产品订单”数据库。 2.上述操作后,在磁盘上建立了哪3个文思考回答 件? 2.2 打开数据库 【实例2】打开上节创建的“产品订 单.dbc”数据库。 分析: 在新建一个数据库后,该数据库处于打开 状态。在每次使用数据库之前,一般都要打开 数据库。在打开数据库设计器的同时打开了数 据库,如图2.3所示。数据库设计器是Visual FoxPro为用户提供的交互式界面,数据库中包 含的全部表、表之间的联系以及视图等显示在 数据库设计器中。 打开数据库的方法很多,常用的有以下三 种方法: (1) 在项目管理器中打开数据库; (2) 从“文件”菜单中选择“打开”命令打演示或分组开数据库; 操作 (3) 使用命令方式打开数据库。 操作: 下面介绍使用第(2)种方法打开“产品订 单.dbc”数据库。 (1) 单击“文件”菜单中的“打开”命令, 在出现的“打开”对话框中选择“产品订单.dbc” 然后单击“新建文件”按钮,打开“创建”对话框。 (3) 选择保存文件夹和数据库名“产品订单”后,单击“保存”按钮。 至此,已经创建了“产品订单”数据库,数据库的扩展名为.dbc。 查看操作结果 教师指导 教师给出任务 教师分析 数据库。 (2) 单击“确定”按钮打开“数据库设计器”窗口。如果数据库中包含表或视图,则在此窗口中显示所包含的表、视图及表间的联系。 提高 1.打开数据库 使用命令以共享方式打开“产品订单”数据库,在命令窗口中键入: OPEN DATABASE 产品订单 SHARED 2.关闭数据库 (1) 在项目管理器窗口中选定要关闭的数据库,然后单击关闭按钮; (2) 使用CLOSE DATABASE命令。 例如,使用命令方式关闭“产品订单”数据库,在命令窗口中键入: SET DATABASE TO 产品订单 CLOSE DATABASE 思考: 打开数据库常用的方法有哪些? 2.3 创建数据表 2.3.1 建立表结构 【实例3】将收集来的产品信息(如图2.6所示)建立一个数据库表,表文件名为“产品”。 分析: 列出“产品”表的字段属性。 操作: (1) 单击“文件”菜单中的“打开”命令,打开“产品订单”数据库,同时出现“数据库设计器”窗口。 (2) 右击“数据库设计器”窗口中的空白,从快捷菜单中选择“新建表”命令,出现“新建表”对话框。 (3) 在 “创建”对话框,输入要创建的表名“产品”,并选择“保存类型”为“表/DBF”。 (4) 单击“保存”按钮,打开“表设计器”对话框。 (5) 在“字段名”下的空白框中输入第一个字段名“产品id”,然后按Tab键或直接移动光标到“类型”框,确定数据类型。 学生操作 教师或学生演示操作 教师讲解 教师给出任务 教师分析 提高 使用命令创建表 在“产品订单”数据库中建立“订单”表,操作 在命令窗口可以键入命令: OPEN DATABASE 产品订单 CREATE 订单 阅读资料:Visual FoxPro 6.0中的数据阅读 类型 2.3.2 修改表结构 【实例4】在“产品订单”数据库中有“业 务员”表,其字段属性如表2.3所示。修改“业 务员”表结构,在“姓名”和“出生日期”字 段之间增加一个“职务”字段,字符型,宽度 为10。 分析: 在建立表结构后,如果要增加、删除、修 改字段、设置字段属性等,可以在表设计器中 修改。 操作: (1) 打开“产品订单”数据库,在“数据库教师或学生设计器”窗口右击“业务员”表,单击“修改”演示操作 命令,打开“表设计器”窗口。 (2) 在“表设计器”窗口中选择“出生日期” 字段,单击对话框右侧的“插入”按钮,在当 前选取的字段处插入一个新字段,输入字段名 “职务”,并选择“字符型”,宽度为10, 观察操作结(3) 关闭表设计器。 果 提高 教师或学生使用MODIFY STRUCTURE命令修改表结演示操作 构: MODIFY STRUCTURE 例如,在命令窗口键入命令: USE 业务员 MODIFY STRUCTURE (6) 单击“确定”按钮。 至此,建立了“产品”表结构,但它是一个只有表结构没有记录的空表。 查看并分析结果 教师指导 教师给出任务 教师分析 阅读资料:数据库表与自由表 思考: 数据库表和自由表有什么不同? 小结 作业 1.本章习题 2.操作题1、2 阅读 学生回答 教师指导
章 节 1.掌握表中输入记录的方法 2.掌握修改记录的方法 3.掌握删除记录的方法 1.输入、修改与删除记录 2.成批修改与删除记录中的条件 输入、修改与删除记录 任务驱动、讲练结合 本节操作的数据库表 教学内容与过程 教学内容 复习提问 导入新课 讲授新课 教师活动 1.创建数据库有哪几种方法? 2.创建数据表有哪几种方法? 如何将数据输入到表中? 2.4表的基本操作 2.4.1 打开表 列举打开比表的方法: (1) 在“文件”菜单中选择“打开”命令。 (2) 使用命令打开表。命令格式如下: USE [[数据库名!]表名] [EXCLUSIVE] [SHARED] [NOUPDATE] 各参数的含义: 2.4.2 输入记录 【实例5】向“产品”表中输入如图2.6所示的记录。 分析: 向表中输入记录有多种方法,常用的方法有: (1) 在“浏览”或“编辑”窗口,通过菜单方式输入记录。 (2) 使用命令增加记录: ? APPEND命令:在表的末尾追加记录。 ? INSERT命令:在表的任意位置追加记录。 操作: (1) 打开“产品”表“浏览”窗口。 学生活动 思考回答 思记 观察操作过程 备注 学生补充,教师点评 教师讲解 教师分析 教师给出任务 教师分析 第2章 表的基本操作 表的基本操作 教学目标 教学重点、难点 技能培训 教法 教具使用 操作 学生操作 观察操作结果 阅读 2.4.3 显示记录 【实例6】显示“产品”表中全部“手机” 的记录,结果如图2.20所示。 观察 分析: 使用LIST或DISPLAY命令可以方便显示 满足条件的记录。 操作: 在命令窗口键入命令: USE 产品 LIST FOR 产品名称=\手机\ 提高 LIST和DISPLAY命令的格式如下: 思记 LIST | DISPLAY [FIELDS <字段名表>] [<范围>] [FOR <条件>] [OFF] 2.4.4 修改记录 1.在“浏览”窗口修改记录 2.成批修改记录 【实例7】将“产品”表中全部产品的单价 降低10%。 REPLACE操作命令: 思考 REPLACE ALL 产品.单价 WITH 单 价*0.9。 提高 思记 使用REPLACE命令对记录进行替换操作, (2)逐条输入记录。 重点强调“产品”表中的“照片”字段的输入方法,然后观察“gen”的变化。 输入所有记录。 (1) 在“浏览”或“编辑”窗口,通过菜单方式输入记录。 重点强调备注型字段数据的输入方法。 (2) 使用APPEND命令追加记录。 (3) 使用INSERT命令插入记录。 阅读资料:浏览记录 查看操作结果 教师指导 教师讲解 教师给出任务 教师讲解 阅读 演示或分组操作 提高 1.菜单方式删除一组记录 操作 2.使用DELETE命令删除记录 3.使用RECALL命令恢复删除记录 4.物理删除记录 2.4.6 定位记录 使用命令移动记录指针有绝对移动和相对学生操作 移动两种方式。 1.绝对移动 命令格式: GO | GOTO <数值表达式> | TOP | BOTTOM 说明: 2.相对移动 命令格式:SKIP [<数值表达式>] 3.定位查找记录 定位查找LOCATE命令的格式如下: LOCATE [<范围>] FOR <条件> 命令格式如下: REPLACE [<范围>] <字段名1> WITH <表达式1> [, <字段名2> WITH <表达式2>,?] [FOR <条件>] 说明: 阅读资料:定制浏览窗口 2.4.5 删除记录 【实例8】“业务员”表的记录如图2.24所示,删除其中的第2、4、7条记录。 分析: 在Visual FoxPro 6.0中删除记录分为逻辑删除和物理删除两种方式。 操作: 教师指导 教师给出任务 教师演示 教师指导 教师给出任务 教师分析 阅读资料:EOF()、BOF()、RECNO()函数的使用 课堂练习 1.在“业务员”表中输入如图2.24所示的表记录。 2.分别在“浏览”窗口和“编辑”窗口浏览“业务员”表中的记录。 3.显示“产品”表中“数码相机”的全部记录。 4.先逻辑删除“产品”表中“数码相机”的全部记录,然后再恢复全部记录。 小结 作业 1.本章部分习题 2.操作题3、4、5、6、7、8、9 阅读思记 操作 教师指导 查看并分析结果 章 节 1.掌握创建索引的方法 2.掌握打开索引的方法 3.索引查找记录 1.命令方式创建索引 2.打开指定索引 3.索引查找记录 创建索引、索引的使用 任务驱动、讲练结合 指导操作 安装有本节使用的数据库表 教学内容与过程 教学内容 复习提问 导入新课 讲授新课 教师活动 1. 如何浏览表中记录? 2. 观察表中记录的排列顺序。 如何是表中记录按某一字段的顺序排列? 索引 索引的含义: 2.5.1 建立索引 【实例9】以“产品”表的“产品id”字段为关键字建立主索引,以“产品名称”字段为关键字建立普通索引。 分析: 由于“产品”表中的“产品id”字段值具有惟一性,可将该字段为主关键字索引,而“产品名称”字段值不具有惟一性,因此,可以该字段建立普通索引。 建立索引可以使用表设计器,也可以使用命令方式。在创建表结构时,就可以同时建立表的索引。 使用表设计器建立表的索引方法如下: (1) 打开表设计器,选择“索引”选项卡 (2) 在“索引名”框中,输入索引的名称 (3) 在“类型”列表中,选择索引类型 (4) 设置升序还是降序排列记录 (5) 在“表达式”框中输入用于索引的字段名或表达式 (6) 如果要筛选某类记录,在“筛选”框中学生活动 思考回答 思记 备注 学生补充,教师点评 教师讲解 教师给出任务 教师分析 第2章 表的基本操作 索引 教学目标 教学重点、难点 技能培训 教法 学法 教具使用 观察操作过操作: 程 提高 1.复合索引 思记 2.命令方式 使用INDEX命令也可以建立一个索引文 件。其格式如下: INDEX ON <索引表达式> TO <单索引 文件名> | TAG <索引名> [OF <索引文件名>] [FOR <条件>] [ASCENDING | DESCENDING] [UNIQUE] [CANDIDATE] 说明: 例如,在命令窗口键入命令: 观察操作结USE 产品 果 INDEX ON 单价 TAG 单价 INDEX ON 出生日期 TAG SR OF BIRTH 阅读 阅读资料:索引类型 2.5.2 使用索引 1.打开索引文件 SET INDEX TO <索引文件表> [ORDER 思记 <索引序号> | [TAG] <索引名> [OF <复合索引文件名>]] 说明: 2.设置主索引 由于复合索引文件中可以包含多个索引项,打开复合索引文件时,还必须设置主索引。 设置主索引的命令格式如下: SET ORDER TO [<索引序号> | [TAG] <索 引名> [OF <复合索引文件名>] [ASCENDING | DESCENDING]] 例如: 观察操作结SET ORDER TO 2 果 或 SET ORDER TO TAG 产品名称 3.快速查找记录 快速查找记录使用SEEK命令,其命令格 式如下: SEEK <表达式> [ORDER <索引序号> | [TAG] <索引名>] 输入筛选表达式。 教师讲解 教师指导 教师讲解 USE 产品 &&打开表的同时打开了结构复合文件 SET ORDER TO TAG 产品名称 &&设置索引名“产品名称”的索引为主索引 SEEK \手机\ 上述2、3条命令可以合并一条命令: SEEK \手机\ 2 或 SEEK \手机\ 产品名称 阅读资料:选择索引项排列记录 阅读 课堂练习 1.在“产品”表中能否以“产品名称”为操作并查看关键字建立候选索引? 结果 2.在“业务员”表中以“业务员id”为关 键字建立主索引,索引名为“业务员ID”。 3.在“业务员”表中以“姓名”为关键字 建立普通索引,索引名为“XM”。 4.在索引名为“XM”的索引中使用SEEK 命令查找“孙林”的记录。 说明: 例如,在“产品”表中查找产品名称是“手机”的记录。 在命令窗口输入命令: 小结 作业 1.本章有关习题 2.操作题10、11、12 教师分析 教师指导 章 节 第2章 表的基本操作 设置字段属性 教学目标 1.掌握字段属性的设置方法 2.能够设置表的参照完整性 1.创字段的默认值 2.参照完整性 1.设置字段属性、参照完整性 任务驱动、讲练结合 指导操作 有关数据库表 教学内容与过程 教学重点、难点 技能培训 教法 学法 教具使用 教学内容 复习提问 导入新课 讲授新课 教师活动 创建表结构的方法或命令? 常见的表字段属性。 2.6设置字段属性 数据库表的字段属性包括:设置字段标题、给字段添加注释、设置字段默认值、设置有效性规则和说明、设置字段掩码和显示格式等。 2.6.1 设置字段的标题 标题用于字段显示时给出的说明性标题,如果不指定标题则显示字段名。 例如,给“产品”表中的“产品id”字段设置标题“产品编号”。 操作方法如下: 2.6.2 添加字段注释 在Visual FoxPro 6.0中,利用注释可以更详细地描述一个字段的含义,便于他人对数据库的维护。 例如,给“产品”表中的“型号”字段添加一个注释:“包括产品的品牌和规格”。 操作方法如下: 2.6.3 设置字段默认值 想表中输入记录时,如果某些字段输入的内容重复很多,此时,可以在表设计器中给该字段设置默认值。 学生活动 思考回答 操作并观察 观察操作过程 备注 学生补充,教师点评 教师分析 教师给出任务 教师给出任务 教师分析 例如,对于一个相机专卖店,“产品”表中“产品名称”字段出现“数码相机”的机会很多,因此可以设置“产品名称”字段的输入默认值为“数码相机”。 操作方法如下: 2.6.4 设置有效性规则 【实例10】对“产品”表中的“单价”字段设置有效性规则,其接收数据的范围在0到90000之间。 分析: 在Visual FoxPro 6.0 中,根据有效性规则激活方式的不同,可以分为字段有效性规则和记录有效性规则两种。本实例是设置字段有效性规则。 观察操作结果 观察操作结果 提高 思记 在Visual FoxPro 6.0中,可以利用记录有效 性规则检查记录数据是否有效。在“表设计器” 中选择“表”选项卡,在“规则”栏中输入一 个规则表达式,设置记录的有效性规则。在“信 息”框中输入相关的提示信息,当违反有效性 规则,提示相关信息。 例如,给“产品”表设置记录的有效性规 则来限制记录,当输入“MP3播放器”的单价 超过10000元时,给出提示信息:“某某MP3 播放器的单价超过万元”。 操作方法如下: 阅读资料:设置字段显示格式和输入掩码 阅读 课堂练习 1.给“产品”表中的“产品id”字段设置 标题“产品编号”,浏览该表,观察设置效果。 操作并分析2.设置“产品”表中“产品名称”字段的结果 默认值为“数码相机”,输入记录时观察设置 效果。 3.首先完成【实例10】的操作,然后输入 一条记录,使其单价超过90000元,观察提示 信息。 教师给出任务 教师给出任务 教师讲解 教师指导 教师指导 2.7 设置参照完整性 Visual FoxPro 6.0使用用户自定义的字段级和记录级规则完成参照完整性规则。 2.7.1 建立表间关联 多个表之间可以建立关联,当在关联表之间插入、修改或删除一个表中的数据时,通过参照完整性引用相互关联的其他表中的数据,检查对表的操作是否正确。在建立参照完整性前,首先建立表间的关联。 【实例11】“产品订单”数据库中有如下4个表: ? “产品”表:以“产品id”字段建立了主索引。 ? “订单明细”表:分别以“订单id”字段和“产品id”字段建立了普通索引。 ? “订单”表:以“订单id”字段建立了主索引,以“业务员id”建立了普通索引。 ? “业务员”表:以“业务员id”字段建立了主索引。 分别建立“产品”表与“订单明细”表、“订单”表与“订单明细”表、“业务员”表与“订单”表之间的关联。 分析: 操作: 2.7.2 建立参照完整性 如果实施参照完整性规则,Visual FoxPro 6.0可以确保: ? 当表中没有关联的记录时,记录不得添加到相关表中。 ? 父表的值不能改变,若改变将导致相关表出现孤立的记录。 ? 若主表记录在相关表中有匹配记录,则该主表记录不能被删除。 (1)“更新规则”选项卡用来设置关联表之间的更新规则: (2)“删除规则”用来设置关联表之间的删除规则。 思记 观察操作结果 思记 教师讲解 教师给出任务 分析 教师讲解 教师讲解并演示 (3)“插入规则”用来设置关联表之间的插入规则。 阅读资料:数据完整性 课堂练习 1.根据【实例11】的要求,建立“产品订单”数据库中4个表之间的关联。 2.设置“产品”表和“订单明细”表的参照完整性,选择“插入规则”中的“限制”项,然后在“订单明细”表中插入一条“产品id”在“产品”表中不存在的记录,观察插入记录是否成功。 小结 作业 1.本章有关习题 2.操作题13、14 阅读 操作并分析结果 教师指导 章 节 1.理解工作区的概念 2.能在指定工作区打开数据表 3.能创建表间的临时关系 1.在指定工作去打开数据表 2.创建表间临时关系 打开数据表、创建表间临时关系 任务驱动、讲练结合 指导操作 准备好多个数据库表 教学内容与过程 教学内容 复习提问 导入新课 讲授新课 教师活动 打开数据表的常用方法有哪几种? 如果要同时浏览多个表中的数据,如果操作? 给出本节课题 2.8 多表的使用 2.8.1 使用多个表 学生活动 思考回答 备注 学生补充,教师点评 教师讲解 教师给出任务 教师分析 第2章 表的基本操作 多表的使用 教学目标 教学重点、难点 技能培训 教法 学法 教具使用 思记 在Visual FoxPro 6.0中同时使用多个表,就 要使用多个工作区。所谓工作区就是在内存中 为表独立开辟的存储空间。一个工作区只能打 开一个表,多个工作区就可以同时打开多个表, 但一个表可以在多个工作区同时打开。Visual FoxPro 6.0系统提供了32767个工作区,当前使 用的工作区称为当前工作区。 系统为每个工作区规定了一个工作区号, 分别是1~32767,其中1~10号工作区可以用别 名A~J来表示。 【实例12】分别在1、2、3工作区打开“产 品”表、“订单明细”表和“订单”表,并选 择1号工作区为当前工作区。 分析: 每当启动Visual FoxPro 6.0后,系统默认的 工作区是1号工作区,用户可以选择其他工作 区。使用SELECT命令选择工作区,命令格式如 下: SELECT <工作区号> | <别名> | <0> 说明: 操作: 在命令窗口输入命令: SELECT 1 USE 产品 SELECT B USE 订单明细 SELECT 0 USE 订单 SELECT A 提高 1.打开多个表 命令格式如下: USE <表名> IN <工作区号> | <别名> | <0> [AGAIN] 说明: 例如: USE 产品 IN 1 USE 业务员 IN E ALIAS YWY USE 业务员 IN 6 ALIAS SS AGAIN 2.关闭多个表 阅读资料:其他工作区的数据 2.8.2创建表间临时关系 例如,使用SET RELATION命令建立“产品”表和“产品订单”表的关联,输入命令: OPEN DATABASE产品订单 USE 产品 IN 1 USE 订单明细 IN 2 SELECT 1 SET ORDER TO TAG 产品id OF 订单明细 IN 订单明细 SET RELATION TO 产品id INTO 订单明细 课堂练习 1.Visual FoxPro 6.0系统提供了多少个工作区? 2.SELECT 0 命令的含义是什么? 3.一个表文件能否在多个工作区中打开? 4.使用什么命令可以建立表间临时关系? 观察操作过程 观察操作结果 观察操作结果 阅读 观察操作结果 操作并分析结果 教师讲解 教师指导 教师指导 小结 作业 1.本章有关习题 2.操作题15 章 节 第3章 查询和视图 创建查询 教学目标 1.掌握使用向导创建查询的方法 2.掌握使用设计器创建查询的方法 1.使用查询设计器创建查询 2.筛选条件与多表联接 创建查询 任务驱动\\讲练结合 指导操作 本章操作需要的数据库 教学内容与过程 教学重点、难点 技能培训 教法 学法 教具使用 教学内容 复习提问 导入新课 教师活动 1.如何定位查找记录? 2.使用SEEK查找记录的条件有哪些? 学生活动 思考回答 备注 学生补充,教师点评 列举要查找数据的事例,包括查找字段、条件、 结果排序等。 给出本节课题 3.1 创建查询 Visual FoxPro 6.0为建立查询提供了查询向导与查询设计器两种方法。 3.1.1 使用查询向导创建查询 【实例1】创建一个查询,在“产品订单”数据库中查询订购“MP3播放器”的有关信息,结果如图3.1所示。 分析: 使用查询向导可以快速创建查询,一般的操作步骤是: (1) 选择在查询结果中要显示的字段 (2) 设置查询条件来筛选在查询结果中包含的记录 (3) 设置排序来组织查询结果 (4) 选择结果输出记录的比例数 启动查询向导可以从“文件”菜单中单击“新建”命令,在“新建”对话框中选择“文件类型”中的“查询”,然后单击“向导”按钮,启动查询向导。 操作: 操作 观察操作过程 讲授新课 教师讲解 教师给出任务 教师分析 教师指导 提高 建立查询后,如果要运行该查询,在Visual 思记 FoxPro 6.0 窗口,选择“程序”菜单中的“运 行”,从打开的“运行”窗口中选择要运行的 查询,如“产品查询.qpr”,显示查询运行结果。 另一种运行方法是使用命令方式,命令格 式如下: DO 查询文件名.qpr 例如,在命令窗口键入: DO产品查询.qpr 观察结果 命令中的查询文件名必须给出扩展名.qpr。 3.1.2 创建交叉表查询 利用交叉表向导可以创建交叉表查询。所思记 谓交叉表查询就是用行、列的形式汇总数据的 查询。 【实例2】创建一个交叉表查询,如图3.10 所示,行值显示“产品”表的“型号”字段内 容,列值显示“产品名称”字段内容,表中的 数据是对应的“单价”字段值。 分析: 使用向导创建交叉表查询,只能从一个表 或视图文件中选择查询输出的字段,它基于单 表进行的操作。一般是把表中的一个字段值按 行输出,另一字段值按列输出,它们的交叉处 输出第3个字段的计算值(如总和、平均数、 计数、最大及最小值等),同时也可以对整行 数据进行分类汇总。 创建交叉表查询主要操作步骤如下: (1) 字段选取 (2) 定义布局 (3) 加入汇总信息 (4) 完成 观察操作结操作: 果 阅读资料:创建图形 阅读 3.1.3 使用查询设计器创建查询 【实例3】在“产品订单”数据库中查询2005年以后订购的“手机”,数量在10部以上 的订单明细,查询结果中包含的字段如图3.16 以查询文件名为“产品查询”保存,系统默认的扩展名为.qpr。 教师讲解 教师讲解 教师给出任务 教师分析 教师指导 教师给出任务 所示。 分析: 使用查询设计器可以根据用户的需求建立查询,既可以是简单条件的查询,又可以是复杂条件的查询;既可以创建计算字段,又可以设置查询结果的输出去向。 启动查询设计器可以选择“文件”菜单中的“新建”,或单击“常用”工具栏上的“新建”按钮,打开“新建”对话框,然后单击“新建文件”打开查询设计器建立查询。主要操作步骤如下: (1) 向查询设计器中添加查询需要的表或视图 (2) 如果添加的是多个表,需要建立表间的联接 (3) 选择查询输出字段 (4) 设置查询条件 (5) 根据需要设置查询结果排序顺序 (6) 根据需要设置分组查询 (7) 设置查询去向 上述实例查询结果中的数据来自: ? “产品”表:产品id、产品名称、型号和单价 ? “订单明细”表:订单id、数量和折扣 ? “订单”表:订购日期 操作: (1) 启动查询设计器。 (2) 建立表间联接。 (3) 选择查询输出字段。 (4) 设置查询条件。 (5) 运行 思记 观察操作结果 提高 1.表间联接 思记 ? 内部联接(Inner Join):在查询结果中, 只列出左字段列表与右字段列表相匹 配的记录,这是缺省的设置。 ? 左联接(Left Outer Join):在查询结果 中,列出左字段列表中的所有记录, 以及右字段列表中与联接条件相匹配 的记录。 ? 右联接(Right Outer Join):在查询结果 教师分析 教师演示 教师指导 订单明细.数量>=10 AND 订单.订购日 期>{^2005/01/01} 4.查询去向 表3.1 查询去向及含义 查询去向 含 义 浏 览 在“浏览”窗口显示查询结果 将查询结果保存在一个临时表中,临 时 表 关闭表时自动清除 表 将查询结果保存在一个自由表中 图 形 将查询结果保存在一个图形文件中 将查询结果显示在主窗口或当前活 屏 幕 动窗口中 将查询结果保存在一个报表文件 报 表 (.frx) 将查询结果保存在一个标签文件 标 签 (.lbx) 阅读资料:创建计算字段 阅读 课堂练习 1.使用查询向导创建一个基于“产品”表操作并分析的查询,筛选“单价”在2000以上的记录,并结果 按产品名称升序排序。 2.在如图3.20所示的“筛选”选项卡中, 如何设置筛选条件“产品.产品名称=\手机\”的 记录?如果其他设置不变,结果如何? 中,列出右字段列表中的所有记录,以及左字段列表中与联接条件相匹配中的记录。 ? 完全联接(Full Join):在查询结果中,列出两个关联表的所有记录,而不考虑记录是否与联接条件相匹配。 2.查询结果排序 3.分组查询 例如,修改上述查询筛选条件: 小结 作业 1.本章有关习题 2.操作题1~5 教师指导 章 节 1.理解视图与查询的区别 2.掌握创建本地视图的方法 1.使用设计器创建本地视图 2.创建远程视图的方法 创建本地视图 任务驱动、讲练结合 指导操作 本节需要的数据表 教学内容与过程 教学内容 复习提问 导入新课 讲授新课 教师活动 什么是数据表中字段、记录? 列举常见的数据表格,如何输入到计算机中? 给出本节课题 3.2 创建视图 视图与查询的区别 3.2.1 创建本地视图 【实例4】创建一个本地视图,在“业务员”表中筛选出1966年以后出生的记录,只包含业务员id、姓名、职务、出生日期、雇用日期和地址字段,结果如图3.27所示。 分析: 创建本地视图可以使用“本地视图向导”,也可以使用“视图设计器”创建本地视图。由于视图是数据库的一个组成部分,所以在创建视图前先打开包含视图的数据库。 1.使用向导创建本地视图 选择“文件”菜单中的“新建”,打开“新建”对话框,然后选择“视图”,并单击“向导”按钮,启动“本地视图向导”。接下来的操作与使用查询向导创建查询的操作步骤类似,包括以下步骤: (1) 字段选取 (2) 如果是多表,需建立表间关系 (3) 筛选记录 (4) 排序记录 2.使用视图设计器创建本地视图 学生活动 思考回答 思记 备注 学生补充,教师点评 教师讲解 教师给出任务 教师分析 第3章 查询和视图 创建视图 教学目标 教学重点、难点 技能培训 教法 学法 教具使用 观察操作过程 (5) 单击按钮,观察运行结果。 提高 思记 1.设置关键字段 2.设置修改的字段 3.发送SQL更新 4.检查更新冲突 5.选择更新方式 “使用更新”选项用来控制系统更新源表 数据采用SQL命令的方法。 ? SQL DELETE然后INSERT:先删除 记录,然后使用在视图中输入的新值 取代源值。 查看操作结? SQL UPDATE:使用SQL UPDATE命果 令来更新记录。 阅读资料:创建参数化视图 阅读 3.2.2 创建远程视图 所谓远程视图,就是通过ODBC从远程数思记 据源建立的视图。 为了建立远程视图,必须首先连接一个远 程数据源。 1.连接远程数据源 2.建立连接 3.建立远程视图 课堂练习 1.视图与查询的主要区别是什么? 操作并分析2.使用查询向导创建基于“订单明细”表结果 的单表查询。 3.使用查询设计器创建一个基于“业务员” 表和“订单”表的查询,筛选查询“订单id” 大于“10202”的记录,字段包括“业务员id”、 “姓名”、“职务”、“订单id”、“发货日 期”和“运货费”字段。 4.根据上题的要求,使用视图设计器创建 一个本地视图,并能对“发货日期”和“运货 费”字段数据进行修改。 操作: (1) 启动视图设计器。 (2) 添加表或视图。 (3) 选择视图中的字段。 (4) 设置筛选条件。 教师讲解 教师讲解 小结 作业 1.本章有关习题 2.操作题6、7 章 节 第4章 关系数据库标准语言SQL SQL数据查询 1.使用SELECT命令创建简单查询 2.使用SELECT命令创建联接查询与嵌套查询 3.使用SELECT命令创建排序与分组查询 4.按不同的要求输出查询 1.创建联接查询与嵌套查询 2.创建排序与分组查询 根据要求使用SELECT命令创建查询 任务驱动、讲练结合 指导操作 本节需要的数据表 教学内容与过程 教学内容 复习提问 导入新课 讲授新课 教师活动 如何使用查询设计器创建查询? 列举常见的数据查询方法,提出任务。 给出本节课题 4.1 SQL数据查询 4.1.1 简单查询 【实例1】从“产品”表中检索所有产品的记录。 分析: 不加限制的检索记录,是SELECT命令最简单的一种格式。 操作命令: SELECT * FROM 产品 教学目标 教学重点、难点 技能培训 教法 学法 教具使用 学生活动 思考回答 观察操作结果 备注 学生补充,教师点评 教师给出任务 教师分析 教师讲解 查看查询结果。 提高 从上述查询结果中可以发现,查询结果与使用BROWSE命令在浏览窗口显示的结果相同。 使用SELECT命令进行简单查询,命令格式可以简单归纳如下: SELECT [DISTINCT] <查询项> [AS <列标题>] [,<查询项> [AS <列标题>]?] FROM <表名> 说明: SELECT 产品名称,型号,单价 AS DJ FROM 观察操作结产品 果 查看查询结果。 提高 使用SELECT命令进行条件查询,命令格 式如下: SELECT [DISTINCT] <查询项> [AS <列标 题>] [,<查询项> [AS <列标题>]?] FROM <表名> [WHERE <条件> ] 说明: 运算符的使用: ? 关系运算符:=、<>、>、>=、<、<= ? 逻辑运算符:NOT、AND、OR ? 指定区间:BETWEEN ? AND ? ? 匹配模式:LIKE ? 包含:IN()、 NOT IN() 阅读 ? 空值:IS NULL、IS NOT NULL 【实例4】从“产品”表中检索“MP3播 放器”或“数码相机”的记录,只显示产品名 称和型号。 思考回答 分析: 在该查询中可以使用的条件: WHERE 产品名称 IN(\播放器\ 数码相机\ 或 WHERE 产品名称=\播放器\ 产品名称=\数码相机\ 操作命令: SELECT 产品名称,型号 FROM 产品 WHERE 产品名称 IN(\播放器\数码相机\ 查看查询结果。 与上述查询等价的SELECT命令是: SELECT 产品名称,型号 FROM 产品 【实例2】从“产品”表中检索不同规格产品的单价。 分析: 要检索不同规格产品的单价,不需要输出全部字段,只需要输出产品名称、型号和单价字段。 操作命令: 给出任务教师分析 教师讲解 教师给出任务 教师分析 操作 =\数码相机\ 查看查询结果。 4.1.2 联接查询与嵌套查询 1.联接查询 【实例5】检索订单id是“10202”所订购 产品的产品名称、型号和数量,查询结果如图 4.5所示。 分析: 联接条件:订单明细.产品id=产品.产品id 查询限定条件:订单id=\联接条件和限定条件都包含在WHERE子 句中,即: WHERE 订单明细.产品id=产品.产品id AND 订单id=\ 操作命令: SELECT 订单明细.产品id,产品名称,型号,数 量 FROM 产品,订单明细 ; WHERE 订单明细.产品id=产品.产品 id AND 订单id=\观察结果 命令中的分号是续行符,表示下一行是该 行的续行。 2.嵌套查询 【实例6】检索订购“数码相机”的订单信 息。 分析: 该查询首先在“产品”表中查找“数码相机” 对应的“产品id”,再在“订单明细”表中查 找检索到的“产品id”。因此,内层查询: SELECT产品id FROM 产品 WHERE 产 品名称=\数码相机\ 操作命令: SELECT 订单id,产品id,数量 FROM 订单明 细; WHERE 产品id IN(SELECT 产品id FROM 产品 WHERE 产品名称=\数码相机 \观察操作结查看查询结果。 果 阅读资料:计算查询 阅读 WHERE 产品名称=\播放器\产品名称 教师给出任务 教师讲解 教师给出任务 教师分析 SELECT * FROM 产品 ORDER BY 单价 观察操作结查看查询结果。 果 提高 使用SELECT命令进行排序查询,命令格 式如下: SELECT [DISTINCT] <查询项> [AS <列标 题>] [,<查询项> [AS <列标题>]?] FROM <表名> [WHERE <条件> ] ORDER BY <排序项> [ASC | DESC] [, <排序项> [ASC | DESC] ?] 说明: 2.查询结果分组 【实例8】统计“产品”表中有几种不同的 大类产品。 分析: 前面已经介绍过使用命令: SELECT DISTINCT 产品名称 FROM 产品 统计过“产品”表中不同产品名称的大类 产品。 这里要介绍的是在SELECT命令中使用 GROUP BY 选项可以对查询结果进行分组。 操作命令: SELECT 产品名称 FROM 产品 GROUP BY 查看操作结产品名称 果 提高 使用SELECT命令对查询结果进行分组, 命令格式如下: SELECT [DISTINCT] <查询项> [AS <列标 题>] [,<查询项> [AS <列标题>]?] 4.1.3 排序与分组查询 1.查询结果排序 【实例7】按“产品”表中的“单价”升序检索全部产品的信息。 分析: 在SELECT命令中使用ORDER BY选项可以对查询结果进行排序。 操作命令: 教师给出任务 教师讲解 教师讲解 教师给出任务 教师讲解 教师给出任务 教师讲解 阅读资料:合并查询 阅读 4.1.4 查询结果输出 1.输出部分结果 【实例9】显示“产品”表中单价最高的前 5条记录。 分析: 显示查询中前几条或前百分之几的记录, 使用TOP n [PERCENT]选项。 操作命令: SELECT * TOP 5 FROM 产品 ORDER BY 观察操作结单价 DESC 果 2.存放到临时表 【实例10】将查询到“产品”表中“数码 相机”的记录保存到临时表CP中。 分析: 使用CURSOR <表名> 参数,可以将查询 到的数据保存到临时表中。建立的临时表是自 动打开的,当文件关闭时,系统自动将它删除。 操作命令: SELECT 产品名称,型号,单价 FROM 产品 WHERE 产品名称=\数码相机\ INTO CURSOR CP 观察操作结 果 3.保存到数据表 【实例11】将查询到“产品”表中“数码 相机”的记录保存到CPB表中。 分析: 使用INTO DBF或INTO TABLE选项,可 以将查询结果保存到数据表中。 操作命令: SELECT 产品名称,型号,单价 FROM 产品 观察操作结WHERE 产品名称=\数码相机\果 INTO DBF CPB 4.保存到文本文件 【实例12】将查询到“产品”表中“数码 相机”的记录保存到WB.txt文件中。 FROM <表名> [WHERE <条件> ] GROUP BY <分组项>[, <分组项>] [HAVING <条件>] 说明: 教师给出任务 教师讲解 教师给出任务 教师讲解 教师给出任务 教师讲解 教师给出任务 分析: 使用TO FILE <文本文件>选项可以将查询结果保存到指定的文本文件中。 操作命令: SELECT 产品名称,型号,单价 FROM 产品 WHERE 产品名称=\数码相机\TO FILE WB 提高 将查询结果输出的命令格式如下: SELECT [DISTINCT] <查询项> [AS <列标题>] [,<查询项> [AS <列标题>]?] TOP n [PERCENT] FROM <表名> INTO <目标> | TO FILE <文件名> [ADDITIVE] | TO PRINTER [PROMPT]| TO SCREEN 说明: 课堂练习 1.分别执行下列命令: SELECT 产品名称 FROM 产品 SELECT DISTINCT 产品名称 FROM 产品 两个命令的查询结果有什么不同? 2.从“产品”表中检索单价在2000~4000元的产品清单,只显示产品名称、型号和单价内容。 3.创建联接查询,检索每一笔订单中业务员的姓名。 4.在“订单明细”表中按“产品id”进行分组,汇总每种产品的订购金额和实际金额(折扣后的金额)。 5.将上题的查询结果保存到DC.dbf表中。 小结 作业 1.本章有关习题 2.操作题 观察操作结果 操作并分析结果 教师讲解 教师讲解 章 节 第4章 关系数据库标准语言SQL 数据定义与更新 1.能使用CREATE TABLE创建数据表 2.能使用ALTER TABLE命令修改表结构 3.能使用INSERT命令在表中插入数据 4.能更新和删除数据 1.创建数据表 2.修改表结构 3.在表中插入数据 4.更新和删除数据 1.创建数据表 2.修改表结构 3.在表中插入数据 4.更新和删除数据 任务驱动、讲练结合 指导操作 本节需要的数据表 教学内容与过程 教学内容 复习提问 导入新课 讲授新课 教师活动 什么是数据表中字段、记录? 列举常见的数据表格,如何输入到计算机中? 给出本节课题 4.2 SQL数据定义 SQL的数据定义包括数据库的定义、数据表的定义、视图的定义、规则的定义等。 4.2.1 创建表CREATE TABLE 1.创建表 【实例13】建立“订单管理”数据库,并用SQL命令建立“产品1”表(产品id(C,5),产品名称(C,12),型号(C,20)),并指定“产品id”字段为索引主关键字。 分析: 建立数据库可以直接使用CREATE DATABASE命令。建立数据表可以使用SQL的CREATE TABLE命令,分为建立数据库表和自由表。 操作命令: CREATE DATABASE 订单管理 &&建立“订单管理”数据库 教学目标 教学重点、难点 技能培训 教法 学法 教具使用 学生活动 思考回答 观察结果 备注 学生补充,教师点评 教师给出任务 教师分析 提高 使用SQL的CREATE TABLE命令创建数据表,其命令格式如下: CREATE TABLE | DBF <表名1> [NAME <长表名>][FREE](<字段名1> <字段类型>[(宽度[,小数位])] [NULL | NOT NULL] [CHECK <表达式>[ERROR <提示信息>]] [DEFAULT <表达式>] [PRIMARY KEY | UNIQUE] [REFERENCES <表名2> [TAG <标记>]] [,<字段名2> ?] [,PRIMARY KEY <表达式> TAG <标记> | UNIQUE <表达式> TAG <标记>] [,FOREIGN KEY <表达式> TAG <标记> REFERENCES <表名3>[TAG <标记>]] [,CHECK <表达式>[ERROR <提示信息>]]) 说明: 2.建立表时设置有效性规则 【实例14】建立“订单1”表(订单id (C,5),订购日期 (D),发货日期 (D),运费 (N,8,2)),设置“订单id”为关键字建立主索引,“订购日期”字段的默认值为DATE(),并对“运费”字段设置有效性规则。 分析: 操作命令: CREATE TABLE 订单1 ; (订单id C(5) PRIMARY KEY, ; 订购日期 D DEFAULT DATE(), ; 发货日期 D, ; 运费 N(8,2)CHECK (运费>=0) ERROR \运费不能为负数!\ 3.建立表间的关联 【实例15】建立“订单明细1”表(订单id(C,5),产品id(C,5),数量(I),折扣(N,6,2)), 观察操作过程 观察操作结果 教师讲解 教师提出任务 教师分析 教师给出任务 并与“订单1”表建立关联。 分析: 用“FOREIGN KEY <表达式> TAG <标记> REFERENCES <表名>[TAG <标记>]”中的“FOREIGN KEY <表达式> TAG <标记>”建立普通索引,用“REFERENCES <表名>[TAG <标记>]” 建立与指定表之间的关联。 操作命令: CREATE TABLE 订单明细1 ; (订单id C(5), ; 产品id C(5), ; 数量 I, ; 折扣 N(6,2), ; FOREIGN KEY 订单id TAG 订单id REFERENCES 订单1 TAG 订单id) 4.2.2 修改表结构ALTER TABLE 1.修改表结构 【实例16】在“产品1”表中增加一个“单价”字段(N(8,2))。 分析: 使用SQL的ALTER TABLE <表名1> ADD命令可以增加表中的字段。 操作命令: ALTER TABLE 产品1 ADD 单价 N(8,2) 【实例17】将“产品1”表中的“产品名称”字段的宽度改为30。 分析: 使用SQL的ALTER TABLE <表名1> ALTER 命令可以修改字段的类型等属性。 操作命令: ALTER TABLE 产品1 ALTER 产品名称 C(30) 【实例18】重新设置“订单1”表中“运费”字段的有效性规则。 分析: 使用SQL的ALTER TABLE ? ALTER ? CHECK命令可以修改字段的有效性规则。 操作命令: ALTER TABLE 订单1 ALTER 运费 N(8,2) ; CHECK 运费<1000 ERROR \运费超 观察操作结果 观察操作结果 观察操作结果 教师分析 教师提出任务 教师分析 教师提出任务 教师分析 教师提出任务 教师分析 出范围!\ 提高 修改表结构的命令格式1: ALTER TABLE <表名1> ADD | ALTER [COLUMN]<字段名1> <字段类型>[(宽度[,小数位])] [NULL | NOT NULL] [CHECK <表达式>[ERROR <提示信息>]] [DEFAULT <表达式>] [PRIMARY KEY | UNIQUE] 【实例19】设置“订单1”表中“订购日期”字段的默认值为{^2005/10/31}。 分析: 在ALTER TABLE命令中使用SET DEFAULT选项可以修改字段的默认值。 操作命令: ALTER TABLE 订单1 ALTER 订购日期 SET DEFAULT {^2005/10/31} 【实例20】删除“订单1”表中“运费”字段的有效性规则。 分析: 在ALTER TABLE命令中使用DROP CHECK选项可以删除字段的有效性规则。 操作命令: ALTER TABLE 订单1 ALTER 运费 DROP CHECK 【实例21】删除“订单1”表中的“发货日期”字段。 分析: 在ALTER TABLE命令中使用DROP COLUMN 选项可以删除指定的字段。 操作命令: ALTER TABLE 订单1 DROP COLUMN 发货日期 2.删除表 【实例22】从“订单管理”库中删除“产品1”表。 观察操作结果 教师讲解 教师给出任务 教师分析 教师给出任务 观察操作结REMOVE TABLE 产品1 果 阅读资料:创建视图CREATE VIEW 阅读 4.3 SQL数据更新 SQL的数据更新主要包括数据的插入、更 新和删除三个部分的功能。 4.3.1 插入数据INSERT 【实例23】在“订单管理”库的“产品1” 表中插入一条记录。 分析: 使用SQL的INSERT INTO命令可以将数 据插入到表中。 操作命令: OPEN DATABASE 订单管理 观察操作结INSERT INTO 产品1 VALUES (\电视果 \英寸纯平\ 4.3.2 修改数据UPDATE 【实例24】将“产品1”表中全部记录的 “单价”降低10%。 分析: 使用SQL的UPDATE命令可以修改表中记 录。 操作命令: UPDATE 产品1 SET 单价=单价*0.9 观察操作结果 4.3.3 删除数据DELETE 【实例25】删除“产品1”表中产品名称 是“电视”的全部记录。 分析: 使用SQL的DELETE FROM 命令可以删 除表中记录。 操作命令: DELETE FROM 产品1 WHERE 产品名称观察操作结=\电视\果 课堂练习 1.使用INSERT INTO命令插入记录时,操作并分析对插入字段和插入值有什么要求? 结果 分析: 当数据库表不再使用时,可以从数据库中移出或从磁盘上删除。 操作命令: 教师分析 教师指导 教师给出任务 教师分析 教师给出任务 教师分析 教师给出任务 教师分析 2.运行UPDATE ST SET 年龄=年龄+1命令后,当前记录被修改还是表中全部记录被修改? 3.SQL的DELETE FROM是逻辑删除记录还是物理删除记录? 小结 作业 1.本章有关习题 2.操作题1~16 章 节 第5章 Visual FoxPro程序设计 常量、变量、函数与表达式 1.掌握常量、变量和常用函数的使用方法 2.书写正确的Visual FoxPro 6.0表达式 1.变量与函数的使用 2.正确书写表达式 表达式的书写 任务驱动、讲练结合 指导操作 本节需要的数据表 教学内容与过程 教学目标 教学重点、难点 技能培训 教法 学法 教具使用 教学内容 复习提问 导入新课 教师活动 SELECT查询的使用 学生活动 思考回答 备注 学生补充,教师点评 用户要处理一批数据,需要用程序的方式解决, 列举数据处理的实例。 给出本节课题 5.1 常量和函数 5.1.1 常量 常量是指在程序运行过程中始终保持不变的数据。 1.字符型常量 2.数值型常量 3.逻辑型常量 4.日期型与日期时间型常量 5.货币型常量 5.1.2 变量 变量是指其值在程序运行的不同时刻会发生改变的量。在Visual FoxPro中,常用的变量有内存变量、字段变量、数组变量和系统变量4种类型。 1.内存变量 ? 使用STORE命令为内存变量赋值 STORE <表达式> TO <内存变量列表> 例如: STORE \工程师\讲授新课 表示给变量ZC赋值“工程师”,数据类型是字符型。 思记 列举实例 教师讲解 讲解并列举实例 表示同时给变量P1、P2赋值3.14159,数 据类型都是数值型。 阅读资料:内存变量命名规则 阅读 ? 使用“=”为内存变量赋值 例如: SL=3 表示给SL赋值3。 ZSL=SL+10 表示给SL加10后的值赋给ZSL,此时ZSL 存储的值是13。 SL=SL+8 表示将SL加8后的值再赋给SL,此时SL观察操作结果 存储的值是11。 ZC=\工程师\ 表示将变量ZC赋值“工程师”。 ? 使用“?”显示内存变量的值 使用“?”可以显示内存变量的值。例如: ? ZC 屏幕显示:工程师 ? \职称是\ 屏幕显示:职称是工程师 ? SL,ZSL 提高 (1) 显示内存变量 使用 DISPLAY MEMORY命令或LIST MEMORY命令可以查看已定义的变量。命令格 式如下: DISPLAY MEMORY [LIKE *] 或 LIST MEMORY [LIKE *] (2) 释放内存变量 ? RELEASE命令 RELEASE <内存变量列表> 观察操作结RELEASE ALL 命令用于释放全部内存变果 量。 ? CLEAR MEMORY命令 CLEAR MEMORY 该命令用于释放全部变量。 2.字段变量 STORE 3.14159 TO P1,P2 教师给出任务 教师分析 教师讲解 例如: 产品名称=\快译通\USE 产品 ? 产品名称,M.产品名称 3.数组变量 数组在使用前要使用DIMENSION或DECLARE命令来定义,其格式如下: DIMENSION <数组名1> (<下标1>[, <下标2>]) [, <数组名2> (<下标3>[, <下标4>])]? 或 DECLARE <数组名1> (<下标1>[, <下标2>]) [, <数组名2> (<下标3>[, <下标4>])]? 说明: 例如,分别定义一个一维和二维数组。 DIMENSION X(5),Y(2,3) 阅读资料:记录与数组之间的数据交换 课堂练习 下列数据哪些是常量?哪些是变量?分别属于哪种类型? ⑴ -3.14 ⑵ 中国 ⑶ .T. ⑷ F ⑸ {^2005/10/21} ⑹ 05/22/2005 ⑺ \ ⑻ ABC 5.2 常用函数 5.2.1 数值计算函数 1.绝对值函数ABS() ABS(<数值表达式>) 2.取整函数INT() INT(<数值表达式>) 3.平方根函数SQRT() SQRT(<数值表达式>) 4.最大值函数MAX()、最小值函数MIN() MAX(<数值表达式1>,<数值表达式2>) MIN(<数值表达式1>,<数值表达式2>) 提高 (1) 圆周率函数PI() PI() (2) 四舍五入函数ROUND() ROUND(<数值表达式>,<有效位数>) (3) 取模函数MOD() 观察操作结果 阅读 回答 思记 列举实例 教师讲解 教师提问 教师给出任务 教师分析 MOD(<数值表达式1>,<数值表达式2>) 5.2.2 字符处理函数 1.空格函数SPACE() SPACE(<数值表达式>) 2.截取子串函数SUBSTR() SUBSTR(<字符串表达式>,<起始位置>[,<长度>]) 3.字符串长度函数LEN() LEN(<字符串表达式>) 提高 (1) 子串位置函数AT() AT(<字符串1>,<字符串2>) (2) 截取子串函数LEFT()和RIGHT() LEFT(<字符串>,<长度>) RIGHT(<字符串>,<长度>) 5.2.3数据类型转换函数 1.数值转换为字符串函数STR() STR(<数值表达式>[,<长度>][,<小数位>]) 2.字符串转换为数值函数VAL() VAL(<字符串>) 3.大小写字母转换函数UPPER()、LOWER() UPPER(<字符串>) LOWER(<字符串>) 提高 (1) 字符串转换为日期函数CTOD() CTOD(<字符串>) (2) 日期转换为字符串函数DTOC()、DTOS() DTOC(<日期>) DTOS(<日期>) 5.2.4日期时间函数 1.当前日期函数DATE() DATE() 2.当前时间函数TIME() TIME() 3.当前日期时间函数DATETIME() DATETIME() 4.年份函数YEAR() YEAR(<日期型变量>) 5.2.5 测试函数 1.测试数据类型函数TYPE() 观察结果 观察操作 观察操作结 教师分析 教师讲解 果 TYPE(\表达式>\ 2.条件测试函数IIF() IIF(<条件>,<表达式1>,<表达式2>) 说明: 课堂练习 写出下列各函数的值。 操作并分析⑴ INT(-11.5) ⑵ 结果 ROUND(3750.96,0) ⑶ AT(\ ⑷ UPPER(\ ⑸ TYPE(\ ⑹ STR(3.14,7,3) ⑺ DATE() ⑻ LEN(\ 年北京奥运会\ ⑼SUBSTR(\高等教育出版社 \ 5.3 表达式 5.3.1 算术表达式 在算术表达式中可以使用圆括号“( )”,括 号的嵌套一律使用圆括号。例如: ? 5*3**2+(36-12)/3-1 52.00 ? 25*3,25%3,25%-3,MOD(25,3) 75 1 -2 1 5.3.2 字符表达式 5.3.3 关系表达式 5.3.4 逻辑表达式 例如: ? 10 > 5 AND 10 >=8 .T. ? 10 > 5 AND 8 > 10 .F. 例如,判断变量Z是否在50~100范围的区间 内。 ? Z>50 AND Z<100 上述表达式也可书写为:NOT (Z<=50 OR Z>=100),其运算结果是相同的。 课堂练习 写出下列各表达式的值。 查看操作结⑴ 5+3=[3+5] ⑵ \ 果 ⑶ NOT .T. ⑷ \ ⑸ \ ⑹ {^2005/10/26}+12 ⑺ (3*6-7)>8 教师指导 教师讲解 教师指导 AND \小结 作业 本章有关习题 章 节 第5章 Visual FoxPro程序设计 顺序结构程序与交互式命令 1.掌握顺序文件的建立方法 2.能够正确3个交互式命令 3.能区别3个交互式命令 1.顺序文件的编写 2.交互式命令的区别 交互式命令在程序中的使用 任务驱动、讲练结合 指导操作 本节VFP系统 教学内容与过程 教学目标 教学重点、难点 技能培训 教法 学法 教具使用 教学内容 复习提问 导入新课 教师活动 什么是常量、变量?有何区别? 学生活动 思考回答 备注 学生补充,教师点评 用户要处理一批数据,需要用程序的方式解决, 而有些是数据需要根据当时的情况确定数据, 给出本节课题 5.4程序文件的建立与运行 5.4.1 建立程序文件 使用菜单方式建立程序文件的步骤如下: (1) 单击“文件”菜单中的“新建”命令,打开“新建”对话框。 (2) 在“新建”对话框中选择“程序”选项,然后单击“新建文件”按钮,这时打开“程序1”文本编辑器窗口,在这个窗口中输入程序内容。 (3) 程序输入结束后,单击工具栏中的“保存”按钮或“文件”菜单中的“保存”命令,保存该程序文件,默认的扩展名为.prg。 思记 列举实例 讲授新课 提高 在Visual FoxPro 命令窗口中可以通过MODIFY COMMAND命令来建立程序文件。其命令格式如下: MODIFY COMMAND [<程序文件名>] 说明: 编写程序时,必须遵循Visual FoxPro程序的一些基本规则: 教师讲解 讲解并列举实例 阅读 DO PHF 5.5 简单的交互式命令 5.5.1 WAIT命令 WAIT命令从键盘接收一个单字符。 【实例1】编写一个程序,每显示“产品” 表中的一条记录就暂停,直至按键或10秒钟没 有输入时继续显示,共显示3次。 程序: SET TALK OFF USE 产品 &&打开表 DISPLAY NEXT 1 &&显示一条记录 WAIT TIMEOUT 10 &&等待按键或暂停10 秒 SKIP &&移到下一条记录 DISPLAY NEXT 1 WAIT TIMEOUT 10 SKIP 观察操作结DISPLAY NEXT 1 果 USE &&关闭当前表 提高 思记 交互式WAIT命令的格式如下: WAIT [<提示信息>] [TO <内存变 量>][WINDOW [AT <行>,<列>]] [CLEAR | NOCLEAR][TIMEOUT < 数值表达式>] 说明: 5.5.2 ACCEPT命令 ACCEPT命令从键盘接收一个字符串。 【实例2】编写一个程序,根据键盘输入不 同的产品id,检索出该产品的有关信息。 5.4.2 运行程序文件 程序文件建立后,要运行该程序,一般使用菜单方式或命令方式。 1.菜单方式 2.命令方式 使用DO命令可以运行一个程序文件,其命令格式如下: DO <程序文件名> 例如,在命令窗口中键入命令: 教师给出任务 教师分析 教师讲解 教师给出任务 SET TALK OFF USE 产品 ACCEPT \请输入产品id:\ LOCATE FOR 产品id=CD DISPLAY 观察操作结USE 果 SET TALK ON 上述程序可以改写为: ACCEPT \请输入产品id:\SELECT * FROM 产品 WHERE 产品观察操作结果 id=CD 提高 交互式ACCEPT命令格式如下: ACCEPT [<提示信息>] TO <内存变思记 量> 说明: 5.5.3 INPUT命令 INPUT命令从键盘接收一个数据,该数据 可以是数值型、字符型、逻辑型或日期型。 【实例3】编写程序,检索“产品”表中产 品单价在某一数值以上的“手机”记录。 分析: 程序: INPUT \输入要查询的单价:\SELECT * FROM 产品 WHERE 单价>=DJ 观察操作结果 AND 产品名称=\手机\ 提高 交互式INPUT命令格式如下: INPUT [<提示信息>] TO <内存变量> 说明: 【实例4】在“订单”表中检索某一日期之 后发货的所有产品订单明细。 该程序要求通过键入的日期,从“订单” 表的“发货日期”字段中检索记录。从键盘输 程序: 教师分析 教师讲解 教师给出任务 教师分析 教师讲解 教师给出任务 教师分析