9/29/20221Visual FoxPro 数据库管理系统教程教学课件教学课件SDFI计算机计算机应用教研室应用教研室9/29/20222第一章第一章 Visual FoxPro根底根底第二章第二章 数据库根底知识数据库根底知识第三章第三章 数据库、表的根本操作数据库、表的根本操作第四章第四章 数据查询与视图数据查询与视图第五章第五章 结构化查询语言结构化查询语言 SQL第六章第六章 程序设计根底程序设计根底第七章第七章 面向对象的程序设计面向对象的程序设计9/29/202239/29/20224第 一 章Visual FoxPro根底教学课件教学课件SDFI计算机计算机应用教研室应用教研室9/29/202251.1 VFP系统概述系统概述1.2 数据类型数据类型1.3 常量、变量与函数常量、变量与函数1.4 运算符与表达式运算符与表达式1.5 常用函数常用函数1.6 系统设置命令系统设置命令9/29/202261.1.1 Visual FoxPro 简介简介一、一、Visual FoxPro的开展的开展1980 1984年年,Ashton-Tate公司先后推出公司先后推出应用于微型机的应用于微型机的 dBase II、dBase III;1986 1988年年,Fox Software公司先后推出公司先后推出与与 dBase 完全兼容的完全兼容的 FoxBase 1.0、FoxBase 2.1+;19891991年年,陆续推出陆续推出FoxPro 1.0、FoxPro 2.0;1993年年,微软推出微软推出FoxPro 2.5(Dos/Windows版版);19951998年年,陆续推出陆续推出 Visual FoxPro 3.0、4.0、5.0、6.0 中文版中文版;2003年年,推出推出 Visual FoxPro 8.0 英文版英文版.9/29/20227二、二、Visual FoxPro 的特点的特点1.良好的用户界面良好的用户界面;2.增强的数据库管理增强的数据库管理;3.集中的应用程序开发环境集中的应用程序开发环境;4.面向对象的程序设计面向对象的程序设计;5.客户客户/效劳器解决方案效劳器解决方案;6.对对 Internet 的支持的支持;7.程序间的互操作性程序间的互操作性;8.对对2000年日期的支持年日期的支持;9.兼容并升级早期的兼容并升级早期的 Xbase 数据库数据库.三、性能指标三、性能指标(教材教材 P.xx 表表1-1)四、工作环境四、工作环境(教材教材 P.xx)9/29/20228一、一、Visual FoxPro 的安装的安装1.首次安装:2.非首次安装:3.网络安装:二、二、Visual FoxPro 的启动与退出的启动与退出9/29/20229菜单栏菜单栏工作区工作区工具栏工具栏命令窗口命令窗口状态栏状态栏一、一、Visual FoxPro 的工作方式的工作方式1.交互方式:交互方式:菜单方式菜单方式,命令方式命令方式;2.自动方式:自动方式:程序方式程序方式9/29/202210二、二、Visual FoxPro 的菜单系统的菜单系统1.常用菜单常用菜单:文件文件;编辑编辑;格式格式;帮帮助助2.VFP 系统菜单系统菜单(见教材见教材P.XP.XX 表表1.2表表1.5)显示显示;工具工具;程序程序;窗口窗口3.其它菜单其它菜单:系统自动显示系统自动显示/隐藏的菜单隐藏的菜单,如如“表表单单,“工程等工程等.三、三、Visual FoxPro 工具栏工具栏默认显示默认显示“常用工具栏常用工具栏,其它见教材其它见教材 P.XX 表表1-6.四、命令窗口、状态栏和工作区四、命令窗口、状态栏和工作区1.命令窗口命令窗口:输入输入,编辑编辑,执行执行Visual FoxPro命令命令;2.状态栏状态栏:显示帮助或提示信息显示帮助或提示信息;3.工作区工作区:显示显示VFP各工作窗口各工作窗口,表或内存中的表或内存中的数据数据.9/29/2022111.使用使用“选项对话框选项对话框(教材教材P.xx 图图1-8)翻开翻开“选项对话框选项对话框:单击单击“工具工具“选项选项 命令命令;默认目录默认目录:VFP 建立的文件自动保存在默认目录中建立的文件自动保存在默认目录中.设置设置:单击单击“文件位置文件位置“默认目录默认目录“修改修改按钮按钮“使用默认目录复选框使用默认目录复选框输入输入|选择选择完整路径完整路径“确定按钮确定按钮.(教材教材P.xx 图图1-9)其它选项卡及其设置功能见教材其它选项卡及其设置功能见教材 P.xx 表表1-7.2.环境设置的保存环境设置的保存9/29/202212 临时设置临时设置:修改仅保存到内存中修改仅保存到内存中,退出退出VFP 会丧失所有临时设置会丧失所有临时设置;再启动再启动 VFP 即恢复即恢复 系统默认值系统默认值.永久设置永久设置:修改保存到注册表中而成为系统修改保存到注册表中而成为系统 默认值默认值.操作操作:环境设置修改后环境设置修改后,单击单击“设置设置 为默认值为默认值“确定确定.一、一、Visual FoxPro 的命令格式的命令格式 VFP 中中,可在命令窗口中输入可在命令窗口中输入,执行命令执行命令,控控制系统运行制系统运行,实现数据库管理与数据处理等操实现数据库管理与数据处理等操作作.也可将命令编制成程序文件来执行操作也可将命令编制成程序文件来执行操作.9/29/2022131.命令格式命令格式:范围范围 Fields ;For|While To 目标目标 2.命令举例命令举例:P.33 Display All Fields jsbh,xm,xb;(命令动词命令动词)(范围范围)(表达式表表达式表)For xb=“男男 To Print (条件条件)(目标目标)3.命令说明命令说明:9/29/202214 必不可少必不可少,它规定了要完成或它规定了要完成或 实现的操作与功能实现的操作与功能;中为可选项中为可选项,是由功能短语和表达式等是由功能短语和表达式等 组成的子句组成的子句,用于说明或限定命令操作的用于说明或限定命令操作的 对象对象,范围范围,条件等条件等;大多数命令和功能短语只需输入前四个大多数命令和功能短语只需输入前四个 字母字母;除字符串外除字符串外,其他符号均为其他符号均为 ASCII 码字符码字符,字母不分大小写字母不分大小写;子句顺序可任意子句顺序可任意,用空格分隔用空格分隔;表达式表中表达式表中 各项用各项用“,分隔分隔;用用“分隔的子句可分隔的子句可选用选用 其一其一;9/29/202215 常用子句简介常用子句简介:范围范围:设置记录设置记录(行行)的操作范围的操作范围.四项四项:All:对数据表中的所有记录进行操作对数据表中的所有记录进行操作;Next :从当前记录起从当前记录起,对后面对后面 n 个个 记录进行操作记录进行操作;Record :对第对第 n 个记录进行操作个记录进行操作;Rest:对从当前记录起直到最后一条记录对从当前记录起直到最后一条记录 的假设干记录进行操作的假设干记录进行操作.Fields :限定操作内容或限定操作内容或公式公式,可含多项可含多项,用用“,分隔分隔,最后一项后面最后一项后面无符号无符号;9/29/202216 For|While :根据条件确定如何操作根据条件确定如何操作.For :对指定范围内符合条对指定范围内符合条件的记录进行操作件的记录进行操作,默认范围默认范围 All;While :从当前记录起对符从当前记录起对符合条件的记录进行操作合条件的记录进行操作,遇到不符合条遇到不符合条件的记录即停止件的记录即停止.To :指定命令操作对象输送到指定命令操作对象输送到的位置的位置,默认输出到屏幕默认输出到屏幕;Off:设显示数据时不显示记录号设显示数据时不显示记录号,默认默认显示记录号显示记录号.9/29/202217 Visual FoxPro 系统提供了面向对象的程序系统提供了面向对象的程序设计方法和工具设计方法和工具,包括各种包括各种 向导向导(Wizards),设计器设计器(Designers)和和 生成器生成器(Builders).根本功能见教材根本功能见教材 P.xxP.xx 的表的表1-8表表1-10.使用方法将在后续章节中详细介绍使用方法将在后续章节中详细介绍.?第1.1节 End?9/29/2022181.字符型字符型(Character)由英文字母、数字、标点符号、空格、中文字由英文字母、数字、标点符号、空格、中文字符和其他可打印符号组成符和其他可打印符号组成.长度长度:常量常量,变量变量254 B.2.数值型数值型(Numeric)由由数字数字(0 9),正负号正负号(+,-),小数点小数点(.)组成组成,用于表示数值的大小用于表示数值的大小.(取值范围见取值范围见 P.xx)长度长度:内存中为内存中为 8 B;字段变量中字段变量中20位位.3.货币型货币型(CurrencY)专用表示货币的数值型数据专用表示货币的数值型数据,需加需加货币前缀符货币前缀符$;长度长度:8 B.(取值范围见取值范围见 P.xx)9/29/2022194.日期型日期型(Date)由由年年,月月,日日组成的数据组成的数据.长度长度:8 B;取值范围取值范围:0001-01-01 9999-12-31.5.日期时间型日期时间型(DateTime)由由年年,月月,日日加加时时,分分,秒秒组成的数据组成的数据.长度长度:8 B;时间取值范围时间取值范围:00:00:00 am 11:59:59 pm6.逻辑型逻辑型(Logical)具有逻辑具有逻辑 真值真值.T.和逻辑和逻辑 假值假值.F.;长度长度:1 B.7.备注型备注型(Memo)仅用于数据表仅用于数据表的字符型数据的字符型数据.表中长度表中长度:4 B;实实际内容保存在与际内容保存在与表文件同名表文件同名,扩展名扩展名.fpt 的备注的备注文件文件中中,长度取决于计算机系统存储空间大小长度取决于计算机系统存储空间大小.9/29/2022208.通用型通用型(General)仅用于数据表仅用于数据表中中,可存储如图片可存储如图片,图像图像,声音声音,电电子表格等子表格等多媒体数据多媒体数据和和OLE 对象对象.表中长度表中长度:4 B,实际内容保存在实际内容保存在备注文件备注文件中中.9.整型整型(Integer)仅用于数据表仅用于数据表中存储无小数的中存储无小数的整数整数值值,长度长度:4B.10.浮点型浮点型(Float)仅用于数据表仅用于数据表中以中以浮点格式浮点格式存储的数据存储的数据.长度和取值范围长度和取值范围:与与 N 型相同型相同.11.双精度型双精度型(Double)仅用于数据表仅用于数据表中存储中存储高精度浮点数高精度浮点数的数据的数据.固定长度固定长度:8 B.(取值范围见取值范围见 P.xx)9/29/20222112.二进制字符型二进制字符型(Character Binary)仅用于在数据表仅用于在数据表中存储不需要中存储不需要系统代码页系统代码页维护维护的字符数据的字符数据.13.二进制备注型二进制备注型(Memo Binary)仅用于在数据表仅用于在数据表中存储不需要中存储不需要系统代码页系统代码页维护维护的备注型数据的备注型数据.9/29/202222一、常量一、常量在程序运行或操作过程中其数据值不变在程序运行或操作过程中其数据值不变的量的量.1.字符型常量字符型常量(C)由字母由字母,数字数字,标点符号标点符号,空格空格,中文字中文字符和其他可打印符号组成符和其他可打印符号组成,用定界符用定界符(,“,)界定的字符串界定的字符串;定界符必须成对定界符必须成对匹配匹配,位于字符串两端位于字符串两端.长度长度254个个ASCII码字符码字符.2.数值型常量数值型常量(N)由数字由数字,正负号正负号,小数点组成小数点组成.日常计日常计数法数法,科学计数法科学计数法,如如:-2.34E12 表示表示 2.341012.9/29/2022233.货币型常量货币型常量(Y)用于货币用于货币,带前缀符号带前缀符号“$的数值的数值,小数位小数位4位位.4.日期型常量日期型常量(D)由年由年,月月,日组成日组成,用用 界定界定.有多种显示格有多种显示格式和分隔符式和分隔符.默认美国格式默认美国格式:mm/dd/yy 表表示月示月/日日/年年.严格日期格式严格日期格式:yyyy-mm-dd 首字符首字符,年年 4 位位.5.日期时间型常量日期时间型常量(T)由日期和时间组成由日期和时间组成,一般格式一般格式:,严格格式严格格式:yyyy-mm-dd,hh:mm:ss am|pm hh,mm,ss 表示时表示时,分分,秒秒;am,pm表示上表示上,下下午午.9/29/202224 6.逻辑型常量逻辑型常量(L)仅有逻辑真值仅有逻辑真值(.t.T.y.Y.)和和 逻辑逻辑假值假值(.f.F.n.N.);定界符定界符.号不可号不可缺少缺少.二、变量二、变量 变量是存储数据的根本单位变量是存储数据的根本单位.变量中的数变量中的数据据(变量值变量值)在程序运行或操作过程中可以改在程序运行或操作过程中可以改变变.VFP 中变量分两大类中变量分两大类:字段变量字段变量,内存变内存变量量.1.字段变量字段变量 依赖于数据表文件存在依赖于数据表文件存在,永久性的多值变永久性的多值变量量.定义数据表结构时设定定义数据表结构时设定;每个字段名是一个每个字段名是一个字段变量字段变量;支持支持 14 种数据类型种数据类型.使用与操作使用与操作等在第三章详细介绍等在第三章详细介绍.9/29/2022252.内存变量内存变量分类分类:简单变量简单变量;数组变量数组变量;系统变量系统变量.特点特点:独立存在独立存在,可任意定义、使用可任意定义、使用,单值变单值变量量.数据类型数据类型:取决于所存数据的类型取决于所存数据的类型,与常量相与常量相同同,支持支持 C,N,Y,D,T,L 六种类型六种类型.变量命名变量命名:由字母由字母,数字数字,下划线下划线,中文字符组中文字符组成成,长度长度128个字符个字符.优先级优先级:字段变量高于内存变量字段变量高于内存变量;假设同名假设同名,那么需加那么需加 前缀符前缀符:M.|M-简单变量简单变量:特点特点:每个存储单元对应一个变量名每个存储单元对应一个变量名,建立与建立与赋值赋值 同步同步;赋新值代替旧值赋新值代替旧值.9/29/202226赋值命令赋值命令:Store To 功能说明功能说明:将表达式的值存储到指定名的变量中将表达式的值存储到指定名的变量中;格式格式可同时给多个简单变量可同时给多个简单变量(用用“,分隔分隔)赋值赋值;格式格式只给一个简单变量赋值只给一个简单变量赋值.数组变量数组变量特点特点:假设干个存储单元共有一个变量名假设干个存储单元共有一个变量名;用用下标下标 区分各存储单元区分各存储单元(数组元素数组元素|下标变量下标变量),各各元元 素所存数据及其类型可以相同也可以不同素所存数据及其类型可以相同也可以不同;数数 组必须先定义组必须先定义,再赋值使用再赋值使用.9/29/202227数组定义数组定义:Dimension(M1,N1),(M2,N2)Declare (M1,N1),(M2,N2)功能说明功能说明:格式格式 与格式与格式 功能相同功能相同,定义一至假定义一至假设干个一维或二维数组设干个一维或二维数组;M,N 为一维为一维/二维数组的下标上限值二维数组的下标上限值,下限值默认下限值默认 1,二维数组的元素个数为二维数组的元素个数为 MN;定义后数组元素默认赋初值为逻辑假定义后数组元素默认赋初值为逻辑假值值.F.;同一数组各元素的数据类型可以不相同同一数组各元素的数据类型可以不相同.9/29/202228访问数组变量访问数组变量(数组元素寻址数组元素寻址):下标法下标法:每个数组元素对应一个每个数组元素对应一个(或两个或两个)确确 切的下标值切的下标值,如如:A(3);B(2,4).*序号法序号法:按数组元素排列顺序按数组元素排列顺序,只用一个下标值只用一个下标值(序号序号).序号序号=mN-N+n 例例:Dimension X(3,4)那么那么 X(2,3)可用可用 X(24-4+3)=X(7)表表示示.数组变量赋值数组变量赋值 数组赋值数组赋值:数组中各元素中的数据值相同数组中各元素中的数据值相同格式格式1:Store To 格式格式2:9/29/202229 数组元素赋值数组元素赋值:数组中各元素的数据值可不相同数组中各元素的数据值可不相同格式格式1:Store To 格式格式2:同一运行环境中同一运行环境中,数组变量与简单变量不能同数组变量与简单变量不能同名名.系统变量系统变量 变量名以变量名以“_为首字符为首字符,由由 VFP 系统在启系统在启动时自动定义动时自动定义,其中保存着系统运行环境参数其中保存着系统运行环境参数.应通过系统设置操作或命令进行修改应通过系统设置操作或命令进行修改,而不而不要随意地直接改变它们要随意地直接改变它们.4.常用内存变量操作常用内存变量操作 显示内存变量显示内存变量9/29/202230 List Memory Like To Print|To File Display Memory Like To Print|To File 功能说明:显示内存变量名称,作用域,类型,值等信息.Like 设置显示符合条件的变量,通配符*|?;To 设置将显示信息同时打印输出或保存到指定文件;格式 连续显示,格式 分屏显示.9/29/202231 去除内存变量去除内存变量 Clear Memory Release Release All Extended Release All Like|Except 功能说明:去除内存变量,释放它们所占用的内存空间;格式 去除所有内存变量,格式 去除指定内存变量;在命令窗口中格式 与格式 功能相同,在程序中需要可选项以去除公共内存变量;9/29/202232 格式格式 中中,Like 去除与通配符匹配的内存变量去除与通配符匹配的内存变量,Except 去除与通配符不匹配的内存变量去除与通配符不匹配的内存变量;数组变量去除以数组为单位数组变量去除以数组为单位,命令中不能出现数命令中不能出现数 组元素组元素.保存内存变量保存内存变量 Save To All Like|All Except 功能说明功能说明:将当前全部将当前全部/局部内存变量保存到指定内存变量局部内存变量保存到指定内存变量文件文件(默认扩展名默认扩展名.mem)中中;无可选项无可选项,保存全部保存全部,有可选项有可选项,保存指定的保存指定的.9/29/202233 恢复内存变量恢复内存变量 Restore From Additive 功能说明功能说明:将指定内存文件中保存的内存变量恢复到内将指定内存文件中保存的内存变量恢复到内存中存中;无可选项无可选项,先去除当前内存变量再恢复先去除当前内存变量再恢复;可选项可选项,保存当前变量保存当前变量,文件中的变量追加到文件中的变量追加到内存中内存中;假设追加的变量与当前变量同名假设追加的变量与当前变量同名,当前变量当前变量被替换被替换.9/29/202234三、函数三、函数 系统提供的实现某种运算系统提供的实现某种运算,或完成某项操或完成某项操作的一段程序作的一段程序.函数通过函数通过 函数名函数名()进行调用进行调用,通常还需要一至假设干个参数通常还需要一至假设干个参数,得到的运算得到的运算结果称函数值结果称函数值.函数只能用于表达式中函数只能用于表达式中,其函数值参与表其函数值参与表达式的运算达式的运算.9/29/202235运算符运算符:构建表达式构建表达式,实现某种运算功能的实现某种运算功能的 符号符号.分分 类类:算术算术,字符字符,日期时间日期时间,关系关系,逻辑逻辑 五类五类 运算符运算符.表达式表达式:用运算符用运算符,圆括号将常量圆括号将常量,变量变量,函函 数数 等按一定规那么连接起来构成的等按一定规那么连接起来构成的 有意义的式子有意义的式子.优先级优先级:数值数值字符和日期时间字符和日期时间关系关系 逻辑逻辑;优先级相同那么按自左向右的顺序优先级相同那么按自左向右的顺序,可用可用括号改变顺序括号改变顺序.9/29/202236一、算术运算符和数值表达式一、算术运算符和数值表达式1.算术运算符算术运算符:构建数值表达式构建数值表达式,运算对象为数值型运算对象为数值型,货币型数货币型数据据,结果为数值结果为数值.运算符按优先级顺序排列为运算符按优先级顺序排列为:取负取负-;乘方乘方 ,*;乘除乘除*/;取余取余%;加减加减+-取负是取负是单目运算符单目运算符,对其右边的运算对象取负值对其右边的运算对象取负值;其它均为双目运算符其它均为双目运算符.2.数值表达式数值表达式:(运算举例见教材运算举例见教材 P.50)二、字符串运算符及其表达式二、字符串运算符及其表达式 1.字符串运算符字符串运算符:构建字符串表达式构建字符串表达式,运算对象和结果为字符串运算对象和结果为字符串.均为双目运算符且优先级相同均为双目运算符且优先级相同.9/29/202237运算符运算符:+将其左右两边的字符串顺序连接成一将其左右两边的字符串顺序连接成一个新字符串个新字符串.-将其左右两边的字符串顺序连接将其左右两边的字符串顺序连接,并将左边字符串尾部的空格移到新字符串的尾部并将左边字符串尾部的空格移到新字符串的尾部.2.字符串表达式字符串表达式:运算举例运算举例(P.xx).三、日期时间运算符及其表达式三、日期时间运算符及其表达式1.日期时间运算符日期时间运算符:构建日期时间表达式构建日期时间表达式.根据运算对象的不同根据运算对象的不同,运运算结果可能是日期时间或数值算结果可能是日期时间或数值.均为双目运算符均为双目运算符且优先级相同且优先级相同.运算符为运算符为:+,-.2.日期时间表达式日期时间表达式:日期时间表达式中运算符和运算对象的使用有日期时间表达式中运算符和运算对象的使用有严格要求严格要求,不能随意组合不能随意组合,详见详见 P.xxP.xx 表表 1-11 和运算举例和运算举例.9/29/202238四、关系运算符及其表达式四、关系运算符及其表达式1.关系运算符关系运算符:构建关系表达式构建关系表达式.运算对象可以是运算对象可以是 C,N,Y,D,T,L 类型数据类型数据;其作用是比较两个表达式其作用是比较两个表达式值的大小值的大小,结果逻辑值结果逻辑值.均为双目运算均为双目运算,优先优先级相同级相同.运算符运算符:等于等于=;不等于不等于 ,#,!=;小于小于 ;小于等于小于等于 ;大于等于大于等于 =;字符串精确比字符串精确比较较 =;子字符串包含测试子字符串包含测试$.=和和$仅能比较字符型数据仅能比较字符型数据,其他可其他可比较各种类型数据比较各种类型数据.9/29/2022392.关系表达式关系表达式:除除 D 和和 T 外外,只有同类型数据可比较只有同类型数据可比较.各种各种数据类型的比较规那么数据类型的比较规那么:N 和和 Y 型数据按照数值大小比较型数据按照数值大小比较;D 和和 T 型数据按照早晚顺序比较型数据按照早晚顺序比较,早的日早的日期期时间小于晚的日期时间的时间小于晚的日期时间的;L 型数据型数据,逻辑真值大于逻辑假值逻辑真值大于逻辑假值;$运算运算:检测运算符左边的字符串是否包检测运算符左边的字符串是否包含含在右边字符串中在右边字符串中,假设包含那么为逻辑假设包含那么为逻辑真值真值,否否那么为逻辑假值那么为逻辑假值;C 型数据比较型数据比较,是对两个字符串从左至右是对两个字符串从左至右逐逐个对应比较个对应比较,遇到第一对不同的字符时遇到第一对不同的字符时,根据根据9/29/202240当前系统设置的字符排序顺序确定大小关系当前系统设置的字符排序顺序确定大小关系,决定两决定两个字符串的大小个字符串的大小.=精确比较只有在两个字符串完全相同时精确比较只有在两个字符串完全相同时,才才得逻辑真得逻辑真.=字符串相等比较字符串相等比较,与与 Exact 状态有关状态有关:Exact 为为 Off 时时,只要右边字符串与左边字符串只要右边字符串与左边字符串 前面局部匹配前面局部匹配,即得逻辑真即得逻辑真;Exact 为为 On 时时,以长字符串为标准以长字符串为标准,在短串尾部在短串尾部 加空格后逐个对应进行比较加空格后逐个对应进行比较.(教材教材 P.xx 表表1-12)3.系统的排序与精确比较设置系统的排序与精确比较设置 排序设置排序设置 菜单操作菜单操作:9/29/202241 单击单击“工具工具“选项命令选项命令,翻开翻开“选项选项对对话框话框;单击单击“数据标签数据标签,在在“排序序列下拉排序序列下拉列表列表框中选择框中选择:Machine(机器机器)/PinYin(拼音拼音)/Stroke(笔画笔画);单击单击“确定确定.命令设置命令设置:Set Collate To “功能说明功能说明:设置字符排序顺序设置字符排序顺序.排序名是上排序名是上述三者之一述三者之一,必须用必须用“界定界定.精确比较设置精确比较设置菜单操作菜单操作:在数据标签中选中在数据标签中选中 Set Exact On 复选框复选框.命令设置命令设置:Set Exact Off|On关系表达式举例见教材关系表达式举例见教材 P.xx.9/29/202242五、逻辑运算符及其表达式五、逻辑运算符及其表达式1.逻辑运算符逻辑运算符:构建逻辑表达式构建逻辑表达式.运算对运算对象和象和 结果均为逻辑型数据结果均为逻辑型数据.运算符按优先级排运算符按优先级排列列:逻辑非逻辑非.Not.,!;逻辑与逻辑与.And.;逻辑逻辑或或.Or.逻辑非逻辑非:单目运算符单目运算符,其它其它:双目运算符双目运算符;定界符定界符“.可省略可省略.2.逻辑表达式逻辑表达式:逻辑运算规那么逻辑运算规那么(P.xx 表表 1-13)9/29/202243函数函数:由由 VFP 系统提供系统提供,能实现某种运算或能实现某种运算或 者操作的一段程序者操作的一段程序.格式格式:函数名函数名(,)说明说明:函数由函数名和圆括号构成函数由函数名和圆括号构成;参数可有参数可有 0 多个多个,假设为函数假设为函数,称函数称函数嵌套嵌套;函数必有一个确切的返回值函数必有一个确切的返回值,称函数值称函数值;函数值的数据类型与参数的数据类型可函数值的数据类型与参数的数据类型可能相能相 同同,也可能不同也可能不同;函数不能单独使用函数不能单独使用,必须用在表达式中必须用在表达式中.VFP 函数按功能一般分为五大类函数按功能一般分为五大类:9/29/202244一、数学运算函数一、数学运算函数用于常见数学运算用于常见数学运算,参数和函数值通常为数值参数和函数值通常为数值.1.绝对值绝对值:Abs(N)求求 N 的绝对值的绝对值|N|.2.符号符号:Sign(N)根据根据N0,=0,0,返回返回 1,0,-1.3.上限取整上限取整:Ceiling(N)返回返回N的最小整数的最小整数.4.下限取整下限取整:Floor(N)返回返回 N 的最大整数的最大整数.5.截断取整截断取整:Int(N)截掉截掉 N 的小数的小数,只取整数只取整数.6.四舍五入四舍五入:Round(N1,N2)将将N1四舍五入保四舍五入保 留留 N2 位小数位小数;N2 可正可负可正可负.7.指数指数:Exp(N)以自然数以自然数e为底为底,N为指数为指数,求求 eN.9/29/2022458.自然对数自然对数:Log(N)求自然对数求自然对数 Ln N.9.最大值最大值:Max(N1|D1|T1,N2|D2|T2)取取N1,N2或或 D1,D2 或或 T1,T2中较大的值中较大的值.10.最小值最小值:Min(N1|D1|T1,N2|D2|T2)取取N1,N2或或D1,D2 或或 T1,T2中较小的值中较小的值.11.正弦正弦:Sin(N)返回返回 N 的正弦值的正弦值(N 为弧度为弧度).12.余弦余弦:Cos(N)返回返回 N 的余弦值的余弦值(N 为弧度为弧度).13.圆周率圆周率:Pi()返回圆周率的值返回圆周率的值.14.平方根平方根:Sqrt(N)求求 N 的平方根的平方根.15.随机数随机数:Rand(N)生成生成 0 1 间的随机数间的随机数;N 为正数为正数,返回相同数返回相同数.9/29/202246二、字符串操作函数二、字符串操作函数用于对字符型数据的处理用于对字符型数据的处理,参数多为字符型参数多为字符型.1.宏代换宏代换:&.C 替换出字符变量替换出字符变量 的内容的内容.2.子串定位子串定位:At(C1,C2)/Atc(C1,C2)返回返回 C1在在 C2 中出现的起始位置值中出现的起始位置值,Atc()不分大小写不分大小写.3.字符串长度字符串长度:Len(C)返回字符串返回字符串 C 的长度值的长度值.4.删左删左/右空格右空格:Ltrim(C)/Rtrim(C),Trim(C)将将 C 左端或右端的空格删除左端或右端的空格删除.5.删首尾空格删首尾空格:Alltrim(C)将将 C 两端的空格都两端的空格都 删除删除.6.左左/右取子串右取子串:Left(C,N)/Right(C,N)从从C 的左端或右端取的左端或右端取 N 个字符个字符.9/29/2022477.取子串取子串:Substr(C,N1,N2)从从 C 的的 N1 位置取位置取 N2 个字符个字符.8.大大/小写转换小写转换:Upper(C)/Lower(C)将将 C 中中 的字母全部转换为大写或小写的字母全部转换为大写或小写.9.子字符串替换子字符串替换:Stuff(C1,N1,N2,C2 )用用 C2 替换替换 C1 中从中从 N1 起的起的 N2 个字符个字符.10.字符替换字符替换:Chrtran(C1,C2,C3)用用 C3 替换替换 C1 中与中与 C2 匹配的字符串匹配的字符串.11.字符串匹配字符串匹配:Like(C1,C2)假设假设 C1,C2 对对应位应位 置字符串匹配置字符串匹配,返回逻辑真值返回逻辑真值,否那么为假否那么为假值值.12.生成空格字符串生成空格字符串:Space(N)生成生成 N 个空格字个空格字 符串符串.9/29/20224813.统计子字符串出现次数统计子字符串出现次数:Occurs(C1,C2)返回返回 C1 在在 C2 中出现的次数值中出现的次数值.三、日期时间函数三、日期时间函数用于对日期时间数据进行运算处理用于对日期时间数据进行运算处理.1.系统日期系统日期,时间时间:Date();Time();DateTime()分别返回系统当前日期分别返回系统当前日期;24小时制小时制,hh:mm:ss 格格式的系统当前时间式的系统当前时间;系统当前日期时间系统当前日期时间.2.年年,月月,日日:Year(D|T);Month(D|T);Day(D|T)分别返回给定参数中的分别返回给定参数中的 年年;月月;日日.均为数值均为数值.3.时时,分分,秒秒:Hour(T);Minute(T);Sec(T)分别返回分别返回 24 小时制的时小时制的时;分分;秒秒,均为数值均为数值.9/29/2022494.年月日格式年月日格式:Dmy(D|T);Mdy(D|T)分别返回英文日分别返回英文日,月月,年或月年或月,日日,年年;均为字符型均为字符型.四、类型转换函数四、类型转换函数用于将某种数据类型转换成另一种类型用于将某种数据类型转换成另一种类型.1.字符转字符转ASCII码码:Asc(C)将将 C 的首字符转换为对应的的首字符转换为对应的 ASCII 码值码值.2.ASCII码转字符码转字符:Chr(N)将将 N 作为作为 ASCII 码值转换为对应的字符码值转换为对应的字符.3.字符串转数值字符串转数值:Val(C)将字符串将字符串 C 左端连续左端连续 的数字字符串转换为数值的数字字符串转换为数值.4.数值转字符串数值转字符串:Str(N1 ,N2 ,N3 )将数值将数值 N1 转换为数字字符串转换为数字字符串,N2 长度长度,N3 小数位小数位.9/29/2022505.日期转字符串日期转字符串:Dtoc(D|T ,1)将将 D 或或 T 转换为字符串转换为字符串;有有1转换为索引形式转换为索引形式.6.日期时间转字符串日期时间转字符串:Ttoc(T ,1 )将将 T 转换为字符串转换为字符串;有有 1 转换为索引形式转换为索引形式.7.字符串转日期字符串转日期:Ctod(C)将日期格式的将日期格式的 C 转换为日期转换为日期.8.字符串转日期时间字符串转日期时间:Ctot(C)将日期时间格式的将日期时间格式的 C 转换为日期时间转换为日期时间.五、测试函数五、测试函数1.字符测试字符测试 字母测试字母测试:Isalpha(C)测试测试 C 的首字符是否为字母的首字符是否为字母.9/29/202251 大小写字母测试大小写字母测试:Isupper(C)Islower(C)测试测试 C 的首字符是否为大写小写字母的首字符是否为大写小写字母.2.文件与工作区测试文件与工作区测试 数据库测试数据库测试:Dbc()返回当前翻开的数据库名返回当前翻开的数据库名;数据表测试数据表测试:Dbf(N)返回当前或指定工作返回当前或指定工作 区中翻开的数据表名区中翻开的数据表名;索引文件测试索引文件测试:Ndx(N1,N 2)返回当前或指返回当前或指 定工作区中在定工作区中在 N1 位置翻开的索引文件名位置翻开的索引文件名,N2 为指定工作区为指定工作区;工作区号测试工作区号测试:Select(1)返回当前工作区号返回当前工作区号,有有 1 那么返回未用的最大工作区号那么返回未用的最大工作区号;9/29/202252 磁盘文件测试磁盘文件测试:File(C)测试由字符串测试由字符串 C 指定指定 的磁盘文件是否存在的磁盘文件是否存在;C 中应包含完整路径和中应包含完整路径和 文件名文件名.3.数据表记录、字段测试数据表记录、字段测试 测数据表首测数据表首/尾尾:Bof(N)Eof(N)测当测当 前或指定工作区中翻开的数据表记录指针前或指定工作区中翻开的数据表记录指针 是否指向数据表的首尾部是否指向数据表的首尾部.测删除标记测删除标记:Deleted(N)测当前或指定测当前或指定 工作中数据表当前记录是否有删除标记工作中数据表当前记录是否有删除标记.测字段个数测字段个数:Fcount(N)返回当前或指返回当前或指 定工作区中所翻开数据表的字段个数定工作区中所翻开数据表的字段个数.9/29/202253 测字段名测字段名:Field(N1,N2)返回当前或指定工返回当前或指定工 作区中所翻开数据表在作区中所翻开数据表在 N1 位置的字段名称位置的字段名称,N2 工作区号工作区号.测字段宽度测字段宽度:Fsize(C,N)返回当前或指定工返回当前或指定工作区中所翻开数据表中作区中所翻开数据表中C 字段的宽度字段的宽度.测记录个数测记录个数:Reccount(N)返回当前或指定返回当前或指定工作区中翻开数据表中的记录个数工作区中翻开数据表中的记录个数.测记录长度测记录长度:Recsize(N)返回当前或指定返回当前或指定工作区中翻开数据表中记录的长度工作区中翻开数据表中记录的长度.测记录号测记录号:Recno(N)返回当前或指定工作返回当前或指定工作 区中翻开数据表中的当前记录号区中翻开数据表中的当前记录号.9/29/202254 测记录查找测记录查找:Fount(N)测试对当前或指测试对当前或指 定工作区中数据表记录的查询是否成功定工作区中数据表记录的查询是否成功.4、其它测试、其它测试 条件测试条件测试:Iif(,)条件值为真条件值为真(.T.)时时,返回返回 表达式表达式 1 的值的值;否那么否那么返回返回 表达式表达式 2 的值的值.类型测试类型测试:Type(C)返回返回 C 值的数据类型值的数据类型.测驱动器号测驱动器号:Sys(5)返回当前默认驱动器号返回当前默认驱动器号.测工作目录测工作目录:Curdir()|Sys(2003)返回当前返回当前 默认工作目录默认工作目录.9/29/202255一、设置开一、设置开|关状态关状态命令格式命令格式:Set On|Off 1.设世纪显示设世纪显示:Set Century Off|On 2.设屏幕显示设屏幕显示:Set Console On|Off3.设逻辑删除设逻辑删除:Set Deleted Off|On4.设字符精确比较设字符精确比较:Set Exact Off|On5.设打印机开关设打印机开关:Set Printer Off|On6.设系统保护开关设系统保护开关:Set Safety On|Off7.设命令结果显示开关设命令结果显示开关:Set Talk On|Off注意注意:前面一项为系统默认的开关参数前面一项为系统默认的开关参数.9/29/202256二、设置环境参数二、设置环境参数命令格式命令格式:Set To 1.设置日期格式设置日期格式:Set Date To 2.设置默认驱动器或路径设置默认驱动器或路径:Set Default To|3.设置计时制设置计时制:Set Hours To 12|24 4.开开/关索引文件关索引文件:Set Index To 索引文件名表索引文件名表5.设置当前索引设置当前索引:Set Order To 序号序号|索引文索引文 件名件名|Tag Ascending|Descending6.设置文件搜索路径设置文件搜索路径:Set Path To 路径表路径表 9/29/2022577.开、关过程文件开、关过程文件:Set Procedure To 过程文件名表过程文件名表 Additive8.设置数据表间关联设置数据表间关联:Set Relation To 表达式表达式 Into|Additive9.取消表间关联取消表间关联:Set Relation Off Into|?第一章 End?9/29/202258第 二 章数据库根底知识教学课件教学课件SDFI计算机计算机应用教研室应用教研室9/29/2022592.1 数据、信息和数据处理数据、信息和数据处理2.2 数据库和数据库管理系统数据库和数据库管理系统2.3 数据模型数据模型2.4 关系型数据库关系型数据库2.5 数据库设计根底数据库设计根底9/29/202260数据库技术开展概述数据库技术开展概述 19401960年代中期年代中期,计算机主要应用于科计算机主要应用于科学计算学计算;1960年代后期进入数据处理领域年代后期进入数据处理领域,数据库技数据库技术产生术产生.1960年代中期年代中期,美国系统开展公司首次采用美国系统开展公司首次采用“DataBase;1968年年,IBM研制开发层次结构的数据管理研制开发层次结构的数据管理系统系统 IMS(Information Management System);1969年年,美国数据系统语言协会提出网状结美国数据系统语言协会提出网状结构数构数据库系统标准报告据库系统标准报告;1970年年,IBM 的的 E.F.Codd 提出数据库关系模提出数据库关系模型型,美国一些大学和公司开始研制基于关系理论美国一些大学和公司开始研制基于关系理论的数据库系统的数据库系统;9/29/202261 1980年代年代,推出多种关系型数据库系统推出多种关系型数据库系统;如用于如用于大中型计算机的大中型计算机的 DB2,Oracle,SQL Server 等等;应用于微型机的应用于微型机的 dBase,FoxBase,FoxPro,Visual FoxPro,Access 等等.1.数据数据(Data)用于表达、描述、记录客观事物与现象的用于表达、描述、记录客观事物与现象的属性属性,能被接收、识别和存储的某种物理符号能被接收、识别和存储的某种物理符号.如数字、文字、声音、图形、影像等如数字、文字、声音、图形、影像等.计算机能接收、识别、存储、处理二进制数计算机能接收、识别、存储、处理二进制数据据.2.信息信息(Information)经过加工处理经过加工处理,能影响人类行为能影响人类行为,具有特定具有特定形式的有用数据形式的有用数据.9/29/2022621.人工管理阶段人工管理阶段 主要特点主要特点:没有数据管理软件系统没有数据管理软件系统,一切数据管理由人工一切数据管理由人工 实施实施;一组数据对应一个程序一组数据对应一个程序,相互依赖相互依赖,不能共享不能共享;数据不能保存数据不能保存,程序运行完毕程序运行完毕,数据即丧失数据即丧失;数据未结构化数据未结构化,独立性差独立性差.3.数据处理数据处理 对原始数据进行的诸如对原始数据进行的诸如:采集、接收、传采集、接收、传送、转换、存储、整理、分类、排序、索引、送、转换、存储、整理、分类、排序、索引、查找、统计、计算、检索等一系列加工操作查找、统计、计算、检索等一系列加工操作的过程的过程.目的目的:获得有用的数据获得有用的数据 信息信息.9/29/202263 2.文件管理阶段文件管理阶段主要特点主要特点:有专门文件管理软件进行数有专门文件管理软件进行数据管理据管理;数据以文件的形式组织起来数据以文件的形式组织起来,可以保存可以保存,有一定的独立性有一定的独立性;数据文件与应用程序有对应数据文件与应用程序有对应关系关系,共享性差共享性差,数据冗余度大数据冗余度大;数据的结构化差,独立性差数据的结构化差,独立性差.文件管理系统文件管理系统程序程序A程序程序B .文件文件B .文件文件A3.数据库管理阶段 由专门的系统软件对数据进行集中统一的管理,实现数据共享,并保证数据的平安,完整.DBMS数数据据库库用户用户 1用户用户 2用户用户 3.9/29/202264数据库技术的三个开展阶段数据库技术的三个开展阶段:第一代数据库系统第一代数据库系统 非关系型数据库系统非关系型数据库系统:层次层次,网状型数据库网状型数据库系统系统.第二代数据库系统第二代数据库系统 关系型数据库系统关系型数据库系统.应用最广泛的数据库系应用最广泛的数据库系统统.第三代数据库系统第三代数据库系统 结合网络通信结合网络通信,多媒体技术多媒体技术,面向对象的面向对象的程序设计方法程序设计方法,人工智能人工智能,并行计算机系统并行计算机系统等计算机新技术的数据库系统等计算机新技术的数据库系统.如如:分布式数据库系统分布式数据库系统,多媒体数据库系多媒体数据库系统统,面向对象数据库系统面向对象数据库系统,知识数据库系统知识数据库系统,并行数据库系统并行数据库系统,数据仓库等数据仓库等.9/29/202265一、数据库一、数据库(DataBase)以一定的组织方式存储在计算机存储设备以一定的组织方式存储在计算机存储设备上上,与应用程序彼此独立、能为多个用户共与应用程序彼此独立、能为多个用户共享、结构化的相关数据的集合享、结构化的相关数据的集合.二、数据库管理系统二、数据库管理系统(DBMS)为数据库的建立、使用和维护配置的软件为数据库的建立、使用和维护配置的软件系统系统.主要功能主要功能:1.数据定义数据定义 用于定义数据对象用于定义数据对象,描述数据库、表的结描述数据库、表的结构等构等;2.数据操纵数据操纵 用于实现对数据库的根本操作用于实现对数据库的根本操作,如数据的如数据的插入、修改、删除、查询等插入、修改、删除、查询等;9/29/202266 3.数据库运行管理数据库运行管理 包括数据存取时的控制包括数据存取时的控制,检查检查,并发控制并发控制,查询优化查询优化,系统恢复等功能系统恢复等功能.保证事物处理的保证事物处理的正确性和数据库的有效性正确性和数据库的有效性,数据的平安性和数据的平安性和完整性完整性.4.数据库建立与维护数据库建立与维护 包括初始数据输入包括初始数据输入,转换转换,数据库转储数据库转储,恢恢复复,数据库重组织数据库重组织,系统性能监测系统性能监测,分析等功分析等功能能.三、数据库系统三、数据库系统(DBS)引入数据库技术的计算机系统引入数据库技术的计算机系统.1.特点特点 数据结构化数据结构化;数据共享性数据共享性,冗余少冗余少;数据独立性数据独立性;数据统一管理控制数据统一管理控制.9/29/202267数据库系统构成示意图数据库系统构成示意图硬件系统硬件系统操作系统操作系统数据库管理系统数据库管理系统数据库应用系统数据库应用系统数据库管理员数据库管理员最终用户最终用户专业开发人员专业开发人员2.组成组成 硬件系统硬件系统;软件系统软件系统;数据集合数据集合;用户用户(管理员管理员,专业开发人员专业开发人员,最终用户最终用户).9/29/202268 数据模型概述数据模型概述1.实体实体(Entity)客观存在并可互相区别的事物客观存在并可互相区别的事物(实际事物实际事物或抽象事件或抽象事件).2.属性属性(Attribute)能表征、描述实体的特征能表征、描述实体的特征;有属性名和具有属性名和具体属性值体属性值.3.实体集实体集(Entity Set)性质相同的同类型实体的集合称为性质相同的同类型实体的集合称为“实体实体集集.4.型型(Type)对某一类数据的结构和属性的说明为对某一类数据的结构和属性的说明为“型型.9/29/2022695.值值(Value)在在“型型 约束下的一个具体的数据称为约束下的一个具体的数据称为“值值.6.关键字关键字(Key)能唯一标识一个实体的属性集合能唯一标识一个实体的属性集合(实体标识实体标识符符).7.联系联系(Relationship)实体之间的相互联系实体之间的相互联系;分为三种类型分为三种类型:一对一联系一对一联系;一对多联系一对多联系;多对多联多对多联系系.8.数据模型数据模型(Data Model)经抽象得到经抽象得到,概念化的对事物特性及事物之概念化的对事物特性及事物之间相互联系的表达与描述的集合间相互联系的表达与描述的集合;三局部组成三局部组成:数据结构数据结构:是对系统静态特性的描述是对系统静态特性的描述,是所是所研究研究 对象类型的集合对象类型的集合;9/29/202270 数据操作数据操作:是对系统动态特性的描述是对系统动态特性的描述,是对库中各种对是对库中各种对象允许执行的操作的集合象允许执行的操作的集合;数据的约束条件数据的约束条件:是确定数据及其之间联系的一组完整性规是确定数据及其之间联系的一组完整性规那么的集合那么的集合.二、层次模型二、层次模型 用树形结构表示实体及其之间联系的数据用树形结构表示实体及其之间联系的数据模型模型.以记录型实体为结点以记录型实体为结点,实体之间单线联实体之间单线联系系.层次模型的特点层次模型的特点:1.有且仅有一个结点无向上有且仅有一个结点无向上(无双亲无双亲)的联的联系系,称为根结点称为根结点;9/29/2022712.除根以外的其它结点有且仅有一个向上除根以外的其它结点有且仅有一个向上(双亲双亲)的联系的联系.层次清楚层次清楚,结构清晰结构清晰,反映一对多联系反映一对多联系.学校编号学校编号 校名校名 地址地址 校长校长 类别类别系部编号系部编号 处名处名 处长处长 系部编号系部编号 系名系名 系主任系主任 层次模型示意图层次模型示意图(学校管理体制学校管理体制)科室编号科室编号 教研室教研室 室主任室主任 科室编号科室编号 实验室实验室 室主任室主任 职工编号职工编号 姓名姓名 性别性别 出生日期出生日期 学历学历 职称职称 工资工资 专业专业 简历简历.9/29/202272三、网状模型三、网状模型 用网状结构表示实体及其联系的数据模型用网状结构表示实体及其联系的数据模型.以记以记录型实体为结点。