版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习好资料欢迎下载学习好资料欢迎下载学习好资料欢迎下载哈尔滨剑桥学院教案系部计算机工程系课程名称VisualFoxPro程序设计教师姓名朱莹泽职称讲师学年学期2012—2013学年第二学期教案首页课程名称VisualFoxPro程序设计课程编码JSJ1002课程性质√必修课选修课课程类型√公共基础课专业基础课专业课授课专业12工商年级、班2012级周学时数/周数4/16总学时数64讲授学时数32实践环节时数32考核性质√考试考查考核方式√闭卷开卷学生数98人教材:(名称、作者、出版社、出版时间)VisualFoxPro程序设计刘丕娥编著哈尔滨工业大学出版社2012年1月第1版教材参考书:(名称、作者、出版社、出版时间)VFP程序设计与应用实践教程孔庆彦编著中国铁道出版社2009年5月第2版系(部)审阅意见系(部)主任签字年月日第1章授课章节第1章VisualFoxPro数据库基础知识所需学时讲授学时数:2实践环节学时数:2教学目的与要求目的:介绍数据库系统基础知识;VF操作基础简介。要求:了解数据库系统的组成;初步掌握VF启动与操作;教学重点1、关系数据库相关概念;2、VF系统的启动。教学难点1、数据库、数据库系统和数据库管理系统三者的关系。教学方法与手段1、课堂讲授2、上机操作教学内容时间分配第1次课讲授:数据库系统基础知识第1次上机:熟悉VF上机环境和简单命令使用。作业及思考题1、关系数据库特点;2、VF三种操作方式;教学的基本内容时间安排教学方法第1章VisualFoxPro数据库基础知识一、数据库系统概述(一)基本概念1.数据(data):描述事物的符号记录,存储在某种媒体上型+值临时性(内存)&持久性(磁盘)--数据库系统处理的表现形式:数字、字母、文字、文本数据、图形、图像、声音、影像和动画等2.数据库(database,DB):数据的集合统一的结构形式,存放于统一的存储介质中包括:数据本身+事物间的关系3.数据库管理系统(DBMS):组织、操纵、控制数据系统软件,建库,建表,查询,删除等4.数据库管理员(DBA):负责对数据库的规划、设计、维护、监视等工作的人员5.数据库系统(DBS):DB+DBMS+计算机系统+DBA6.数据库应用系统(DBAS):面向某一类实际应用的应用软件系统,如图书管理,售票系统。(二)数据库系统的发展数据管理发展的3个阶段:(低—>高)1.人工管理:20世纪50年代中以前卡片、纸带、磁带无磁盘,无管理数据的软件,无OS特点:数据不独立,无法共享,数据冗余,数据不一致性2.文件系统:20世纪50后-60中后期硬件有存储器(磁盘),软件有os——文件系统特点:一定的独立性,程序数据分开存储,数据不一致,仍有冗余3.数据库系统:20世纪60中至今DB诞生特点:集成性,共享性,低冗余,独立性数据库系统发展3个阶段第一代:1)层次、网状数据库系统层次:树状(有序树)--层次清晰,横向联系若网状:有向图--联系强,但操作不方便第二代:2)关系数据库系统relationaldatabasesystemRDBS关系二维表Oracle,sqlserver,sybase,db2,vfp第三代:3)面向对象数据库系统继承第二代技术,网络,分布式技术,多媒体技术(三)数据模型1.实体:现实世界中客观存在的事物称为实体可以具体,也可以抽象(一次借书,一次订货,一次买票)2.属性:描述了实体某一方面的特性描述学生实体可以用学号,姓名,性别,出生日期等属性。课程导入:本课程开设的目的和意义,学时分配,掌握程度,等级考试等.5分钟举例:学籍管理系统手机缴费饭卡使用存钱取钱买火车票引入身边实例,全面介绍数据库系统.10分钟介绍数据库系统发展5分钟实体间联系举例数据模型形象化5分钟教学的基本内容时间安排教学方法3.域:实体属性值的取值范围人的年龄0~130;身高0.2~2.8m4.实体间的联系:3种类型1)一对一(1:1):(独)父子,夫妻;学校-校长;国家-主席2)一对多(1:n):多生父子;我有多个手机;学校-学生3)多对多(m:n):学生-课程;老师-学生5.数据模型:对客观事物及其【联系的数据描述】常用的:层次模型,网状模型,关系模型P6—关系模型的特点(四)关系数据库:基于关系模型建立的数据库1.基本术语1)关系:二维表.dbfvisualfoxpro表文件2)元组:一行一元组一记录3)属性:一列一属性一字段4)域:属性取值范围5)关键字:能唯一区分不同元组的属性或属性的组合(最小组合)6)候选关键字:凡能够唯一区分不同元组的属性或组合(可多个)7)主关键字:在候选关键字中选一个(只有一个)--主键8)外部关键字:某属性或组合不是该关系的关键字,而是另一个关系的主关键字,则它为外部关键字—外键。2.关系运算1)选择:行操作2)投影:列操作–去掉重复行3)连接:多表操作3.数据完整性:保证数据库中数据的正确性、相容性而提出的某种约束条件和规则包括:(1)实体完整性:主键实现—保证记录唯一性主键非空(2)域完整性:属性取值范围(3)参照完整性:外键(多表间关系约束)二、VisualFoxPro操作基础(一)VFP简介美Microsoft公司,面向对象,可视化,DBMS,DBAS开发工具(二)安装与启动1.安装–双击setup.exe37接受协议并输入产品ID号:111-11111112.启动1)开始-程序-VisualFoxPro6.02)双击快捷方式图标3)找到安装文件的VFP6.0.EXE,双击该文件3.退出命令窗口:QUIT(不区分大小写)Alt+F4(三)VFP窗口应用程序窗口:标题栏,菜单栏,工具栏,状态栏,命令窗口,输出区域命令窗口:显示和隐藏:窗口/命令窗口或者Ctrl+F2输入VFP命令,按回车键执行命令行可修改,删除,剪切,复制和粘贴等(四)VFP操作1.操作方式交互式三种菜单方式:菜单系统/工具栏交互式命令方式:命令窗口输入命令后执行程序方式:编写程序文件后执行自动化教学反思:这是非计算机专业学生的计算机程序设计类入门课程,为了提高学生的学习兴趣,必须把第一次课上好,让学生从整体上对这门课有个初步的了解,这要求我们老师一要组织好教学,二要精心制作幻灯片,三要合理安排教学内容。从第一周的上课效果来看,大一学生的整体状态比较积极,对计算机类程序设计课程比较感兴趣,并为了日后的等级考试,下定了初步的决心。Vfp是一门实践性很强的学科,教学内容一定要和上机实践紧密结合,所以布置合理的上机实验,是对教学内容最有效的检验,大家通过课堂教堂,或者网络搜索,结合自己的亲自操作,总结经验,检验课堂理论,并通过难度的不断加大,逐渐形成独立思考的能力,分析问题和解决问题的能力。加大案例教学的力度,形成项目驱动模式,使vfp各个章节形成体系,相互关联,整体统一,为学好学透这门课程打下坚实的基础。实例讲解实体间联系5分钟介绍基本术语10分钟关系运算10分钟安装知识讲座5分钟实际操作法讲解Vfp窗口界面介绍3分钟最后总结提高学生日后学习兴趣第2章授课章节第2章VisualFoxPro的基本语法所需学时讲授学时数:6实践环节学时数:6教学目的与要求目的:掌握VF数据类型、变量、函数、数组和命令。要求:掌握数据类型定义与使用;2、掌握函数定义与使用;3、初步掌握VF命令。教学重点1、变量定义及常用函数的使用;教学难点1、二维数组定义与使用教学方法与手段1、课堂讲授2、上机操作教学内容时间分配第2次课讲授:常量和变量第2次上机:常量使用,定义和使用变量第3次课讲授:运算符和表达式;数值函数第3次上机:熟练使用常用表达式和基本函数第4次课讲授:日期和转换函数第4次上机:熟练使用常用vfp日期和转换等函数作业及思考题1、VF三种操作方式;2、二维数组的使用。教学的基本内容时间安排教学方法第2章VisualFoxPro的基本语法一、VisualFoxPro数据元素(一)VisualFoxPro数据类型字符型C‘中国’[剑桥09英语]“VisualFoxPro程序”中文–2字节西文–1字节日期型D8字节日期时间型T8字节逻辑型L.T.或.F.1字节货币型Y$数值8字节数值型N数值8字节(二)VisualFoxPro常量1.数值型常量0~9,”+”,”-“,“.“?-0.12?+45?012?2.34e3?2.34e-3-0.1245(空格)_122340.002342.货币型常量$+数值型常量保留4位小数?$24.46不能用科学计数形式表示3.字符型常量定界符‘’“”[]若界限符分身就是字符型常量的一部分,则使用其他界限符[“计算机”]4.日期型常量定界符{}严格日期格式{^yyyy-mm-dd}?{^2010-03-8}?{^2008/8/8}5.日期时间型常量?{^2010-5-19,1:28pm}?{^2009-12-44:40:25p}6.逻辑型常量?.y.?.t.?.n.?.f..T..T..F..F.(三)VisualFoxPro变量(其值可以改变的量)内存变量–单值变量简单变量变量:数组变量字段变量–多值变量变量的命名首:字母、汉字、下划线开头后续:字母、数字、汉字、下划线内存变量的赋值(1)用“=”赋值单个变量赋值r=123s={^1987/04/13}(2)用store赋值多个变量赋同值Store<表达式>to<内存变量名表>Store“china”tostr1,str2,str3?str1,str2,str3(3)Input赋值Input“给x赋值:”tox给x赋值:12“男”?x12男注:可以给数值型、字符型、货币型、日期型、日期时间型、逻辑型多种变量赋值Accept赋值Accept“给x赋值:”tox给x赋值:12“男”?x12“男”注:只接受字符型数据,输入时不加定界符Wait赋值Wait“给x赋值:”tox给x赋值:1“?x1“注:只接收单个字符表达式值的显示?先换行,再输出??当前位置输出4.数组–一组带下标的变量只有一维和二维同一数组的不同元素,数值的类型可以不同初始值:.F.(1)定义Dimension|Declarestu(4),stum(2,3)注:当一维和二维数组重名时,先定义的将被覆盖stum(2,2)等价于stum(5)可以用一维数组元素访问二维数组(2)使用:同简单变量(四)VisualFoxPro函数注:每个函数都有一个返回值,但不一定都有参数数值函数绝对值函数abs?abs(2-11)9符号函数sign表达式结果为正1负-100?sign(10-5)1(3)取整函数int舍掉小数?int(3.1415926)?int(10.9875)?int(-5.8)310-5(4)向下取整floor?floor(10.123)?floor(-10.123)10-11(5)向上取整ceiling?ceiling(10.123)?ceiling(-10.123)11-10(6)四舍五入函数round?round(1150.163,2)?round(1150.163,1)?round(1150.163,-2)1150.161150.21200n>=0要保留n位小数n<0整数部分舍入的位数(7)平方根函数sqrt表达式>=0,默认保留两位小数?sqrt(16)4.00(8)求余mod(被除数,除数),运算结果符号与除数相同同号余数异号余数+除数?mod(10,3)?mod(-10,3)?mod(10,-3)?mod(-10,-3)12-2-1(9)求最大值max?max(10,20,15,40)?max(“a”,”20”,”bb”,”40bb?max(“a”,20,”bb”,”40”出错,参数类型不一致规则:数字<大写<小写.T.<.F.?max(.T.,.F.).T.(10)求最小值min?min({^1988/10/22},{^1967/12/23},{^1985/01/10})12/23/67字符函数取左子串left?left(“information”,5)infor?left(“剑桥学院”,5)剑桥?left(“剑桥A级学院”,5)剑桥A取右子串right?right(“information”,4)tion取子串substr?substr(“information”,4,2)or从第4个字符取2位求字符串长度len?len(“information”)?len(“黑大剑桥吧主NO.1”1117求子串位置at|atc若不出现,返回0at()区分大小写atc()不区分大小写?at(“For”,“information”)0?atc(“For”,“information”)3?at(“1”,“英语1班”)5子串替换stuff?stuff(”infomation”,3,2,”for”)fo->forinformation(7)小写字母->大写字母upper?upper(“12”)12?upper{“你好”}你好(8)大写字母->小写字母lower?lower(“InforMation”)Information(9)空格字符串生成space?space(5)+“s”_____S(10)产生重复字符replicate?replicate(“*”,5)*****(11)删除首尾空格alltrim()(12)删除首部空格ltrim()(13)删除尾部空格rtrim()trim()(14)宏函数&x=”123”x=”.t.”x=”{^2009/5/14}?&x?&x?&x123(字符).T.(逻辑)09/05/14(日期)x=”{^2005/12/234:50p}”x=”a”x=”a”?&xa=5a=”b”05/12/2304:50:00pm?&xb=55?&x->b字符型x=2002y=150z=”x+y”?&a->5数值型?&z+12153?&b出错!x=”学生”use&xuse学生(15)空值测试函数ISNULL()X=NULLX=.NULL.?X,ISNULL(X).NULL..T.(16)“空”值测试函数EMPTY()?empty(0),empty(“”),empty(““),empty($0),empty(.f.),?empty(ctod(“”),empty(ctot(“”))均为.T.?empty(.NULL.)或empty(null)均为.F.不“空”。日期时间函数(1)系统日期?date()04/07/10(2)系统时间?time()22:31:11(3)系统日期时间?datetime()04/07/1010:31:11PM(4)年份?year({^2005/12/23})2005(5)月份?month({^2005/12/23})12(6)天数?day({^2005/12/23})23(7)小时?hour({^2009-12-44:40:25pm})16(8)分钟?minute({^2009-12-44:40:25pm})40(9)秒数?sec({^2009-12-44:40:25pm})254.类型转换函数(1)数值型->字符型返回C字符型?str(3.1415926,6,4)3.1416长度小数位数?str(3141.5926,6)?str(3141.5926,3)?str(3141.5926)不含小数__3142***不含小数,默认长度为10______3142?str(+123.45,6,1)?str(-1.438e6,6,3)?str(-1.438e6,9)_123.5-1.E+6_-1438000(2)字符串->数值返回N数值型,默认2位小数。?val(“3.1415圆周率”)?val(“圆周率3.1415”0注:返回值的小数点位数取决于setdecimalto命令设置的位数(3)字符串->日期返回值D日期型?ctod(”12/23/78”)?ctod(“2008-12-23”)注:机器内能识别的日期格式!(4)日期->字符串返回值C字符型?dtoc({^1980/12/25})12/25/80Setstrictdateto0?dtoc({09/19/89})09/19/895.其他函数(1)条件测试?if(3>4,”正确”,”错误”)错误(2)值域测试?between(“d”,”b”,”s”).T.(3)数据类型测试?vartype(90),vatype(“a”),vartype(date()),vartype(null),vartype(3>5),vartype(“a”+3),NCDXL不匹配(五)运算符、表达式1.算术运算符+-*/^%2.字符运算符+原样连接-第一个字符串尾部空格移到整个连接字符串的尾部3.日期和时间日期+3加天数结果为日期日期-3减天数日期日期-日期相差天数数值时间+3加秒数时间时间-3减秒数时间时间-时间相差秒数数值4.关系运算符Setexacton加空格_精确比较==Setexactoff左包含右即可=5.逻辑运算符?not.t.?.t.and.f.?not(3>5)?”a”==”b”or(7>5).F..F..T..T.教学反思:这一章,理论教学内容较多,对于数据类型的理解,常量变量的使用,数组的定义与赋值,到最后函数的应用,逐层深入,环环紧扣。课堂教学当以打基础为主,让学生理解数据类型的含义,结合生活实际,会区分不同的事物划分不同的类型。在数组这一环节,可以实例演示,让学生看到真正的运行结果,体会数组元素初始值是逻辑假的事实,然后分别用不同类型的值去覆盖数组,加深对数组的认知。由于函数比较多,所以我制作了大量的实例,把函数的各种不同类型的参数都覆盖上,这样的ppt讲解的时候,全面清楚的看清了函数不同种参数的实际运行效果,区别数值函数、字符函数、日期函数、数据类型测试函数、数据类型转换函数的不同应用,会熟知函数的不同运算结果,为日后各章数值处理做好准备。联系生活实际对各种数据类型进行介绍6分钟举例法介绍常量15分钟由常量的特点引入变量变量赋值10分钟数组的定义与使用10分钟为了实现特定的功能,我们使用函数,可由系统提供,也可自定义.函数40分钟注意区别Floor和Ceiling关注第二个参数为负的情况具体问题具体对待,不同的程序设计语言,规定可能不一样,结果也不尽相同.日期比较大小?Left函数重点讲解5分钟注意区别大小写思考:能否删除字符中间某处空格?宏替换比较难理解,注意分析不同实例8分钟比较ISNULL()和EMPTY()注意表示时间的顺序Str常考函数6分钟根据函数功能识记函数If函数正确使用4分钟如何用好vartype函数?两种比较有何不同?如何切换?4分钟
第3章授课章节第3章数据库的建立和维护所需学时讲授学时数:2实践环节学时数:2教学目的与要求目的:掌握数据库的基本操作。要求:1、理解数据库与表的关系;2、掌握数据库的创建与使用教学重点1、命令操作数据库2、数据库的打开关闭与删除教学难点1、当前数据库教学方法与手段1、课堂讲授2、上机操作教学内容时间分配第5次课讲授:数据库的基本操作第5次上机:建立、使用、删除数据库作业及思考题数据库与表的关系;教学的基本内容时间安排教学方法第3章数据库的建立和维护一、数据库与表的概述(一)数据库:逻辑概念,它通过一组系统文件将相互关联的数据库表及其相关的数据库对象统一组织和管理。.DBC自动建立.DCT数据库备注文件.DCX数据库索引文件(二)表:在关系数据库中,将关系称为表。表结构:字段名(表头),类型,宽度,小数位数表表数据:表中记录表文件的扩展名:.DBF数据库与表:数据库表:归数据库管理的表自由表:不归任何数据库管理的表自由表可以添加到数据库中,成为数据库表;数据库表也可以从数据库中移出成为自由表。二、数据库的操作(一)建立数据库文件->新建->数据库->新建文件->命名->打开数据库设计器(二)打开数据库文件->打开->文件类型->数据库.dbc->打开数据库设计器(三)设置当前数据库“常用”工具栏上数据库下拉列表教学反思:这一章的内容较少,要结合第四章的表的实际操作,与数据库表的建立与使用共同学习。重点掌握数据库的各种菜单操作方式和命令操作方式,会建立、修改、删除、维护数据库,为数据库表的建立打好基础。数据库与表的关系引入?3分钟各种文件的扩展名识记2分钟建立打开与关闭数据库6分钟表与数据操作15分钟熟悉识记各种操作数据库和表的命令15分钟第4章授课章节第4章数据表的创建与操作所需学时讲授学时数:4实践环节学时数:4教学目的与要求目的:掌握数据库的基本操作。要求:1、理解数据库与表的关系;2、掌握数据表的创建与使用3、索引的使用与操作数据4、参照完整性教学重点1、命令操作数据库与表2、主索引的作用3、数据排序教学难点1、多工作区的切换教学方法与手段1、课堂讲授2、上机操作教学内容时间分配第6次课讲授:数据表的基本操作第6次上机:建立、使用、删除数据第7次课讲授:索引和工作区的使用第7次上机:建立、使用、删除索引,切换工作区作业及思考题表间联系与参照完整性;教学的基本内容时间安排教学方法第4章数据表的创建与操作一、表的基本操作(一)菜单操作方式(1)建表结构文件->新建->表->新建文件->命名->打开表设计器(2)录入数据两种方式:直接录入+追加录入浏览状态下,“显示”->“追加方式”(3)显示表结构/修改表结构显示->表设计器(4)表记录的浏览表打开状态下,显示->浏览(5)记录删除/恢复表浏览状态下,表->删除记录/恢复记录(6)物理删除表浏览状态下,表->彻底删除(7)表的打开与关闭打开:文件->打开->文件类型->表.dbf关闭:窗口菜单->数据工作期,选择要关闭的表->[关闭]按钮(二)、命令操作方式:库操作Createdatabase学生管理Opendatabase学生管理Modifydatabase学生管理Setdatabaseto学生管理Setdatabaseto当前数据库为空Closedatabase关闭当前数据库Closeall关闭所有打开库Deletedatabase学生管理recycledeletetable注:.dbc.dct.dcx均删放回收站删表(三)、命令操作方式:表操作Create学生表Append增加记录在表尾Appendblank增加一条空记录Go3Insert[before][blank]Use学生表UseList/displaystructureGo3DisplayListListrecord3Listfor入学成绩>=500Listfor性别=“女”listrestListnext4Modifystructure打开表设计器Replace入学成绩with79for学号=“001Replaceall入学成绩with入学成绩+10Replaceall入学成绩with入学成绩+5for性别=“女”BrowseGo4delete逻辑删除当前记录recall恢复当前记录Deleterecord3deletefor性别=“女”Deleteallrecallfor性别=“女”recallallPackZapGotopSkip3GobottomSkip-2Locatefor性别=“女”continueAddtable自由表名添加自由表到当前数据库Removetable表名deleterecycle‘删除数据库表删除放回收站Deletefilexs.dbf‘删除自由表,必须文件扩展名与表有关的函数(1)记算表中记录个数函数格式:RECCOUNT()功能:测试指定工作区中表的记录个数。说明:做过逻辑删除的记录包括在内。?RECCOUNT()‘结果为34(2)返回表中当前记录号函数格式:RECNO()功能:返回当前记录的记录号。【例】USEStudentGO2?RECNO()‘结果为2(3)表文件首测试函数格式:BOF()功能:测试记录指针是否指向第一条记录之前。(4)表文件尾测试函数格式:EOF()功能:测试记录指针是否指向最后一条记录之后。【例】USEXS?BOF()‘结果为.F..SKIP–1?BOF()‘结果为.T.GOBOTTOM?EOF()‘结果为.F.SKIP‘等价于SKIP1?EOF()‘结果为.T.(5)记录是否有删除标记函数格式:DELETED()功能:测试当前记录是否有删除标记*。有返回.T.,没有.F.【例】DELETERECORD3GO3?DELETED()‘返回.T.(6)测试记录是否找到函数格式:FOUND()功能:测试是否找到符合要求的记录。找到返回.T.,否则返回.F.【例】USEStudentLOCATEFORName=“高涵”IfFOUND()‘如果结果为.t.,那么说明已找到姓名为“高涵”的学生DISPLAYEndif(五)、表的复制复制表结构(将当前表结构复制到指定表中)usestudentcopystructuretotable1use复制后,新表处于关闭状态usetable1liststructureuse2.复制表结构+数据(复制当前表结构+数据)usestudentcopytotable2copytotable3for性别=“女”useUsetable3ListUse3.从其他表文件向表中添加数据从其它表文件添加数据到当前打开的表尾中Usetable1Appendfromtable2(table1table2)ListAppendfromstufields学号,姓名,入学成绩ListUse(六)、工作区与同时使用多个表不引入工作区,先打开A表,当再打开B表时,表A自动关闭。引入工作区,1~32767个,可同时在不同的工作区分别打开多个表。Select1Use表1Select2Use表2Select0《=》select3Use表3Use表4in4Select0表示使用最小的空闲工作区(七)、使用数据工作期数据工作期窗口对多表操作提供了便利条件,它可以方便的打开表、关闭表、浏览表,还可以对已经排序的两个表建立关系。“窗口”->“数据工作期”表之间的临时关系要求两个表有共同的关键字并分别用关键字建立了索引,可以用setrelation命令建立临时关系。Use成绩in1Use学生in2setrelationto学号into1二、表的索引索引是一种快速查询和定位技术。如果要按照特定的顺序定位、查看或者操作表中的记录,可以通过索引完成相关的操作。Visualfoxpro索引是由指针构成的文件,这些指针逻辑上按照索引关键字的值进行排序(升序或者降序),索引文件和表文件分别存储,索引并不会改变表中记录的物理顺序。(一)索引文件类型索引文件有二种单索引文件.idx,用命令建立复合索引文件:独立复合索引文件.cdx,与表名不同,用命令建立结构复合索引文件.cdx,与表名同名,用命令+表设计器均可建立(二)索引类型主索引:主关键字特性,不允许出现重复值或空值,只能在数据库表中创建一个主索引。候选索引:候选关键字特性,不包含Null值或重复值。在数据表和自由表中均可以为每个表建立多个候选索引。唯一索引:只在索引文件中保留第一次出现的索引关键字值。以指定字段的首次出现值为基础,选定一组记录,并对记录进行排序。在数据表和自由表中均可以为每个表建立多个唯一索引。普通索引:可以用来对记录排序和搜索记录,它不强迫记录中的数据具有唯一性。在数据表和自由表中均可以为每个表建立多个普通索引。(三)索引文件的建立表设计器中建立结构复合索引索引选项卡:索引名,类型,表达式,筛选2.命令建立结构复合索引Indexon学号tagxh普通索引Indexon学号tagxhunique唯一索引Indexon学号tagxhcandidate候选索引注:不能建立主索引(四)结构复合索引文件的使用指定索引顺序菜单方式表浏览状态下:“表”->“属性”->p58图2-192.命令方式Setordertoxh‘升序Setordertoxhdesc‘降序使用索引快速查询索引可以提高查询速度,将记录指针快速定位到要查询的记录处,可以用seek命令来快速定位。Seek“0202”删除结构复合索引表设计器中“索引”选项卡中的【删除】按钮2.命令方式DeletetagxhDeletetagall三、数据完整性回到教材第9页(1)实体完整性:保证记录唯一的特性。--主索引和候选索引(2)域完整性:字段类型的定义和字段取值范围的约束规则。--表设计器中建立字段有效性规则:规则,信息,默认值。(3)参照完整性:建立表之间的关联(一)建立关联1.主表/父表辅表/子表主索引/候选索引普通索引方法:鼠标拖动主/候-->普通索引处2.“数据库”菜单->“清理数据库”注:关闭数据库表才能清理3.设置参照完整性更新规则级联限制忽略删除规则级联限制忽略插入规则限制忽略教学反思:这一章是整本书的核心章节,所以放慢速度来讲,力求打好基础,讲懂讲透。对于表的创建,表结构的修改,表记录的录入、修改与删除,不但要掌握界面的操作方式,更主要的,学会用vfp的命令来控制,熟悉各种命令的书写规则,加深对vfp常用表处理命令的记忆与识别,学会插入数据,修改数据和删除数据,对多工作区要有个正确的认识,要理解索引的优点与含义,索引的类型,如何创建结构复合类型索引,以及索引的具体应用。这一章同样要利用教学经典实例,结合书上的数据操作,理解vfp表数据的执行过程,并配合等级考试真题,加深课堂内容的理解。表与数据操作15分钟熟悉识记各种操作数据库和表的命令15分钟运行后查看结果注意和update语句比较物理删除与逻辑删除区别?命令后注意回车执行10分钟删除标记的记录也统计在内注意返回结果为数值型表文件首尾的位置4分钟快速复制表数据或结构3分钟追加记录比较实用多工作区使用5分钟思考:引入多工作区有何好处?如何标记?提问:索引好处?3分钟依次举例让学生看到创建索引的好处18分钟掌握命令创建与删除索引4分钟提问?为何要引入数据完整性?有何优点?详细演示并讲解如何建立表间的关联??15分钟第5章授课章节第5章结构化查询语言所需学时讲授学时数:6实践环节学时数:6教学目的与要求目的:掌握SELECT命令主要短语的用法和作用;掌握SQL语言中记录的插入,修改和删除.要求:1、通过命令窗口及程序窗口编写sql语句创建数据库对象2、熟练用vfp命令和sql语句两种方式操作数据.(插入,修改和删除)3、sql语句对数据综合查询.教学重点1、select查询语句书写规则2、多表连接查询教学难点1、嵌套查询及聚合函数的使用教学方法与手段1、课堂讲授2、上机操作教学内容时间分配第8次课讲授:数据查询(单表+联接查询)第8次上机:编写习题书后程序,并执行第9次课讲授:嵌套查询和数据定义第9次上机:编写书后程序,并做习题第10次课讲授:数据操纵(insert+update+delete),查询和视图第10次上机:编写书后程序,并做习题作业及思考题1、in,notin的使用。3、数组在查询中的应用。教学的基本内容时间安排教学方法第5章结构化查询语言SQL简介StructuredQueryLanguage结构化查询语言,是关系数据库的标准语言。SQL语言的基本功能:数据查询SELECT数据定义CREATE、DROP、ALTER数据操纵INSERT、UPDATE、DELETE数据控制GRANT、REVOKE一、数据查询功能SQL语言的查询功能由SELECT命令完成。SELECT[ALL|DISTINCT][TOPN[PERCENT]]要查询的数据FROM数据源1[连接方式JOIN数据源2][ON连接条件][WHERE查询条件][GROUPBY分组字段[HAVING分组条件]][ORDERBY排序选项1[ASC|DESC][,排序选项2[ASC|DESC]...]][输出去向]1基于单个表的查询【例4.1】查询教师情况表中教师的姓名、性别和职称信息。Select姓名,性别,职称from教师情况表【例4.2】查询教师情况表中的所有字段信息。Select*from教师情况表或Select*from教学管理数据库!教师情况表【例4.3】查询教师情况表中的职称信息Selectdistinct职称from教师情况表【例4.4】查询教师情况表中职称为讲师的信息。Select*from教师情况表where职称=“讲师”【例4.5】查询教师情况表中职称为讲师的男职工信息。Select*from教师情况表where职称=“讲师”and性别=“男”【例4.6】查询教师情况表中的所有信息,并按照出生日期升序排序输出。Select*from教师情况表orderby出生日期【例4.7】查询教师情况表中姓名、职称和出生日期,并按照职称降序、出生日期升序排序输出。Select姓名,职称,出生日期from教师情况表orderby职称desc,出生日期【例4.8】查询教师情况表中姓名和出生日期的信息,将查询结果按照出生日期升序排序,并只显示查询结果的前3条记录。Selecttop3姓名,出生日期from教师情况表Oderyby出生日期【例4.9】查询教师情况表中的职工人数。Selectcount(姓名)from教师情况表或Selectcount(教师编号)from教师情况表或Selectcount(*)from教师情况表Selectcount(教师编号)as教工人数from教师情况表Selectcount(教师编号)教工人数from教师情况表【例4.10】查询教师情况表中男、女职工的人数信息。Select性别,count(*)教工人数from教师情况表groupby性别【例4.11】查询教师情况表中各种职称的人数信息。Select职称,count(*)人数from教师情况表;groupby职称【例4.12】查询教师情况表中职称人数在3人以上的信息,并按照人数降序输出。Select职称,count(*)人数from教师情况表groupby职称havingcount(*)>=3;Orderby人数desc或Orderby2desc【例4.13】查询教师情况表中的所有信息,并将查询结果保存在永久表table1中。Select*from教师情况表intodbftable1Select*from教师情况表intotabletable1【例4.14】查询教师情况表中的所有信息,并将查询结果保存到临时表temp中。Select*from教师情况表intocursortemp【例4.15】查询教师情况表中男职工的姓名、性别、职称、基本工资情况,并将查询结果保存到文本文件mn中。(.txt)Select姓名,性别,职称,基本工资from教师情况表where性别=“男”tofilemn【例4.16】查询教师情况表中的1990年之前参加工作的职工姓名、工作日期、基本工资,将查询结果在数组AX中。(二维)Select姓名,工作日期,基本工资from教师情况表where工作日期<{^1990/01/01}intoarrayax注:如果查询结果只有一个值,则存至ax(1,1)中,二维数组。2联接查询基于多表间的查询,必须指定多表之间的联接条件。【例4.17】查询学生学号、姓名和各课程的课程号及成绩。Select学生情况表.学号,姓名,课程号,成绩;from学生情况表,学生成绩表;Where学生情况表.学号=学生成绩表.学号或Selectx.学号,姓名,课程号,成绩;from学生情况表x,学生成绩表y;wherex.学号=y.学号【例4.18】查询选修了”计算机基础”课程的学生姓名、课程名和成绩。Select姓名,课程名称,成绩;from学生成绩表x,学生情况表y,课程情况表z;wherex.学号=y.学号andx.课程号=z.课程号;and课程名称=“计算机基础”联接包括4种:左联接leftjoin右联接rightjoin全联接fulljoin内联接innerjoin(1)左联接–左表全部记录+右表匹配记录,不匹配用null联接。Selectxs.*,课程号,成绩fromxsleftjoincjOnxs.学号=cj.学号(2)右联接–右表全部记录+左表匹配记录,不匹配用null联接。Selectxs.*,课程号,成绩fromxsrightjoincjOnxs.学号=cj.学号(3)全联接–俩表全部记录,不匹配用null联接。Selectxs.*,课程号,成绩fromxsfulljoincjOnxs.学号=cj.学号(4)内联接–只显示满足条件的记录Selectxs.*,课程号,成绩fromxsinnerjoincjOnxs.学号=cj.学号【例4.17】查询学生学号、姓名和各课程的课程号及成绩。Selectx.学号,姓名,课程号,成绩;from学生成绩表xinnerjoin学生情况表y;onx.学号=y.学号或Selectx.学号,姓名,课程号,成绩from学生成绩表x,学生情况表ywherex.学号=y.学号【例4.18】查询选修了”计算机基础”课程的学生姓名、课程名和成绩。Select姓名,课程名称,成绩;from学生情况表xinnerjoin学生成绩表y;innerjoin课程情况表z;onz.课程号=y.课程号;onx.学号=y.学号;Where课程名称=“计算机基础”或Select姓名,课程名称,成绩;from学生成绩表x,学生情况表y,课程情况表z;wherex.学号=y.学号andz.课程号=x.课程号;and课程名称=“计算机基础”3嵌套查询一个查询中完整地包含另一个完整的查询命令。内外层查询可以是同一个表,也可以是不同的表。【例4.19】查询入学成绩最高的学生信息。Select学号,姓名,入学成绩from学生成绩表where入学成绩=;(Selectmax(入学成绩)from学生情况表)【例4.20】查询已选课的学生信息。Select*from学生情况表where学号in(Selectdistinct学号from学生成绩表)【例4.21】查询未选课的学生信息。Select学号,姓名from学生情况表where学号notin;(Selectdistinct学号from学生成绩表)【例4.22】查询入学成绩低于500分的学生的学号和选课的课程数目。Select学号,count(课程号)选课门数from学生成绩表where学号in;(select学号from学生情况表where入学成绩<500)groupby学号【例4.23】查询学生情况表中入学成绩低于平均入学成绩的学生信息。Select*from学生情况表where入学成绩<(Selectavg(入学成绩)from学生情况表)二、数据定义功能1.表的定义CREATETABLE|DBF<表名>[FREE](字段名1字段类型[(宽度[,小数位数])][NULL|NOTNULL][CHECK表达式[ERROR字符型表达式]][DEFAULT默认值][PRIMARYKEY|UNIQUE][,字段名2...])【例4.24】建立数据库“学生.dbc”,建立数据库表“STU.dbf”Createdatabase学生Createtablestu(学号C(4),姓名C(8),;出生日期D,入学日期D,入学成绩N(5,1))或CreateDBFstu(学号C(4),姓名C(8),出生日期D,;入学日期D,入学成绩N(5,1))Createdbfstu1(序号C(2)primarykey,性别C(2)check性别="男"or性别="女"error"性别只能是男或女",入学成绩n(3)check入学成绩>400error"成绩>400"default450)2.表结构的修改1)格式1ALTERTABLE表名[DROP[COLUMN]字段名][SETCHECK表达式[ERROR字符型表达式]][DROPCHECK][ADDPRIMARYKEY表达式][DROPPRIMARYKEY][RENAMECOLUMN原字段名TO新字段名](1)增加字段Altertablestuadd民族C(20)Altertablestuadd性别C(2)check性别$"男女";error"性别只能是男或女"default"女“(2)删除字段Altertablestudrop入学日期Altertablestudropcolumn出生日期(3)重命名字段Altertablesturename学号to学生学号Altertablesturenamecolumn照片to一寸照片(4)修改字段Altertablestualter学号C(10)Altertablestualter学号C(10)primarykeyAltertablestualter入学成绩N(3)check入学成绩>400(5)增加字段级有效性Altertablestualter入学成绩setdefault450Altertablestualter入学成绩setcheck入学成绩>400error“!”注:setdefault和setcheck二者一次只能修改其中的一个(6)删除字段级有效性Altertablestualter入学成绩dropdefaultAltertablestualter入学成绩dropcheck注:dropdefault和dropcheck二者一次只能删除其中的一个,规则和默认值是一起删掉的。(7)修改表级有效性Altertablestusetcheck入学日期>出生日期error“。。。”Altertablestudropcheck【例4.25】删除STU表中的姓名字段。Altertablestudropcolumn姓名【例4.26】将STU表中的”入学成绩”字段改为”成绩”字段。altertablesturenamecolumn入学成绩to成绩【例4.27】将STU表设置表一级有效性规则,规定入学日期字段的值必须大于出生日期字段的值,不符合规定时,显示“入学日期必须大于出生日期”。altertablestusetcheck入学日期>出生日期Error“入学日期必须大于出生日期”【例4.28】删除STU表的表一级有效性规则。altertablestudropcheck2)格式2ALTERTABLE表名ADD|ALTER[COLUMN]字段名字段类型[(字段宽度[,小数位数])][NULL|NOTNULL][CHECK表达式[ERROR字符型表达式]][DEFAULT默认值][PRIMARYKEY|UNIQUE]【例4.29】为STU表增加一个性别字段,字段类型为字符型,宽度为2altertablestuadd性别C(2)3)格式3ALTERTABLE表名ALTER[COLUMN]<字段名>[SETDEFAULT默认值][SETCHECK表达式[ERROR字符型表达式]][DROPDEFAULT][DROPCHECK]【例4.30】修改或定义STU表成绩字段的有效性规则。altertablestualter成绩Setcheck成绩>450error“成绩必须在450分以上”【例4.31】删除STU表中成绩字段的有效性规则。altertablestualter成绩dropcheck3.表的删除DROPTABLE表名只删除dbf文件。Droptablestu三、数据操纵功能1.插入记录INSERTINTO表名[(字段名表)]VALUES(表达式表)INSERTINTO表名FROMARRAY数组名【例4.32】在STU表中插入一条记录。INSERTINTOSTUVALUES(“1020”,”李丹”,{^1985/10/12},{^2001/9/12},480,“男”)【例4.33】对STU表只插入姓名和性别字段的值。INSERTINTOSTU(姓名,性别)VALUES(“可可”,”女”)【例4.34】用一段程序来说明insertinto...fromarray的使用方式UsestuListSelect*fromstuintoarrayapInsertintostufromarrayapListUse2.更新记录UPDATE表名SET字段名1=表达式1[,字段名2=表达式2...][WHERE条件]UPDATESTUSET成绩=550【例4.36】将STU表中男同学记录的成绩值增加50%。UPDATESTUSET成绩=成绩*1.5where性别=“男”3.删除记录–逻辑删除DELETEFROM[WHERE条件]【例4.37】删除STU表中学号为1020的记录。Deletefromstuwhere学号=“1020”教学反思:由于这一章在等级考试中占有的比重较大,也是学习数据库类课程的重点内容,所以我加大了学时,由浅入深,重点讲解。结合书上的实例,对select各个子句的逐层深入学习,让学生自己分析,自己总结,写出正确的select语句对数据完成查询。充分调动了学生的学习积极性,采用了比赛的形式,看谁编写的select语句能满足查询要求,如何分组,何时分组,怎样筛选等等,通过正确合理的引导,让学生自己发现答案,取得了良好的教学效果。在制作幻灯片的时候,加入幻灯片切换效果的内容,留出学生思考的空间,互动教学+启发引导,达到了预期的目的。掌握select命令10分钟举例书写满足查询要求的select语句18分钟注意top3的位置5分钟注意分号;什么时候加?什么时候不加?例题讲解13分钟连接查询思想:两个表要有连接字段8分钟4分钟嵌套查询思想?查询中有查询注意内层查询要有括号!12分钟表结构的定义格式6分钟表结构的修改8分钟有效性3分钟理论联系实际格式的选择删除表3分钟记录的随意录入查看结果10分钟总结5分钟第6章授课章节第6章VisualFoxPro程序设计所需学时讲授学时数:4实践环节学时数:4教学目的与要求目的:了解结构化程序设计思想,掌握顺序、选择、循环结构的程序设计方法。要求:1、掌握程序文件的建立、修改、执行方法。2、掌握顺序、循环结构。3、理解常用算法。教学重点1、程序设计的思路2、选择、循环程序设计方法教学难点1、多重循环教学方法与手段1、课堂讲授2、上机操作教学内容时间分配第11次课讲授:顺序、选择结构程序的建立和执行第11次上机:编写习题书后程序,并执行第12次课讲授:循环结构,变量的作用域第12次上机:编写书后程序,并做习题作业及思考题1、loop,exit语句的使用3、程序之间的联系教学的基本内容时间安排教学方法第6章VisualFoxPro程序设计VisualFoxPro系统的3种操作方式:菜单方式—交互方式命令方式—交互方式程序方式—自动化方式结构化程序设计方法:程序结构清晰,易于阅读和理解,便于调试和维护。它的思想是:自顶向下逐步求精模块化一、程序设计概述(一)程序的概念程序就是能够完成一定任务的命令的有序集合。程序方式,就是先根据任务的要求确定能完成该任务的命令序列,即编写程序;然后在磁盘上建立包含程序代码的程序文件;最后通过运行程序,让系统自动执行程序代码,完成该任务,输出结果。程序通常以文件形式存放在磁盘上,在VisualFoxPro中,程序文件也称为命令文件,其扩展名为.prg。程序文件一旦建立,可以被多次重复执行。(二)、程序的控制结构结构化程序设计有三种基本控制结构语句语句1语句2语句3语句块2语句块1条件.T..F.循环体循环条件件.T..F.顺序结构选择结构循环结构(三)、程序文件的建立1.程序文件的建立单击“文件”下拉菜单中的“新建”命令,或者单击常用工具栏上的“新建”按钮;在“新建”对话框中选择文件类型为“程序”,然后单击“新建文件”按钮,打开编辑窗口。输入程序内容后保存,默认扩展名是.prg。ModifyCommand<程序文件名>说明:⑴程序文件名必须以字母(包括汉字)、下划线开头,由字母、数字、下划线组成。⑵执行Modify命令时,文件名前可以加路径,系统首先在指定路径或当前路径下查找命令中指定的文件,如果未找到,则建立新文件,进入编辑窗口;如果找到了命令中指定的文件,系统自动将该文件调入内存并显示在编辑窗口中。(3)一行只能写一条命令,写完要输入回车,表示命令结束。(4)一条命令的长度不得超过2048个字符。为便于阅读,可以将长的命令分成若干行书写,但要在行尾加上;,表示下一行是本行的继续。2.程序文件的调用执行单击“程序”菜单中的“运行”命令,或者!按钮Do<程序文件名>功能:将磁盘上指定的程序文件调入内存并运行。说明:程序执行过程中,若发生错误,系统将显示出错信息,用户可返回编辑状态进行修改。3.程序文件的修改(1).菜单方式文件->打开->文件类型选程序->找到程序文件->确定(2).命令方式MODIFYCOMMAND程序文件名4.注释命令为增加程序的可读性,常常要在程序中加入一些注释,对程序中使用的变量、算法进行说明。注释仅起说明作用,不参与程序运行。VisualFoxPro提供了2种注释的方法:在程序行开头加*或Note,表示本行为注释行。命令行中字符&&后面的部分为注释行。二、顺序结构不需要特定的语句来实现,它只需先把处理过程的各个步骤详细列出,然后把有关命令按照处理的逻辑顺序自上而下地排列起来便可。UsestudentInput“请输入要显示的记录号”tordGordDisplayUse顺序结构举例:编写程序求半径为3的圆周长和面积。在打开的程序编辑窗口中,输入下列程序行:r=3C=2*pi()*rS=pi()*r^2?"周长=",c?"面积=",s三、选择结构1.双分支语句格式:If<条件><语句块1>[Else<语句块2>]Endif功能:首先对<条件>进行判断,判断结果为逻辑值.T.时,就执行<语句块1>,然后执行Endif后边的语句;判断结果为.F.时,如果有ELSE选项,则执行<语句块2>,如果没有,则执行Endif后的语句。说明:If、Else和Endif必须配对使用,且这三条子句应各占一行;【例】:键盘输入一个实数,计算并输出其绝对值。Input‘请输入一个实数:'ToxIfx<0?"其绝对值为:",-xElse?"其绝对值为:",xEndif【例3.3】成绩值超过85分(包括85分),则输出“优秀”,否则输出“良好”。Input“输入学生成绩”tomarIfmar>=85?”优秀
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宜昌市枝江市2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 威海市乳山市2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 鹤壁市鹤山区2025-2026学年第二学期四年级语文第六单元测试卷(部编版含答案)
- 昌都地区洛隆县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 赤峰市红山区2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 曲靖市陆良县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 赣州市兴国县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 鸡西市麻山区2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 广告招商方案
- 深度解析(2026)《CBT 3659-1994压载水遥控阀组控制装置技术条件》:从标准规范到未来舰船智能化应用前瞻
- 关于高考评价体系
- 建筑地基处理技术规范DBJ-T 15-38-2019
- 《燃煤火力发电企业设备检修导则》
- 油田地面工程简介
- 驾照体检表完整版本
- 商铺出租可行性方案
- 2023年非车险核保考试真题模拟汇编(共396题)
- 中国主要地质灾害
- 2022-2023年明纬开关电源手册
- 数据密集型科学研究范式课件
- JJF 2020-2022 加油站油气回收系统检测技术规范
评论
0/150
提交评论