表的基本操作、索引、关联、数据库、视图.ppt

上传人:za****8 文档编号:6789038 上传时间:2020-03-04 格式:PPT 页数:86 大小:1,008.01KB
返回 下载 相关 举报
表的基本操作、索引、关联、数据库、视图.ppt_第1页
第1页 / 共86页
表的基本操作、索引、关联、数据库、视图.ppt_第2页
第2页 / 共86页
表的基本操作、索引、关联、数据库、视图.ppt_第3页
第3页 / 共86页
点击查看更多>>
资源描述
VFP程序设计 主讲 罗敏 时间安排 临床13 18班 周一晚上6 30地点 综合楼205周三晚上6 30地点 综合楼205周五晚上6 30地点 综合楼205考试时间 4月12日笔试 4月13日上机考试 时间安排 护理 体育 中医药等 周二晚上6 30地点 综合楼205周四晚上6 30地点 综合楼205周六上午8 30地点 综合楼205考试时间 4月12日笔试 4月13日上机考试 关于二级考试 考试性质 形式 笔试 上机 全省统一出题 合格发证 60分合格 1 笔试 100分 120分钟 计算机应用基础 一共15分 其中单选5分 判断10分 VFP占85分 一般15分单选 30分左右的读程序然后做选择题 一个3分 40分左右的读程序 填空使程序完整 每空2分 时间2小时 一般时间比较合适 2 上机 100分 60分钟 基本操作30分设计程序30分 表单设计40分 上一次出现菜单 标签 时间1小时 一般时间比较紧张 3 成绩计算首先 笔试成绩 60分 同时上机成绩 60 然后 成绩 笔试 0 8 上机 0 2 4 考试内容在书上有 同时可以有5分左右的超大纲的题 知识点 基本概念数据 常量 变量 表达式函数表及表的简单操作表的复杂操作表与表之间的操作结构化程序设计表单菜单报表与标签合成软件SQL查询语言 课时安排 1 简单复习命令 结构化程序设计1 循环 多重循环 变量作用域 参数传递 2 程序设计2 项目 数据库管理 SQL13 SQL24 面向对象一5 面向对象二6 讲解笔试试题一7 讲解笔试试题二8 讲解上机试题一 菜单9 讲解上机试题二 标签10 计算机技术基础11 上机12 答疑 第一章表的操作 一 命令的基本格式VisualFoxPro命令通常由命令动词和命令子句构成 FIELDS FOR WHILE 1命令结构 每条命令必须以命令动词开始 命令动词与子句 子句与子句之间必须以空格隔开 命令动词和子句的关键字可以使用前4个字符表示 不区分字母的大小写 一行只能写一条命令 较长的命令可以分行书写 除最后一行外 其余各行必须以分行符 结束 一条命令输入完成后必须以回车键结束 二 范围与条件 1 范围的表示 e g 1 1 使用范围 listnext3listrecord2listrestlistall 1 2 3 2 2 3 4 5 1 2 3 4 5 2 条件的表示 如果在命令中既有FOR条件也有WHILE条件 则WHILE条件优先 e g 1 2 使用条件 listnext3for编号 1listfor编号2 2 3 1 2 3 4 2 无记录 2基本命令 2 打开表 e g 1 4 打开多个表 select3use学生use选课in2listfields学号 姓名 课程号 成绩 b b 3 关闭表 如果在程序中打开了表 那么在程序结束前要使用CLOSEALL关闭所有打开的表 4 记录的定位 测试记录指针的位置 e g 1 5 输出显示学生表的所有记录 use学生 学号姓名性别出生日期评分 dowhile eof 学号 姓名 性别 出生日期 评分skipenddo 5 显示记录 e g 1 6 在学生表中输出显示所有男生的学号 姓名 不显示记录号 use学生listfields学号 姓名for性别 男 off 6 添加记录 e g 1 7 在学生表中添加新记录 学号 S0201302 姓名 杨凡 use学生appendblankreplace学号with S0201302 姓名with 杨凡 7 修改记录 e g 1 8 在学生表中对所有学生的评分增加5 use学生replaceall评分with评分 5 8 删除 恢复记录 逻辑删除设置 9 复制表 e g 1 9 复制学生表中所有男生的记录到文本文件xs txt use学生copytoxs txtfor性别 男 sdf 10 记录过滤 e g 1 10 在学生表中输出显示所有男生的记录 use学生setfilterto性别 男 list 11 字段过滤 e g 1 11 在学生表中输出显示所有的学号 姓名 use学生setfieldsto学号 姓名list 三 练习 1 阅读下面程序 USEDJKSS 0DOWHILE NOT EOF IF笔试 60 AND 机试 60REPL是否通过WITH T S S 1ELSEREPL是否通过WITH F ENDIFSKIPENDDO SCLOSEALL 1 程序运行后S的值是 C A 7 B 5 C 4 D 3 2 对于程序中的SKIP语句 则 D A 可以替换成CONTINUE 不影响程序的执行 B 可以去掉 不影响程序的执行 C 可以移到循环体外部 不影响程序的执行 D 如果去掉 程序将进入死循环 3 DJKS表中 是否通过 字段的类型是 D A 数值型 B 字符型 C 备注型 D 逻辑型 USE学生 有10条记录 COPYTOXSUSEXSCOUNTTOAGOTOPDELENEXT5COUNTTOBSETDELEONCOUNTTOCPACKCOUNTTODSETDELEOFFCOUNTTOECOPYTOXS 1USEXS 1ZAPCOUNTTOF A B C D E F 1 程序执行结果是 D A 10105555 B 1050000 C 101010101010 D 10105550 2 阅读下面程序 CLEARUSE成绩SETFILTERTO性别 女 AND成绩 70DISP姓名 成绩SUM成绩TOSH1SETFILTERTOSETDELETEONDELETEFOR性别 女 AND成绩 70COUNTTOSH2 SH1 SH2USE 3 阅读下面程序 1 DISP姓名 成绩语句显示的内容是 C A 吕开慧 69 B 张大英 80 C 李进 73 D 马梅 84 2 命令 SH1 SH2显示的内容是 A A 232 00 4 B 245 00 1 C 245 00 4 D 232 00 1 4排序与索引 一 排序根据关键字段的值 升序或降序 排列记录 并把记录依次保存到一个新表中 原表的记录顺序保持不变 Sorttoxson姓名 性别 d 例 按姓名 升序 性别 降序 对学生 dbf排序 排序结果存入xs dbf 二 索引在不改变记录物理顺序的情况下 根据索引表达式的值 升序或降序 建立记录的逻辑顺序 创建索引 使用索引 未索引的表 索引文件 显示记录 主索引 不允许关键字值重复 一个表只能有一个主索引 只有数据库表才能创建主索引 候选索引 不允许关键字值重复 一个表可以有多个候选索引 数据库表和自由表都可以创建候选索引 普通索引 允许关键字值重复 对应的索引项也重复 一个表可以有多个普通索引 数据库表和自由表都可以创建普通索引 唯一索引 允许关键字值重复 但是对应的索引项不重复 一个表可以有多个唯一索引 数据库表和自由表都可以创建唯一索引 1 创建索引 2 打开索引 3 设置主控索引 4 关闭索引 5 重新索引 e g 1 17 在学生表中 对评分最高的3位学生增加1评分 并按学号的升序输出显示所有记录 use学生indexon学号tagxhindexon评分tagpfdescendingadditivereplacenext3评分with评分 1setordertoxhlist 5查询 一 顺序查询按照记录的逻辑顺序 在当前表中查找满足条件的记录 1 查找第一条记录 2 查找下一条记录 测试查询结果 CONTINUE必须在使用LOCATE之后才能使用 e g 1 18 查询学生表所有姓陈的记录 use学生locatefor姓名 陈 dowhile eof 学号 姓名 出生日期 评分continueenddo 二 索引查询索引查询是比顺序查询更高效的查询方式 只有在当前表中设置了主控索引 才能使用索引查询 1 查找第一条记录 FIND只能使用C型和N型常量 2 查找下一条记录 例 索引查询学生 dbf中姓 陈 的学生记录 Use学生Indexon姓名toxmFind陈 Use学生Indexon姓名toxmSeek 陈 1 2 Use学生Locatefor姓名 陈 3 三 练习 1 阅读下面程序 USEXSINDEXON 成绩TOCJ1GOTOPDISP姓名 成绩N 0LOCATEFOR性别 女 AND成绩 80DOWHILE NOT EOF IFFOUND N N 1CONTENDIFENDDO NCLOSEALL 1 程序 DISP姓名 成绩 执行的结果显示是 A 张军90 B 赵菲78 C 任涛50 D 李敏92 2 程序运行完毕后 N的值为 A 2 B 3 C 4 D 5 3 关于循环体中的CONT 说法正确的是 A 可以用SKIP语句代替 不影响程序执行结果 B 可以放到循环体外 不影响程序执行结果 C 去掉CONT 程序进入死循环 D 去掉CONT 不影响程序执行结果 6数据统计 一 基本统计 二 综合统计 CALCULATE常用统计函数 e g 1 20 在销售表中 求每次销售的金额 合计 输出显示销售量的最大值和销售总金额 settalkoffuse销售replaceall合计with销售量 单价calculatemax 销售量 sum 合计 tox y x y 销售 dbf e g 1 21 在销售表中 输出显示销售量的最大值和销售总金额 settalkoffuse销售calcmax 销售量 sum 销售量 单价 tox y x y 销售 dbf 三 分类汇总 分类汇总前必须对关键字段进行索引或排序 e g 1 22 在销售表中 求每种书的销售总量和销售总金额 use销售indexon书名tagsmreplaceall合计with销售量 单价totalon书名toxsfields销售量 合计 销售 dbf xs dbf 四 练习 1 阅读下面程序 CLEARUSE工资SUM基本工资TOS1FOR性别 女 AVER基本工资TOAV1FOR职称 讲师 S1 AV1 1 INDEXON职称TAGXBDESCTOTALON职称TOZCFIELDS基本工资USEZC 职称 基本工资 2 LIST 3 CLOSEALL 1 程序中 1 处输出的S1 AV1结果分别是 C A 56501200 B 40001200 C 68501200 D 68502400 2 程序中 2 出输出的职称和基本工资分别为 B A 副教授7500 B 教授8450 C 讲师2400 D 教授2800 3 程序中 3 查看表中记录有 D 条 A 8 B 2 C 4 D 3 第一次课结束 一 工作区与表工作区是在内存中为打开的表创建的存储区域 当前使用的工作区称为当前工作区 当前工作区打开的表称当前表 7多表操作 每个工作区只能打开一个表 一个表可以在多个工作区同时打开 每个在工作区打开的表都有一个记录指针 记录指针所指向的记录称为 当前记录 如果工作区的表没有建立关联 则表的记录指针保持相对独立 访问非当前表的字段必须通过别名进行引用 格式1 别名 字段名格式2 别名 字段名 二 表的基本操作 1 选择工作区 e g 1 3 选择工作区 select3select1select0 2 打开表 e g 1 4 打开多个表 select3use学生use选课in2listfields学号 姓名 课程号 成绩 sele b b 例 设cjl dbf和cj2 dbf分别存放学生的姓名 数学 计算机成绩 请显示出来 Select1UsecjlUsecj2in2Listfields姓名 数学 计算机 Listfields姓名 数学 b 计算机Listfieldsa 姓名 a 数学 b 计算机 Listfieldsb 姓名 b 数学 a 计算机 Cj1 dbf Cj2 dbf Cj1 dbf Select1UsecjlUsecj2in2Listfields姓名 数学 b 计算机 记录号姓名数学计算机1王小平8390 显示结果 2张强6590 3刘雨7290 Cj2 dbf 一 表的关联通常情况下 在各工作区打开的表是相对独立的 如果在表间建立关联 逻辑连接 则表的记录指针可以实现同步移动 1 一对一关联 子表必须索引 父表使用关联表达式与子表的索引建立关联 父表的记录指针移动时 子表的记录指针自动移动到索引值等于关联表达式值的第一条记录上 否则记录指针指向EOF e g 1 23 在学生和选课表中 输出显示学生一门课程的成绩 包括学号 姓名 课程号和成绩字段 select2use选课indexon学号tagxhselect1use学生setrelationto学号intoblistfields学号 姓名 b 课程号 b 成绩 记录号学号姓名b 课程号b 成绩1S0201101刘小芸C130902S0201102赵廷开C110803S0201103张西雨C130944S0201104薛冰平C11076 2 一对多关联 只有建立了一对一关联 才能建立一对多关联 e g 1 24 在学生和选课表中 输出显示学生所有课程的成绩 包括学号 姓名 课程号和成绩字段 select2use选课indexon学号tagxhselect1use学生setrelationto学号intobsetskiptoblistfields学号 姓名 b 课程号 b 成绩 记录号学号姓名b 课程号b 成绩1S0201101刘小芸C130902S0201102赵廷开C110803S0201102赵廷开C150664S0201103张西雨C130945S0201103张西雨C14050 e g 1 25 在学生 选课和课程表中 输出显示学生一门课程的成绩 包括学号 姓名 课程名和成绩字段 串联 select3use课程表indexon课程号tagkchselect2use选课indexon学号tagxhsetrelationto课程号intoc 多对一 select1use学生setrelationto学号intobSetskiptob 一对多 listfields学号 姓名 c 课程名 b 成绩 select2Use学生indexon学号tagxhselect3use课程indexon课程号tagkchselect1Use选课setrelationto学号intobSetrelato课程号intocaddilistfields学号 姓名 c 课程名 b 成绩 在学生 选课和课程表中 输出显示学生一门课程的成绩 包括学号 姓名 课程名和成绩字段 并联 2 特殊关联 bj dbf qk dbf 例 在下面的两个表中 按学号的升序显示每个学生的学号 姓名和班级名称 其中学号的第3 4位表示班级编号 bj dbf qk dbf Select2UsebjIndexon班级编号tobjbhSelect1UseqkIndexon学号toxhSetrelationto学号intobListfields学号 姓名 b 班级名称 程序实现 substr 3 2 随着表文件的打开而自动打开的索引文件是 20 20 A 单索引文件 B 独立复合索引文件 C 结构复合索引文件 D 非结构复合索引文件 二 表的连接从两个表中选择一组字段组成新表的字段 并按条件合并两个表的记录组成新表的记录 物理连接 e g 1 27 连接学生和班级表 包括学号 姓名 性别和班级名称字段 其中学号的第6位表示班级编号 select2use班级select1use学生joinwithbtoxsforsubstr 学号 6 1 b 班级编号 fields学号 姓名 性别 b 班级名称Usexs 三 数据更新根据一个表更新另外一个表的记录 参与数据更新的两个表必须有一个公共字段 当前表与别名表必须按公共关键字段索引 使用RANDOM则不需要对别名表索引 e g 1 28 根据销售表的销售情况 更新库存表的图书数量 select2use销售indexon书名tagsm1select1use库存indexon书名tagsm2updateon书名fromb replace库存量with库存量 b 销售量 销售 dbf 库存 dbf e g 1 28 根据销售表的销售情况 更新库存表的图书数量 select2use销售indexon书名tagsm1select1use库存indexon书名tagsm2setrelato书名intob 比上例多建立一个关联 replaceall库存量with库存量 b 销售量 销售 dbf 库存 dbf e g 1 28 根据销售表的销售情况 更新库存表的图书数量 REPL法
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!