二级Visual Foxpro完全笔记_第1页
二级Visual Foxpro完全笔记_第2页
二级Visual Foxpro完全笔记_第3页
二级Visual Foxpro完全笔记_第4页
二级Visual Foxpro完全笔记_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、二级Visual Foxpro完全笔记一、二级Visual Foxpro的基本框架和主要内容1.基本框架:总分总的模式第一章:总述第二九章:分述第十章:总结第十一章:上机指导2.重要章节及内容(见教材目录)各个章节考试时都有涉及,其中第三、四和七章为重点。3.题型:1)笔试部分:单选题 2分*35题=70分(其中前十题在二级vf公共基础知识中) 填空题 2分*15题=30分(其中前五题在二级vf公共基础知识中)2)机试部分:基本操作题 30分简单应用题 40分综合应用题 30分(其中不涉及公共基础知识,采取随机抽题的方式)二、基础知识1.vf的作用是要用来处理现实中的问题,主要使用程序和数据来

2、进行。程序师处理数据的一组命令;而数据就是被程序处理的对象。2.vf软件的启动:两种方式桌面上的快捷方式开始菜单程序MSVF3.vf的安装:两种方式光盘安装:setup.exe网络安装4.了解vf界面标题栏主菜单常用工具栏主窗口:显示或输出数据处理后的结果。状态栏:显示数据处理时的状态信息。命令窗口:用户对计算机发布的命令。5.vf中最常用命令介绍?表示隔行输出。?表示同行输出。&&+内容表示是对前面所写命令的注释说明,可提高程序的可读性,一般以绿色显示。 Clear表示对主窗口进行清屏,它本身就是命令,因而clear后不加()。三、数据与数据运算(一)简单介绍vf系统中数据的

3、形式和类型1.vf系统所处理的数据形式有四种:常量变量表达式函数2.上述四种形式的数据根据其组成和结构的不同又可分为六种类型:数值型货币型字符型日期型日期时间型逻辑型上述类型决定数据的存储方式和运算方式。(二)常量1.含义:是用以表示一个具体的、确定的、不变的值。2.常量的类型:1)数值型常量:含义:也称N型,用来表示数量的多少。组成:由数字09,小数点和正负号构成。可用科学计数法的形式来书写,如:1500=1.5*10的3次方=1.5e3,其中的e/E表示10的n次方,n为整数(正整数、负整数、0均可)。数值型数据在内存中用8个字节表示。2)货币型常量:含义:也称Y型,用来表示货币值。组成:

4、在数值型常量之前加上一个$符号即可。在存储和计算时采用4位小数,多于4位时自动四舍五入。没有科学计数法形式,在内存中占用8个字节。3)字符型常量含义:也称C型或者字符串。组成:用半角的单引号、双引号或方括号作为定界符把字符串括起来,且定界符必须成对匹配。但定界符不是字符型常量的内容。定界符内的字符可为数字、汉字、英文、空格或者无内容。不包含任何字符的字符串为空串;完全以空格为字符的字符串为空格字符串。4)日期型常量:含义:用来显示日期,也称D型。组成:它的定界符是一对花括号,并且花括号内第一个字符必须是脱字符,花括号内括年月日三部分内容,各部分内容之间用分隔符-分隔。而斜杠则是系统在主窗口显示

5、日期型数据使用的默认分隔符。yyyy-mm-dd。日期型常量也用8个字节表示。影响日期格式的设置命令:Set date to ymd/dmy/mdy功能是设置日期显示时的格式。Set mark to -或者/或者功能是用于设置显示日期型数据时的分隔符。若未指定分隔符则表示恢复系统默认斜杠分隔符。Set century on/off功能是设置年份是以(on)4位或(off)2位来显示。5)日期时间型常量:含义:用来显示日期和时间,也称T型。组成:yyyy-mm-dd hh:mm:ss am/pm。日期时间型常量也用8个字节存储。注:上述所有关于日期和日期时间的设定在vf界面的工具菜单选项区域中进

6、行操作。6)逻辑型常量:含义:它只有逻辑真和逻辑假两个值,也称L型。组成:逻辑真.t. .T. .y. .Y.逻辑假.f. .F. .n. .N.前后的两个点作为定界符必不可少,但是只占1个字节。(三)变量1.定义:是指在成都之行进程中,其值可以被改变的量。2.变量的命名原则:以汉字、字母或下划线开头,可以含有数字,但不能含有非法字符如小数点、空格或通配符(*/?)。要尽量做到见文知义。3.变量的分类:1)字段变量:在表文件中记录属性内容的变量。表中的每一个列标题就称为一个字段变量。列标题的名称就是这个字段变量的名称,其下的具体内容就是这个字段变量的值,即字段值。 注意一:表的每一行被称为一条

7、记录,鼠标指向某一行时会变成指针的标志,指针所指向的行即此字段当前的值,当输出这个字段变量时,就会在主窗口显示当前行的值。注意二:若字段变量名和内存变量名重名的现象时,优先输出字段变量的值;若想输出内存变量的值,则需在变量名前加上前缀M.(或M->)。2)系统变量:是由vf系统自定义的变量,其名称是由系统预先定义好的,通常以下划线_开头。例如:_screen. fontsize=20 可更改主窗口所显示字的字号大小;_screen. backcolor=rgb(0,255,45) 可更改主窗口的背景颜色。_vfp. Caption=任意字符 可更改vf标题栏上显示的标题名。3)内存变量:

8、含义:表示内存中临时存放数据的单元格,它的类型取决于其中存放数据的类型。 内存变量的赋值:即把一个数据存放到内存变量中。两种方法:格式一:store 表达式/数据 to 变量名 可把同一个值赋给不同的变量,各内存便另名之间要用逗号隔开。格式二:变量名=表达式/数据(注意:数据为常量时必须加)可通过对内存变量重新赋值来改变其内容和类型。内存变量的显示:list/display memory like */? 用来显示内存变量的信息。 内存变量的清除:格式一:clear memory/release all 表示清除全部内存变量格式二:release 变量名表 表示清除制定内存变量,可为若干个格式

9、三:release all like */?或except */? 表示清除相匹配或不相配的内存变量。 数组:含义:数组是一种特殊的内存变量,表示内存中连续的若干个存储单元。用来存储一系列数值,其中的每个值称为数组的一个元素,可通过下标来显示,下标用()或括起来。一个数组中的各个元素的值的数据类型可以不同。创建数组的命令:dimension/declare 数组名(元素个数)。注意:若定义了一个数组aa,再给数组名aa赋值,则表明是给aa数组中的每个元素都赋予了一个相同的值。数组分类:一维数组:一行多列 dimension 数组名(数值表达式)二维数组:多行多列dimension 数组名(数值

10、表达式1,数值表达式2)其中,数值表达式1指定其行,数值表达式2指定其列,若只有一个数值,则为一维数组。 一维数组与二维数组的转换:例如:dimension aa(3)aa(1,1),aa(1,2),aa(1,3)这是将一维数组转换为二维数组。dimension bb(2,3)bb(1),bb(2),bb(6)这是将二维数组转换为一维数组。(四)表达式1.定义:通过特定的运算符将常量、变量和函数连接起来的式子,通过运算后,表达式都会生成一个值。2.形式:1)单一的运算对象,如常量、变量或函数。2)由运算符将运算对象链接起来的式子。3.作用:1)赋值2)输出4.常用表达式的类型:1)数值表达式定

11、义:由算术运算符将数值型数据连接起来形成的式子。运算符:( ) 括号*或 乘方*/和% 乘除和求余运算+和- 加和减这四类运算符的优先级依次降低,同类之间具有相同的优先级。运算结果的类型:它的值仍是数值型。注意求余运算符%的用法:它的被除数与出书都必须是整数,除数不能为0。 求余三原则表述如下:若c=a%b 做这种题的时候先算出c=a%b的值,然后c必须与a同号。还要注意的是:若a与b同号,则当前余数就是c若a与b异号,则当前余数结果是b+c例如:?10%3,-10%-3,10%-3,-10%31 -1 -2 22)字符表达式定义:由字符串运算符将字符型数据连接起来形成的式子。运算符:+ 表示

12、前后两个字符串首尾连接成一个新的字符串- 表示连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部。 这两个运算符之间不分优先级。运算结果的类型:它的值仍是字符型。例如:a=hello b=everyone!?a+b,a-bhello everyone! hello everyone!3)日期时间表达式定义:用运算符将日期或日期时间型数据连接起来形成的式子。注意:=和$仅适用于字符型数据,其他运算符适用于任何类型的数据,但运算符前后的两个运算对象的数据类型必须要保持一致。数值型、货币型数据各自之间的比较按其数值的大小进行。日期型、日期时间型数据各自之间的比较,越晚日期或时间越大。

13、逻辑型数据比较:.t.>.f.字串包含测试:字符表达式1 $ 字符表达式2 ,如果前者整体是后者的字串,即1包含于2,则结果为真,否则为假。字符串之间的比较原则是依次比较它们对应位置中的字符,若相同则继续比较,若不同则根据这两个字符的排序序列决定字符串的大小。但是,根据不同的排序方式,所出的结果也是不同的。² 排序方式设置:set collate to 排序次序名排序次序名可以是machine、pinyin和stroke。Machine的原则是:空格<数字<大写字母(其中A最小)<小写字母(其中a最小); (测asc码函数:asc(字符表达式),可测比如Aa的

14、asc码为65和97)Pinyin的原则是:排在字母表后面的字母>排在前面的字母,若字母相同则大写>小写; Stroke的原则是:汉字的笔画谁多谁大。² 字符串的精确比较与exact设置:=只有两个字符串完全相同时,运算结果为逻辑真,否则为逻辑假。在=比较两个字符串时,运算结果与set exact on/off有关:off表示只要右边字符串整体与左边字符串的前面部分内容相匹配,即可为真,否则为假;on则表示比较到两个字符串全部结束,先到短的字符串尾部加空格,使两个字符串的长度相等,然后进行比较,运算结果的类型:逻辑型。作用是比较两个表达式的大小。5)逻辑表达式定义:由逻辑

15、运算符将逻辑型数据连接起来而形成的式子,格式为:关系式1 逻辑运算符 关系式2。运算符:not/! 逻辑非And 逻辑与Or 逻辑或其优先级的顺序是由高到低。运算结果的类型:仍是逻辑型数据的式子,即逻辑表达式。注意:不同类型的运算符之间的优先级顺序为:先执行算术运算符、字符串运算符和日期时间运算符,其次执行关系运算符,最后执行逻辑运算符。(五)常用函数1.定义:函数是用程序来实现的一种数据运算或转换,也就是预先定义好的程序段。可有若干运算对象,但只能有一个运算结果,成为函数值或返回值。2.格式:函数名() 若括号内有变量则为有参函数,括号内无变量则为无参函数。但无论怎样,括号都不可省略。3.常

16、用函数的类型:1)数值函数:自变量和函数值为数值的一类函数。8个& 求绝对值函数格式:abs(数值表达式)功能:返回指定数值表示的绝对值结果:为N型,且必然>=0& 求符号函数格式:sign(数值表达式)功能:返回指定数值表达式的符号结果:为N型,当表达式的运算结果为正、负和零时,函数值分别为1、-1和0 & 求平方根函数格式:aqrt(数值表达式)功能:返回指定表达式的平方根,自变量表达式的值需>=0结果:为N型,且且必然>=0& 求圆周率函数格式:pi()功能:返回圆周率,该函数没有自变量结果:为N型,即为3.14& 求整函数格式:

17、int(数值表达式) 只求整,不四舍五入ceiling(数值表达式)floor(数字表达式)功能:返回指定数值表达式的整数部分返回大于或等于指定数值表达式的最小整数返回小于或等于指定数值表达式的最大整数结果:N型& 四舍五入函数格式:round(数值表达式1,数值表达式2)功能:返回指定表达式在指定位置四舍五入的结果,数值表达式2指定四舍五入的位置。若数2>0,表示的是对数1要求的所保留的小数位数;若数2=0,表示的是对数1取整数,并四舍五入;若数2<0,表示的是对数1的整数位舍入的位数,并四舍五入。结果:为N型& 求余函数格式:mod(数值表达式1,数值表达式2)

18、功能:返回两个数值相除后的余数。数1是被除数,数2是除数。其他原则与求余运算符%的用法相同:被除数与除数都必须是整数,除数不能为0。求余三原则表述如下:若c=a%b 做这种题的时候先算出c=a%b的值,然后c必须与a同号。还要注意的是:若a与b同号,则当前余数就是c若a与b异号,则当前余数结果是b+c结果:为N型注意:判定x是否能被i整除的方法有:mod(x,i)=0x%i=0int(x/i)= x/i& 求最大值和最小值函数格式:max/min(表达式1,表达式2表达式n) 其表达式的类型任意,但写入括号内的必须是同一类型的表达式。功能:计算各自变量表达式的值,并返回其中的最大值或最

19、小值结果:根据括号内表达式的类型而定2)字符函数:自变量一般是字符型数据的函数。10个& 求字符串长度函数格式:len(字符表达式)功能:返回指定字符表达式值的长度,即所包含的字符个数。结果:N型& 大小写转换函数格式:upper/lower(字符表达式)功能:将指定表达式中的小写字母转换成大写字母或者将指定表达式中的大写字母转换成小写字母,其他字符不变结果:C型& 空格字符串生成函数格式:space(数值表达式)功能:返回由指定数目的空格组成的字符串结果:C型& 删除前后空格函数格式:trim(字符表达式)ltrim(字符表达式)alltrim(字符表达式)功

20、能:返回指定字符表达式值去掉尾部空格后形成的字符串返回指定字符表达式值去掉前导空格后形成的字符串返回指定字符表达式值去掉前导和尾部空格后形成的字符串结果:C型& 取子串函数格式:left(字符表达式,长度)right(字符表达式,长度)substr(字符表达式,起始位置,长度)若缺省长度,表示从指定位置一直取到最后一个字符功能:从指定表达式值的左端取一个指定长度的字串作为函数值从指定表达式值的右端取一个指定长度的字串作为函数值从指定表达式值的指定起始位置取一个指定长度的字串作为函数值结果:C型& 计算子串出现次数函数格式:occurs(字符表达式1,字符表达式2)功能:返回第一

21、个字符串在第二个字符串中出现的次数,若字符串1不是字符串2的字串,函数值为0结果:N型& 求子串位置函数格式:at(字符表达式1,字符表达式2,数值表达式) 区分大小写atc(字符表达式1,字符表达式2,数值表达式)不区分大小写功能:若字符表达式1是字符表达式2的字串,则返回字符表达式1值的首字母在字符表达式2值中的出现位置;若不是字串返回0;第三个变量数值表达式用于表明要在字符表达式2值中搜索字符表达式1值的第几次出现的位置,数值表达式的默认值是1。结果:N型& 子串替换函数格式:stuff(字符表达式1,起始位置,长度,字符表达式2)功能:用字符表达式2的值替换字符表达式1

22、中由起始位置和长度指明的一个子串,替换和被替换的字符个数不一定相等。如果长度值是0,字符表达式2则插入由起始位置指定的字符前,如果长度值是空串,那么字符表达式1中由起始位置和长度指明的字串被删去。 结果:C型& 字符替换函数格式:chrtran(字符表达式1,字符表达式2,字符表达式3)功能:当字符表达式1中的一个或多个字符与字符表达式2中的某个字符相匹配时,就用字符表达式3中的相同位置上的对应字符替换这些字符。如果字符表达式3包含的字符个数少于字符表达式2包含的字符个数,因为没有对应字符那么字符表达式1中相匹配的各个字符将被删除;如果字符表达式3包含的字符个数多于字符表达式2包含的字

23、符个数,多余字符被忽略。结果:C型& 字符串匹配函数格式:like(字符表达式1,字符表达式2)功能:比较两个字符串对应位置上的字符,若所有对应字符都相匹配,函数值返回逻辑真,否则返回逻辑假;字符表达式1中可以包含通配符*和?,*可与任何数目的字符相匹配,?可以与任何单个字符相匹配。结果:L型3)日期和时间函数:自变量一般是日期型或日期时间型数据的函数。& 系统日期、系统时间和系统日期时间函数格式:date()time()datetime()功能:返回当前系统日期返回当前系统时间返回当前系统日期时间结果:D型C型T型& 求年份、月份和天数函数格式:year(日期表达式/

24、日期时间表达式)month(日期表达式/日期时间表达式)day(日期表达式/日期时间表达式)功能:从指定的日期表达式或日期时间表达式中返回年份从指定的日期表达式或日期时间表达式中返回月份从指定的日期表达式或日期时间表达式中返回天数结果:N型& 求时、分、秒函数格式:hour(日期时间表达式)minute(日期时间表达式)sec(日期时间表达式)功能:从指定的日期时间表达式中返回小时部分(24小时制)从指定的日期时间表达式中返回分钟部分从指定的日期时间表达式中返回秒数部分结果:N型4)数据类型转换函数:其功能就是将某一种类型的数据转换成另一种类型的数据。5个 & 数值转换成字符串

25、格式:str(数值表达式,长度,小数位数)功能:将数值表达式的值转换成字符串,需要时自动四舍五入设数值表达式原长度为m,指定长度为n若n>m,返回结果自加前导空格若整数位<=n<=m,优先取整数部分,再根据指定长度中剩下的位数确定小数位,注意整数位中不包括小数点若n<整数位,返回结果为一串星号*,即不能正常转换。注意:长度的默认值是10,小数位数的默认值是0结果:C型& 字符串转换成数值格式:val(字符表达式)功能:将由数字符号(包括正负号、小数点)组成的字符型数据转换成相应的数值型数据。若字符串内出现非数字字符,那么只转换前面部分;若字符串的首字符不是数字符

26、号,则返回数值零,但忽略前导空格。结果:N型& 字符串转换成日期或日期时间格式:ctod(字符表达式)ctot(字符表达式)功能:将字符表达式的值转换成日期型数据将字符表达式的值转换成日期时间型数据结果:D型或T型& 日期或日期时间转换成字符串格式:dtoc(日期表达式/日期时间表达式)/dtoc(日期表达式/日期时间表达式 ,1) ttoc(日期时间表达式)/ttoc(日期时间表达式 ,1)注意:,1表示去掉年月日之间的分隔符功能:将日期型数据或日期时间型数据的日期部分转换成字符串将日期时间型数据转换成字符串结果:C型,结果分别为8个和14个字符& 宏替换函数格式:&

27、amp;字符型变量.功能:替换出字符型变量的内容,若该函数与其后的字符无明确分界,则用.作为函数结束标识结果:由字符型变量的内容决定5)测试函数:主要用来测试当前操作对象的状态。11个& 值域测试函数格式:between(表达式1,表达式2,表达式3)功能:判断表达式1的值是否在表达式2和表达式3的值之间,若表达式1的值大于等于表达式2的值并且小于等于表达式3的值,那么函数值为逻辑真,否则为逻辑假。若表达式2和表达式3的值中有一个是null值,那么函数值也为null值结果:L型或null值& null值测试函数格式:isnull(表达式)功能:判断表达式的运算结果是否为null

28、值,是则返回逻辑真,否则逻辑假结果:L型若表文件中不包含任何记录则 函数返回逻辑真& 表文件尾测试函数格式:eof(工作区号/表别名)功能:测试指定表文件中的记录指针是否指向文件尾,是则返回逻辑真,否则返回逻辑假 结果:L型注意:若缺省自变量则测试当前表文件若表文件中不包含任何记录则函数返回逻辑真& 记录号测试函数格式:recno(工作区号/表别名)功能:测试指定表文件中当前记录指针所指记录的记录号结果:N型注意:若缺省自变量则测试当前表文件若指定工作区没有打开的表文件,函数值为0若bof()返回.t.即指针指向文件首,函数值为1若eof()返回.t.即指针指向文件尾,函数值为

29、总记录+1& 记录个数测试函数格式:reccount(工作区号/表别名)功能:返回指定表文件中的记录个数结果:N型注意:若缺省自变量则测试当前表文件若指定工作区没有打开的表文件,函数值为0& 条件测试函数格式:iif(逻辑表达式,表达式1,表达式2)功能:测试逻辑表达式的值,若为逻辑真,函数返回表达式1的值,若为逻辑假,函数返回表达式2的值结果:根据表达式1和表达式2的类型而定注意:表达式1和表达式2的类型不要求相同& 记录删除测试函数格式:deleted(工作区号/表别名)功能:测试指定的表文件中的当前记录是否有逻辑删除标记,有则返回逻辑真,没有则返回逻辑假结果:L型

30、四、VF数据库及其操作(一)数据库及其相关操作1.概念:1)含义:数据库是一个逻辑上的概念和手段,它通过一组系统文件将相互关联的数据库表及其相关的数据库对象统一组织和管理。2)扩展名:.dbc。与之相关的会自动建立.dct的数据库备注文件和.dcx的数据库索引文件。2.建立数据库文件:3种方法1)打开项目管理器数据选项卡数据库新建新建数据库输入数据库文件名保存2)文件新建文件类型:数据库输入数据库文件名保存3)create database 数据库文件名(此命令输入后数据库文件已建立,但其数据库设计器并未显示,只需再输入modify database 数据库文件名即可显示)3.打开数据库文件:

31、3种方法1)打开项目管理器数据选项卡选中相应的数据库打开/关闭2)文件打开文件类型:数据库选中相应的数据库确定3)open database 数据库文件名4.修改数据库文件:3种方法即调用数据库设计器1)打开项目管理器数据选项卡展开数据库至相应的数据库修改2)文件打开文件类型:数据库选中相应的数据库确定3)modify database 数据库文件名(文件名存在是修改,不存在即为新建)5.关闭数据库文件:2种方法1)close database 关闭当前数据库(之后不加当前库文件名)2)close all 关闭所有打开的数据库6.删除数据库文件:2种方法1)打开项目管理器数据选项卡展开数据库至

32、相应的数据库移去移去2)delete database 数据库文件名注意:& 做题前切记设置好自己的存盘位置,未存至指定位置,不得分。& 项目、项目文件、项目管理器使用项目管理器时,先要建立项目文件(.pjx)项目文件的建立方法:2种鼠标法:文件新建文件类型:项目输入项目文件名保存项目管理器 命令法:create/modify project 项目文件名项目是指文件、数据、文档和vf对象的集合项目管理器是vf中处理数据和对象的主要组织工具,为系统开发者提供了极为便利的工作平台;功能:组织和管理数据以及编译。项目管理器各选项卡的具体内容: 全部选项卡:数据 文档 类 代码 其他

33、数据选项卡:数据库 自由表 查询 文档选项卡:表单 报表 标签 类选项卡:无 代码选项卡:程序 API库应用程序 其选项卡他:菜单 文本文件 其他文件(二)数据库表及其相关操作1.概念:数据库表是数据的载体,扩展名为.dbf。2.建立数据库表:4种方法1)打开项目管理器数据选项卡展开相应数据库至表新建新建表输入数据库表文件名保存2)打开数据库设计器击右键/数据库菜单新建表输入数据库表文件名保存3)文件新建文件类型:表输入数据库表文件名保存4)create 表名.dbf注意:建立数据库表时窗口必须打开相对应的数据库。3.打开数据库表:2种方法1)文件打开文件类型:表选中相应表确定2)use 表名

34、(有表名是打开相应表,无表名是关闭表)4.修改数据库表:4中方法1)打开项目管理器数据选项卡展开数据库至相应的表修改2)数据库设计器选中相应表击右键/数据库菜单修改3)选中相应表显示菜单表设计器修改即可4)modify structure5.删除数据库表:3种方法1)打开项目管理器数据选项卡展开数据库至相应的表移去删除2)数据库设计器选中相应表击右键/数据库菜单删除/移去删除3)drop table 数据库表名6.表的浏览:4种方法1)打开项目管理器数据选项卡展开数据库至相应的表浏览2)数据库设计器选中相应表击右键/数据库菜单浏览3)选中相应的表显示菜单浏览4)browse 表名(之前需用us

35、e 命令选定当前表)7.向表追加记录(都是追加在原有记录之后)² append blank 在所有记录后追加一条空白记录,等价于表菜单-追加新记录 ² append 在所有记录后追加若干条新记录8.向表插入记录² insert 在当前记录之后插入若干条记录² insert before 在当前记录之前插入若干条记录² insert blank 在当前记录之后插入一条记录² insert before blank 在当前记录之前插入一条记录9.删除表记录逻辑删除:只是在记录旁作删除标记,必要时还可去掉删除标记恢复表记录 ² d

36、elete 删除表中当前记录² delete for 条件表达式 删除表中满足条件的所有记录物理删除:真正从表中删除记录² pack 将当前表中具有逻辑删除标记的记录物理删除² zap 将当前表中所有记录物理删除,无论是否由逻辑删除标记10.恢复表记录² recall 恢复表中当前记录² recall all 恢复表中所有被删记录² recall for 条件表达式 恢复表中满足条件的所有被删记录11.更新表记录² replace all 字段名 with 表达式 把表中全部记录的字段名更新为表达式的值 ² rep

37、lace 字段名 with 表达式 只把表中当前记录的字段名更新为表达式的值 ² replace 字段名 with 表达式 for 条件表达式 只把表中满足条件的记录的字段名更新为表达式的值12.显示表记录² list 默认显示当前表中所有记录² dispay 默认显示当前表中当前记录² list/display 字段名1字段名n for 条件表达式 显示表中满足调价的记录 ² list next n(n为正整数或负整数)显示从当前记录往后/往前算起的n条记录13.查询定位记录² go n(此处n为记录号)将指针定位于第n条记录,即记

38、录号为n的记录 ² go top 将指针定位于首记录² go bottom 将指针定位于尾记录² skip n(n为正整数或负整数,默认为1) 指针从当前记录向下/向上跳n² 条件定位:locate for 定位表达式 将指针定位于当前表中满足条件的第一条记录上为了判断指针所指向的记录是否满足条件,可用found()函授测试,返回逻辑真值,表示满足条件,并且还可通过continue命令继续查找表中其他满足条件的记录。(三)自由表及其与数据库表之间的转换1.自由表:即不属于任何数据库的表。它的建立方法与数据库表的方法相同,但是窗口必须要没有打开的数据库。2

39、.自由表与数据库表之间的转换1)将自由表添加到数据库中 打开项目管理器数据选项卡展开数据库至表添加选中自由表确定 打开数据库设计器击右键/数据库菜单添加表选中自由表确定 add table 自由表名2)从数据库中移为自由表 打开项目管理器数据选项卡展开数据库至表移去移去 打开数据库设计器击右键(删除)/数据库菜单(移去)移去 remove table 自由表名(四)索引及其相关操作1.概念:索引是由指针构成的文件,这些指针逻辑上按照索引关键字值进行排序,创建一个指向(.dbf)文件记录的由指针构成的文件,新创建的索引文件和.dbf文件分别存储,并不改变原表中记录的物理顺序。2.作用:可加速对表

40、的查询操作。3.分类:1)主索引:建立主索引的字段值不允许重复,一个表只能有一个主关键字,所以一个表只能创建一个主索引,自由表不能建立主索引。2)候选索引:也要求建立候选索引的字段值不允许重复,一个表可建多个候选索引,自由表也可建立候选索引。3)唯一索引:为分类排序,建立唯一索引的字段值可以重复,它以指定字段的首次出现值为基础,选定一组记录并对记录进行分类且排序,一个数据库表或自由表中可建多个唯一索引。4)普通索引:建立普通索引的字段值可以重复,并且索引项中也允许出现重复值,系统默认为普通索引。一个数据库表或自由表可建多个普通索引。4.索引的建立:2种方法1)用鼠标在表设计器进行,方法如下:打

41、开表设计器字段选项卡选中相应字段名选择升/降序索引选项卡选择索引类别确定2)通过命令建立,格式如下:index on 字段名 to 单独索引文件名/tag 索引项名 asce(默认升序,可省略不写)/desc(降序) unique(唯一索引)/candidate(候选索引)注意:to 单独索引文件名建立的是单独索引文件,它的扩展名是(.idx),一般只在建立临时索引时才可使用,其中只有一个排序,并且只能建立唯一索引或普遍索引。 tag索引项名短语是建立结构符合索引,即多个索引可建立在一个索引文件中,其文件名与相关的表同名,并且有.cdx为扩展名,其中包含多个排序。5.索引的使用1)打开索引文件

42、:set index to 结构复合索引文件名.cdxset index to 单独索引文件名.idx2)在使用一个特定的索引项进行查询显示时,必须指定当前索引项:set order to 索引项名/序列号3)使用索引快速定位:seek 字段值 order 索引项名/序列号作用:根据某个索引项将指针快速定位于相关字段值的第一条记录4)删除索引:delete tag 索引项名 删除指定索引delete tag all 删除当前表中所有索引(五)数据完整性1.概念:是保证数据正确的特性,一般包括实体完整性、域完整性和参照完整性等。2.实体完整性1)概念:是保证表中记录唯一的特性,即在一个表中不允许

43、有重复的记录。2)实现方法:在vf中利用主关键字(主索引)或候选关键字(候选索引)来保证表中记录的唯一性。3.域完整性1)概念:即字段有效性,是字段值的取值范围。只有数据库表中才可建立域完整性。2)域约束规则:也称为字段有效性规则,即通过对字段类型、字段宽度或定义的取值范围来对输入数据进行正确性检验。3)建立方法:打开表设计器选中相应的字段编辑其约束性规则确定编辑其约束性规则时的要求:规则:逻辑表达式确定字段值取值范围信息:字符串表达式若违背上述规则时窗口的提示信息alter table 表名 alter 字段名 set/drop check(规则)逻辑式 error(信息)字符表达式默认值:

44、所写数据类型由字段类型决定alter table 表名 alter 字段名 set/drop default(默认值)默认值的值4.参照完整性1)含义:当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检验对表的数据操作是否正确。2)三原则:插入原则、删除原则和修改原则3)建立和编辑参照完整性原则的方法:3步² 建立表之间的联系(两表必须在同一数据库中)打开数据库设计器父表建立主索引,字表建立普通索引建立相应表之间的联系(鼠标从主索引拖拽至普通索引即可,表之间会生成一条细实线,右击可删除联系)² 清理数据库(即指物理删除数据库中各个表中所有带有删

45、除标记的记录,相当于pack)打开数据库设计器数据库菜单清理数据库(若清除未成功,则close all,然后再以独占方式打开数据库重新清理即可)² 设置参照完整性原则打开数据库设计器击右键/编辑参照完整性规则更新规则规定了当更新父表中连接字段(主关键字)值时,如何处理相关的子表中的记录: 级联则用新的连接字段值自动修改子表中的相关所有记录;限制若子表中有相关记录,则禁止修改父表中的连接字段值;忽略则不作参照完整性检查,可以随意更新父表中的连接字段值。删除规则规定了当删除父表中记录时,如何处理子表相关的记录:级联则自动删除子表中相关所有记录;限制若子表中有相关的记录,则禁止删除父表中的

46、记录;忽略则不作参照完整性检查,即删除父表的记录时与子表无关。插入规则规定了当插入子表中的记录时,是否进行参照完整性检查:限制若父表中没有匹配的连接字段值则禁止插入子表记录;忽略则不作参照完整性检查,即可以随意插入子表记录。(六)多个表的同时使用与建立表之间的临时关联1.多个表的同时使用1)vf中共有32767个工作区,每一个工作区只能打开一张表;若需在同一时刻打开多个表,则只需在不同的工作区中打开不同的表。2)指定工作区的命令格式:格式一:select 工作区号(1-32767)/系统别名(a-j,w11-w32767)/0(即选定当前最小工作区)注意:此格式最后一次所选工作区为当前工作区格

47、式二:use 表名 in 工作区号/系统别名/0注意:此格式第一次所选工作区为当前工作区3)测试当前工作区号的函数:selected()2.建立表之间的临时关联1)含义:永久联系是指基于索引建立的表之间的关联,显示为表索引之间的细实线,每次使用时不需重新建立,但它不能控制工作区中记录指针的联动。临时关联:能够控制表之间记录指针关系的临时联系(父动子动)。2)建立方法:² 分工作区打开相应表² 分别为不同工作区的表中的外部关键字建立索引(普通索引)² 建立临时关联命令格式为:set relation to 索引关键字(外部关键字)into工作区号/系统别名/表名 注

48、意:当前工作区的表为父表。而into 短语后的工作区中的表为子表。3)解除临时联系:set relation to 取消当前记录到所有表的临时关联;set relation off into工作区号/系统别名/表名 取消某个具体的临时联系。五、关系数据库标准语言SQL(一)SQL概述1.SQL的基本概况1)含义:SQL是structured query languge的缩写,它是关系数据库的标准数据语言,所有的关系数据库管理系统都支持。2)功能:数据查询、数据操作和数据定义2.特点1)一体化:包括数据定义、查询和操作等方面功能,可以完成数据库活动中的全部工作;2)高度非过程化:只需告诉计算机用

49、户做什么,SQL便可自动完成全部工作;3)非常简洁:只有为数不多的几条命令组成;4)它可以直接以命令方式使用,也可以嵌入到程序设计语言中以程序方式使用。3.主要短语及其含义1)select-说明要查询的数据2)from-说明查询的数据来自哪些表,可对单表或多表进行查询3)where-说明查询条件,即选择元组的条件4)group by-用于对查询进行分组,可用它对数据进行分组汇总5)having-必须跟group by短语一起使用,用来限定分组必须满足的条件6)order by-用来对查询的结果进行排序(二)SQL的查询功能1.简单查询1)适用范围:即单表查询,查询的字段信息和查询条件都来自于同

50、一张表2)语法格式:select 字段名1,字段名n from 表名 where 条件式3)查询细节:ü distinct 去掉查询结果中的重复值ü 若查询某张表的全部字段,则可把select后的字段名全部用通配符*代替即可ü union并运算可把两个select语句的查询结果合并成一个查询结果(要求是两个查询结果要具有相同的字段个数,并且对应字段的值要出自同一个值域,即具有相同的数据类型和取值范围)ü 查询去向:into array 数组名将查询结果存放于数组中into cursor 临时表文件名将查询结果存放于临时只读文件,关闭时自动删除 into

51、dbf/table 自由表文件名将查询结果存放于永久表中to file 文本文件名将查询结果存放于文本文件中2.简单的联接查询1)适用范围:查询的字段信息或条件来自于多张表2)语法格式:select 字段名1,字段名n from 表名1,表名n where 联接条件 and 其他条件3.嵌套查询1)适用范围:查询的字段信息出自于同一张表,而查询条件出自于其他表2)语法格式:select 字段名1,字段名n from 表名1 where 外部关键字 in (select 外部关键字 from 表名2 where 条件)3)查询细节:ü 几个特殊的运算符:betweenand用于查询满足

52、某个值域范围内的记录;like用于查询与指定字段值相匹配的记录(like后所指定的字段值一定是个字符型数据;通配符%表示0个或多个字符,_”只表示一个字符)ü 排序:order by 字段名1 asce/desc,字段名n asce/desc注意:系统默认升序,asce可省略,允许按一个或多个字段对查询结果排序ü 简单计算查询:count()-计数 sum()-求和,所指字段是N型 avg()-求平均数,所指字段是N型 max()-求最大值,所指字段是N型min()-求最小值,所指字段是N型ü 分组与计算查询:group by 字段名1,字段名n having 条

53、件表达式 (注意:having必须和group by一起使用,因为它是对分组后的结果进一步进行筛选,having条件和where条件不矛盾,在select语句查询中是先用where子句限定元组,然后进行分组,最后再用having子句限定分组结果)ü 利用空值查询:is null/is not nullü 内外层互相嵌套查询:内层查询的条件需要外层查询提供值,而外层查询的条件需要内层查询的结果ü 使用量词和谓词的查询:表达式 运算符 any/some/all(select子查询)其中any和some表任意一个,all表示全部not exists(select子查询)

54、exists表示存在ü 虚字段:即原表中并无此字段,是通过函数或者表达式计算所得出的字段名;其格式为:表达式/函数 as 虚字段名ü 显示部分结果:top 表达式 percent order by 字段名1,字段名n注意:不使用percent时,在1-32767之间取值,说明显示前几条记录使用percent时,则在0.01-99.99之间取值,说明显示前百分之几的记录并且top短语要与order by短语同时使用才有效4.内联接查询:超级联接查询的一种1)适用范围:查询的字段名或查询条件来自于多张表2)语法格式:select 字段名1,字段名n from 表名1 inner

55、 join 表名2 on 联接条件 where 条件(三)SQL的操作功能1.插入功能1)标准格式:insert into 表名(字段名1,字段名n)values(字段值1,字段值n) 注意:此命令格式表示向表中插入记录,当插入的不是完整的记录时必须指明字段2)特殊格式:insert into 表名 from array 数组名注意:此命令格式表示从指定的数组向表中插入记录2.更新功能1)格式:update 表名 set 字段名1=表达式1,字段名n=表达式n where 条件式 注意:使用where表示更新满足条件的记录,不使用where则更新全部记录2)注意update命令与replace

56、命令的区别:² update可对一表和多表操作,replace只能对当前一表操作² update用where接条件表达式,replace用for接条件表达式² update用=接表达式,replace用with接表达式² update用set接字段名,replace的字段名前不加set² update不用where子句就可更新全部记录,replace有all无for条件才是更新全部记录3.删除功能1)格式:delete from 表名 where 条件注意:此命令表示逻辑删除表中相应的记录,有where条件时表示逻辑删除表中满足条件的记录2)本格式可用于一表与多表,而delete for条件则只可用于当前表(四)SQL的定义功能1.表的定义,即建立表1)格式:create table 表名(字段名1 字段类型(宽度),字段名n 字段类型(宽度)2)注意:2.表的删除1)格式:drop table 表文件名2)注意:3.表结构

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论