数据库原理与应用数据库原理与应用主讲教师:陈伟联系方式:18674783933VFP及其应用系统开发(第二版)史济民、汤观全制作清华大学出版社出版发行2007年1月VFP及其应用系统开发(第二版)课程介绍课程介绍课程性质:计算机数据库公共课先修课程:大学计算机基础计算机程序设计基础学时:48(讲课36,上机12,考核2)学分:3主教材:史济民汤观全张露编《VisualFoxPro及其应用系统开发》(第二版).北京.清华大学出版社.2007年3月.教学内容主教材简介经过10年升级,VisualFoxPro已经成为集成了大量工具的关系数据库系统开发环境。本书前身曾获得教育部2002年普通高校优秀教材一等奖。第二版全面介绍VFP6.0的单机应用与网络应用,简要介绍VFP9.0的新功能,同时加强关系数据库的基础理论。既完整讲述了一个实际系统的开发过程,又结合实例向读者展示了包括数据库设计、SQL、可视化设计工具等在内的当代最常见的数据库开发技术。并配套有《题解与实验指导》课程教学内容绪论:数据库系统概述(授课1学时)上篇:语言基础(授课10学时)中篇:程序设计(授课17学时)下篇:系统开发(授课8学时)教学重点课程教学重点关系数据库管理系统和关系数据库应用系统的基本概念基于对象的VFP可视化程序设计技术设计器、向导、生成器等快速开发工具的应用VFP应用系统开发步骤与方法客户/服务器应用程序开发关系数据库基本原理VisualFoxPro9.0简介学时分配上课学时分配章节内容授课学时0.绪论:数据库系统概述11.初识VisualFoxPro12.表的基本操作23.查询与统计44.程序设计初步35.菜单设计26.表单设计基础37.表单控件设计68.表单高级设计39.报表设计310.系统开发实例311.客户/服务器应用程序开发212.关系数据库基本原理213.VisualFoxPro9.0简介1总学时48授课36上机12考核2上机实验上机实验学时分配上机内容学时•基础知识2•表的建立与维护2•查询与统计3•结构化程序2•菜单设计2•表单设计5•报表设计2•应用程序编译与发布2•关系运算与集合运算1•远程视图1考核方式考核方式绪论•到课率与作业30%•上机实验及完成文档40%•期末笔试30%绪论:数据库系统概述0.1数据库的基本概念数据库系统的特点数据的结构化数据共享数据独立性可控冗余度序号文件应用系统数据库系统1文件中的数据由特定的用户专用库内数据由多个用户共享2每个用户拥有自己的数据,导致数据重复存储原则上可消除重复。为方便查询允许少量数据重复存储,但冗余度可以控制3数据从属于程序,二者相互依赖数据独立于程序,强调数据的独立性4各数据文件彼此独立,从整体看为“无结构”的各文件的数据相互联系,从总体看是“有结构”的数据库系统与一般文件应用系统性能对照数据库系统的分代格式化数据库系统关系型数据库系统RDBS对象-关系数据库系统ORDBS数据库系统的分类面向对象数据库分布式数据库演绎数据库数据库0.2数据库管理系统数据库管理系统(DBMS)的基本功能数据定义功能数据操作功能控制和管理功能数据通信功能数据库管理系统的发展现状0.3数据库系统的应用模式单用户应用模式多用户集中应用模式客户机/服务器应用模式TT∶∶数据库主机T:终端数据库文件服务器WW∶∶∶W:工作站计算机(a)主机-终端环境(b)资源共享局域网环境图0.2集中式多用户数据库0.4数据库应用系统与开发环境SQL及其接口RDBMS的常用语言RDBMS的编程接口典型的RDBAS开发环境图0.5ODBC的体系结构示例VFPDBMS……SQLServerDBMS数据源数据源ODBC应用程序ODBC应用程序……ODBC驱动程序管理器ODBCAPI函数SQLServer驱动程序……VFP驱动程序上篇——语言基础1.初识VisualFoxPro2.表的基本操作3.查询与统计本篇描述了“以界面操作为主、命令方式为辅的”VFP交互操作方式。第1章概述了设计器、项目管理器等辅助工具,展示了VFP的环境特色;第2章侧重介绍表的建立与维护;第3章主要讨论对表数据的查询与统计。VFP支持交互操作与程序执行两类工作方式,前者是后者的基础。学好本篇的内容,对初学者有重要意义。第1章初识VisualFoxProVisualFoxPro的发展与特点–VisualFoxPro的产生–VisualFoxPro的新版本–VisualFoxPro的特点•功能强大的自含型命令式开发语言•支持面向对象的程序设计•通过COM组件实现应用集成•支持网络应用•大量使用可视化的辅助设计工具1.2~1.3VFP的界面组成、命令与工作方式VFP的窗口程序窗口命令窗口工具窗口窗口中的图标菜单对话框命令格式useSB&&打开名称为SB(设备)的表文件list&&列表显示当前表(即SB)的所有记录listfor价格10000&&只显示价格低于1万元的设备交互操作方式与程序执行方式1.4VisualFoxPro的设计与管理工具向导表向导报表向导设计器表设计器表单设计器生成器表单生成器文本框生成器项目管理器项目管理器:VFP的控制中心集中管理项目中的数据、对象目录树结构多种功能按钮支持项目建立数据词典第2章表的基本操作2.1表的建立与修改设备表编号名称启用日期价格部门主要设备备注商标016-1车床03/05/9062044.6121.T.Memogen016-2车床01/15/9227132.7321.T.memogen037-2磨床07/21/90241292.1222.T.memogen038-1钻床10/12/895275.0023.F.Memogen100-1微机08/12/978810.0012.T.memoGen101-1复印机06/01/9210305.0112.F.memogen210-1轿车05/08/95151000.0011.F.memoGen有关命令创建设备表createsb打开设备表Usesb浏览、修改记录browse修改结构Modifystructure关闭当前表use设备表的结构Browse命令的浏览窗口“SB.商标”通用型字段窗口2.2表达式常量数值型常量例如10,-100,2.81828,字符型常量例如微机,'PC机',3.14159日期型和日期时间型常量例如{06/30/1999},{9/15/998:45},{^2001/08/30}设置通常的日期格式,命令SETSTRICTDATETO0,设置严格的日期格式,命令SETSTRICTDATETO1逻辑型常量真和假两种值,.T..F.变量内存变量s='VFP'STORE2*4TOn1,n2,n3?'S=',s&&显示S=VFPDIMENSIONx(3),a(2,3)&&定义数组a(1,3)=5&&数组元素赋值字段变量USEsb?名称&&SB.DBF打开后记录指针指向第1个记录,显示车床GO5&&将记录指针指向第5个记录(GO命令参阅2.3.1节)?名称系统变量表2.6VFP算术、关系、逻辑运算符运算优先级运算符意义运算举例(注解表示显示结果)算术8()圆括号7^或**乘方?3^2&&96×乘/除%取模:取两数相除的余数?15%4&&35+加-减关系4小于?6354&&.F.=小于等于?{01/01/92}={01/01/92}&.T.大于?ABCAAAA&&.T.=大于等于?大专=大学&&.T.=相等:串比较时串首同就得真?ABC=AB&&.T.==完全相等:两串全同才得真?ABC==AB“&&.F.、#或!=不相等?.T..F.&&.T.$包含:左串是右串子串才得真?BC$ABCD&&.T.逻辑3NOT或!非:结果是右边逻辑值的反?NOTBC$ABCD&&.F.2AND与:两边都真才得真?.T.ANDABCAB&&.F.1OR或:两边有一为真就得真?.T.OR4=5&&.T.表2.8字符处理函数函数功能例子(注解表示结果)SUBSTR(字符表达式,数值表达式1[,数值表达式2])返回字符表达式中第数值表达式1位起的长度为数值表达式2的子串?SUBSTR(ABCD,2,2)&&BCLEFT(字符表达式,数值表达式)返回字符表达式左起数值表达式个字符的子串?LEFT(ABCD,2)&&ABRIGHT(字符表达式,数值表达式)返回字符表达式右起数值表达式个字符的子串?RIGHT(ABCD,2)&&CDLEN(字符表达式)返回字符串的长度?LEN(ABCD)&&4AT(字符表达式1,字符表达式2[,数值表达式])返回字符串字符表达式1在字符表达式2中第数值表达式次出现的位置?AT(BC,ABCD,1)&&2ALLTRIM(字符表达式)删除字符串前导和末尾的空格?ALLTRIM(ABCD)&&ABCDSPACE(数值表达式)返回数值表达式个空格?SPACE(4)&&UPPER(字符表达式)将小写字母转换为大写?UPPER(aBc)&&ABCLOWER(字符表达式)将大写字母转换为小写?LOWER(aBc)&&abcVAL(字符表达式)将字符串转换为数值?VAL(3.14)&&3.14STR(数值表达式1[,数值表达式2[,数值表达式3]])将数值数值表达式1转换为长度为数值表达式2位,具有数值表达式3位小数的字符串?STR(3.14,5,1)&&3.1CHR(数值表达式)从数值表达式表示的ASCII码返回字符?CHR(65)&&AASC(字符表达式)返回字符的ASCII码值?ASC(A)&&652.3VFP命令的常用子句命令格式:LIST|DISPLAY[[FIELDS]表达式表][范围][FOR条件][WHILE条件][OFF][TOPRINT[PROMPT]|TOFILE文件]范围子句:ALL所有记录NEXTN从当前记录起的N个记录RECORDN第N个记录REST从当前记录起到最后一个记录止的所有记录例:USEsbGO2&&记录指针指向第2个记录LISTNEXT5FOR价格10000&&显示第2,3,6等3个记录LISTRECORD5FIELDS编号,名称,价格USEsbLISTNEXT3&&(1)LIST部门,编号,名称,备注FOR部门=21&&(2)LIST编号,名称,价格*0.9,启用日期FORYEAR(启用日期)1995OFF&&(3)2.4表的维护命令1.表的复制COPYFILE文件名1TO文件名2COPYTO文件名[范围][FOR条件][WHILE条件][FIELDS字段名表|FIELDSLIKE通配字段名|FIELDSEXCEPT通配字段名][[TYPE][SDF|XLS|DELIMITED[WITH定界符|WITHBLANK|WITHTAB]]]COPYSTRUCTURETO文件名[FIELDS字段名表]例:USE&&若SB.DBF是打开的,则须关闭它COPYFILESB.DBFTOSB1.DBF&&复制得SB1.DBFCOPYFILESB.FPTTOSB1.FPT&&复制得SB1.FPTUSEsbCOPYTOa1&&对sb.dbf原样复制,同时生成A1.DBF与A1.FPTCOPYTOa2FIELDS名称,编号FORLEFT(部门,1)=“2”LIST&&显示SB.DBF的记录数据USEa2LIST&&显示A2.DBF的记录数据USEsbCOPYTOb1NEXT3SDF&&以系统数据格式复制,产生文本文件B1.TXTCOPYSTRUCTURETOsb2FIELDS名称,价格,编号,备注2.表数据的替换REPLACE字段名1W