68

Click here to load reader

第 2 章 数据库管理系统基础知识

Embed Size (px)

DESCRIPTION

第 2 章 数据库管理系统基础知识. 2.1 数据类型. 2.2 数据存储. 2.3 运算符及表达式. 2.4 函数. 2.5 命令. 退出. 2.1 数据类型. 1. 字符型数据. 8. 日期型数据. 2. 数值型数据. 9. 日期时间型数据. 3. 整型数据. 10. 备注型数据. 4. 浮点型数据. 11. 通用型数据. 5. 双精度符型数据. 12. 字符型数据(二进制). 6. 货币型数据. 13. 备注型数据(二进制). 7. 逻辑型数据. 退出. 1. 字符型数据. - PowerPoint PPT Presentation

Citation preview

Page 1: 第 2 章 数据库管理系统基础知识

第第 22 章 数据库管理系统基础知章 数据库管理系统基础知识识2.1 2.1 数据类型数据类型2.2 2.2 数据存储数据存储

2.3 2.3 运算符及表达式运算符及表达式2.4 2.4 函数函数2.5 2.5 命令命令退出退出

Page 2: 第 2 章 数据库管理系统基础知识

2.1 数据类型1. 1. 字符型数据字符型数据

13. 13. 备注型数据(二进制)备注型数据(二进制)

2. 2. 数值型数据数值型数据

4. 4. 浮点型数据浮点型数据5. 5. 双精度符型数据双精度符型数据

7. 7. 逻辑型数据逻辑型数据6. 6. 货币型数据货币型数据

3. 3. 整型数据整型数据

退出退出

8. 8. 日期型数据日期型数据9. 9. 日期时间型数据日期时间型数据

10. 10. 备注型数据备注型数据11. 11. 通用型数据通用型数据

12. 12. 字符型数据(二进制)字符型数据(二进制)

Page 3: 第 2 章 数据库管理系统基础知识

1. 字符型数据字符型数据( Character )是指用各种文字字符表示的数据,包括 26 个英文大小写字母、 10 个阿拉伯数字、各种汉字、专用符号和空格等,最大长度可达 254 个字符。注意:如果将阿拉伯数字定义为字符型数据时,它不具备数学上的数值含义,不能参加数学运算,如电话号码,邮编等。

2. 数值型数据数值型数据 (Numeric) 是指可以进行算术运算的数据,包含 0 ~ 9 的阿拉伯数字、小数点与正负号,最大长度为 20 位。在内存中,数值型数据占用 8 个字节。一般将需要参加数学运算的数据定义成数值型。

Page 4: 第 2 章 数据库管理系统基础知识

3. 整型数据整型数据 (Integer) 是不包含小数点部分的数值型数据,以二进制形式存储,占用 4 个字节。

4. 浮点型数据浮点型数据 (Float) 是数值型数据的一种,在存储形式上采取浮点格式。它由尾数、阶数及字母 E 组成。

5. 双精度型数据双精度型数据 (Doub1e) 是具有更高精度的数值型数据,占用 8 个字节的存储空间。

Page 5: 第 2 章 数据库管理系统基础知识

6. 货币型数据货币型数据 (Currency) 装入表示货币量的数据,占用 8 个字节。

7. 逻辑型数据逻辑型数据( Logic )是用来进行各种逻辑判断的数据,只有两个值,即真( .T. )和假( .F. ),长度固定为 1位,占用 1 个字节。

日期型数据 (Date) 是用来专门表示日期的数据。存储格式为“ YYYYMMDD” ,共占用 8 个字节。

8. 日期型数据

Page 6: 第 2 章 数据库管理系统基础知识

9. 日期时间型数据日期时间型数据 (Date Time) 是描述日期和时间的数据。其字符存储格式为“ YYYYMMDDHHMMSS” ,保存在两个 4 字节的整数中。

10. 备注型数据备注型数据( Memo )用于存放数据较长的字符型数据类型,固定占用 4 个字节的内存空间,用来存放 Visual FoxPro 的内部指针,实际的数据存放在与数据表文件同名的 .FPT 文件中,并且所存放的内容只受磁盘空间的限制。

Page 7: 第 2 章 数据库管理系统基础知识

11. 通用型数据通用型数据 (General) 用于存储 OLE ( Object Linking and Embedding )对象,只能用于数据表中字段的定义。该字段包含了对 OLE 对象的引用,而 OLE 对象的具体内容可以是一个电子表格、文档、图片等。通用型数据长度固定为4 位,实际数据长度仅受磁盘空间的限制。

12. 字符型数据(二进制)

13. 备注型数据(二进制)

Page 8: 第 2 章 数据库管理系统基础知识

2.2 数据存储2.2.1 2.2.1 常量常量2.2.2 2.2.2 变量变量

2.2.5 2.2.5 对象、类和属性对象、类和属性

2.2.3 2.2.3 数组数组2.2.4 2.2.4 字段、记录、数据表字段、记录、数据表

退出退出

Page 9: 第 2 章 数据库管理系统基础知识

( 1 )字符型常量:用定界符(单引号、双引号和方括号) 括起来的字符串。 ( 示例:“ ade” ‘568’ [book] “‘book’ 的中文意思是‘书’。”)( 2 )数值型常量(示例: 538,-10.5 )( 3 )浮点型常量(示例: -1.05E+20 )( 4 )日期型常量:表示一个确切的日期,用大括号作为定界符,默认格式为 {mm/dd/yy} 。 严格的日期格式: {^YYYY-MM-DD} (示例: {05/23/99} , {^2001-08-16} )( 5 )逻辑型常量(示例: .t. .T. .f. .F. .Y. .N. .y. .n. )( 6 )日期时间型常量(示例: {05/16/99 12:00:00})

2.2.1 常量

Page 10: 第 2 章 数据库管理系统基础知识

2.2.2 变量

1. 字段变量变量:在使用过程中其值可以改变的量。包括字段变量、内存变量、数组变量和系统内存变量。

( 1 )字段变量隶属于数据表文件。( 2 )数据表是存在于计算机中的一个二维表格,数据表中的每一列称为一个字段,是数据表进行数据处理的基本单位;数据表中的每一行内容称为一条记录,由若干个相关联的字段组成。( 3 )在数据表中,字段必须先定义后赋值,然后才可以使用。( 4 )字段变量名由汉字、字母、数字和下划线组成,必须以字母或汉字开头。( 5 )字段变量的数据类型有 13 种,与前面的数据类型相同。

Page 11: 第 2 章 数据库管理系统基础知识

2. 内存变量( 1 )内存变量:存在于内存中的变量,常被用来存储所需要的常数、中间结果或最终结果。变量名由汉字、字母、数字和下划线组成,必须由字母或汉字开头。( 2 )当内存变量名与字段变量名相同时,字段名优先于内存变量名,使用时可以在内存变量名前加上“ M->” 以示区别,但赋值时不能使用该前缀。

1)建立内存变量文件格式: STORE < 表达式 > TO < 内存变量名表 >

或 < 内存变量名 >=< 表达式 >

示例: B=6

STORE B+3 TO C

STORE “ 中国” TO A,B,C

Page 12: 第 2 章 数据库管理系统基础知识

格式: LIST / DISPLAY MEMORY [LIKE < 通配符 >] [TO PRINTER / TO FILE < 文件名 >] [NOCONSOLE]

说明:通配符指“?”和“ *”

< 文件名 > 的扩展名为 .TXT

LIST 和 DISPLAY 区别为: LIST连续显示; DISPLAY 分页显示。示例: A=“ 中国” A1=5

LIST MEMORY LIKE A*

2 )显示和打印全部的内存变量

Page 13: 第 2 章 数据库管理系统基础知识

格式: SAVE TO < 内存变量文件名 >/TO MEMO < 备注型字段> [ALL LIKE/ALL EXCEPT < 通配符 >]

说明:内存变量文件的扩展名为 .MEM

示例: SAVE TO AA

SAVE TO MM ALL LIKE X*

SAVE TO BB ALL EXCEPT ?Y

3 )建立内存变量文件

4)内存变量文件的调入格式: RESTORE FROM < 内存变量文件名 >/FROM MEMO <备注型字段名 > [ADDITIVE]

示例: RESTORE FROM MM

RESTORE FROM BB ADDITIVE

Page 14: 第 2 章 数据库管理系统基础知识

格式: RELEASE < 内存变量名表 >

或 RELEASE ALL [LIKE < 通配符 >/EXCEPT < 通配符 >]

或 CLEAR MEMORY

或 CLEAR ALL

说明:释放指定的内存变量,但不清除系统内存变量; CLEAR ALL 在关闭所有文件的同时清除所有的内存变量。示例: RELEASE ALL

RELEASE X,Y,Z

RELEASE ALL LIKE A*

5 )释放内存变量

Page 15: 第 2 章 数据库管理系统基础知识

2.2.3 数组( 1 )数组变量:一组变量的集合,这些变量的数据类型可以不同,每个数组元素都可以通过一个数值下标被引用,相当于一个内存变量。

( 3 )一维数组:各个元素按线性排列; 二维数组:类似于一个数据表,第一维是行,第二维是列。

( 2 )数组元素的数据类型是通过所赋值的数据类型来确定的。

3. 系统内存变量系统内存变量是系统已经定义好的一些变量,通常以下划线开头。

Page 16: 第 2 章 数据库管理系统基础知识

1. 数组的定义命令格式: DIMENSION/DECLARE < 数组名 1>(< 数值表达式 1> [,< 数值表达式 2>]) [,< 数组名 2>(< 数值表达式 3> [,< 数值表达式 4>])]…

说明: < 数值表达式 > 为数组下标,对一维数组来说,指的是数组元素的个数;对二维数组来说,指的是数组的最大行号和最大列号。 数组的下标允许使用圆括号或方括号括起来。 在同一个数组中,不同的数组元素数据类型可以不同。 数组一旦被定义之后,该数组的每个元素的初值为逻辑假值,可以使用有关的命令给数组元素赋值。示例: DIMENSION AB(3),C[2,3]

Page 17: 第 2 章 数据库管理系统基础知识

2. 数组的赋值数组元素的赋值与普通内存变量一样,可以通过 STORE命令或“ =” 来实现。示例: 给二维数组 X 和一维数组 Y 进行赋值。 DIMENSION X(3,4),Y(3) STORE 5 TO X Y(1)=325 Y(2)=“ABC” Y(3)=.T.

3. 数组的重定义( 1 )数组的重定义:使用 DECLARE 或 DIMENSION命令对已定义好的数组的尺寸和维数进行改变,即将一维数组变为二维数组或将二维数组变为一维数组,并且可以改变数组元素的个数,同时将原数组的数据自动复制到重定义的同名数组 (新数组 ) 中。

Page 18: 第 2 章 数据库管理系统基础知识

3. 数组的重定义( 2 )数据的复制原则:把原数组和新数组都看作是一维的;将原数组中的数据从序号 1 开始顺序地复制到新数组对应的数组元素中去;若新数组的元素个数多于原数组的元素个数,则新增加的数组元素取值为 .F.,反之,只取原数组中的前若干个值。( 3 )数组下标的排列规则:数组从下标 1 开始排列,二维数组的元素排列是先按行排,后按列排。示例:己定义了数组 A(6) 与数组 B(2 , 3) ,它们对应的下标排列如下:A(6) : A(1) , A(2) , A(3) , A(4) , A(5) , A(6)B(2 , 3) : B(1,1) , B(1 , 2) , B(1,3) , B(2,1) , B(2,2) , B(2,3)

Page 19: 第 2 章 数据库管理系统基础知识

4. 数组的释放数组的释放:将数组从内存中删除,释放其所占的内存空间,就是数组的释放。命令格式:格式 1 : CLEAR ALL功能:关闭所有文件,同时清除所有的内存变量、数组等,但不清除系统内存变量。格式 2 : CLEAR MEMORY功能:清除所有内存中的变量和数组,但不清除系统内存变量。格式 3 : RELEASE < 内存变量名表或数组名表 >或 RELEASE ALL [LIKE < 通配符 >/EXCEPT < 通配符 >]功能:清除指定的内存变量或数组,但不清除系统内存变量。

Page 20: 第 2 章 数据库管理系统基础知识

2.2.4 字段、记录、数据表( 1 )数据表是一系列相关数据的集合,由多条记录构成。( 2 )字段是数据表中存储、处理数据的基本元素。( 3 )记录是数据表中一组字段的集合,同一个数据表中所有记录拥有相同的字段名,且同名字段在每个记录中的数据类型、数据长度都是相同的。

2.2.5 对象、类和属性( 1 )对象 (Object) 是对一事物属性及行为特征的描述,它将某一数据和使用该数据的一组基本操作或过程封装在一起,从而构成一个统一体。( 2 )类 (Class) 是一组对象的数据和行为特征的抽象描述,是具有共同属性、共同操作性质的对象的集合。( 3 )属性 (Attribute) 是用来描述对象特征的参数。

Page 21: 第 2 章 数据库管理系统基础知识

2.3 运算符及表达式2.3.1 2.3.1 数值运算符及数值表达式数值运算符及数值表达式

2.3.2 2.3.2 字符串运算符及字符表达式字符串运算符及字符表达式2.3.3 2.3.3 日期运算符及日期表达式日期运算符及日期表达式2.3.4 2.3.4 关系运算符及关系表达式关系运算符及关系表达式2.3.5 2.3.5 逻辑运算符及逻辑表达式逻辑运算符及逻辑表达式

2.3.6 2.3.6 类与对象运算符类与对象运算符

退出退出2.3.7 2.3.7 名称表达式名称表达式

Page 22: 第 2 章 数据库管理系统基础知识

( 1 )数值运算符:圆括号()、乘方( ** 或 ^ )、乘( * )、除( / )、模运算或取余( % )、加( + )、减( - )( 2 )数值表达式:由数值运算符将数值型常量、变量、函数等连接起来的式子,其结果为数值型。( 3 )运算符的优先顺序:括号、乘方、乘除与取模、加减示例: 5+7 , 70/(5+2) , 7*8**2

2.3.1数值运算符及数值表达式

( 1 )运算符:对相同类型数据进行运算操作的符号。( 2 )表达式:用运算符将常量、变量、函数等数据连接起来的式子。

Page 23: 第 2 章 数据库管理系统基础知识

( 1 )字符串运算符:完全连接运算符( + )、不完全连接运算符( - )、字符串包含运算符( $ )和精确比较运算符 (= =) 。说明:完全连接运算符:两个字符串的简单连接; 不完全连接运算符:当第一个字符串的尾部有空格时,将第一个字符串尾部的空格移到第二个字符串的尾部,然后,再将两个字符串连接起来。 包含运算符:检测左边的字符串是否被包含在右边的字符串中。如果包含,返回逻辑真值 (.T.) ,否则返回逻辑假值 (.F.) 。 精确比较运算符:只有当两边的字符串完全相等时,才返回逻辑真值 (.T.) 。( 2 )字符表达式:由字符串运算符将字符型常量、变量、函数等连接起来的式子。示例:“ abc ”+” bcd ” 、” abc ”-” bcd ” 、 “ book”$”bookstore” 、“ the”$“this” 、 “ that”= =”that” 、” that ”= =”that”

2.3.2字符串运算符及字符表达式

Page 24: 第 2 章 数据库管理系统基础知识

( 1 )日期型运算符:加法 (+) 、减法 (-)( 2 )日期表达式:由日期运算符将日期型常量、变量、函数等数据连接起来的式子,其返回结果为日期型或者数值型数据。( 3 )日期表达式的几种形式: < 日期型数据 >+< 数值型数据 > < 数值型数据 >+< 日期型数据 > < 日期型数据 >-< 数值型数据 > < 日期型数据 >-< 日期型数据 >示例: {01/01/1996}+20 {05/30/1998}-{05/20/1998} {10/28/1995}-20

2.3.3 日期运算符及日期表达式

Page 25: 第 2 章 数据库管理系统基础知识

( 1 )关系运算符:小于 (<) 、大于 (>) 、等于 (=) 、不等于 (<> 、 # 或 !=) 、小于等于 (<=) 、大于等于 (>=) 。( 2 )关系表达式:由关系运算符、数值表达式、字符表达式或日期表达式组合而成的式子,返回结果为逻辑值。( 3 )关系运算符的两边,可以是字符表达式、数值表达式或者日期表达式,但两边的数据类型必须一致才能进行比较。示例:“ A”>“B” 、 “ A”<=“B”

“A”=“B” 、“ A”<>“B” 、 5+6 >8

2.3.4 关系运算符及关系表达式

Page 26: 第 2 章 数据库管理系统基础知识

( 1 )逻辑运算符:逻辑非( .NOT. )、逻辑与( .AND. )、逻辑或( .OR. )( 2 )逻辑表达式:由逻辑运算符、逻辑型常量、逻辑型内存变量、逻辑型数组、返回逻辑型数据的函数和关系表达式组成,结果为逻辑型常量。( 3 )运算规则:进行逻辑与运算时,当参加运算的双方都为真值时,运算结果为真值,否则为假值;进行逻辑或运算时,当参加运算的双方都为假值时,运算结果为假值,否则为真值;进行逻辑非运算时,运算结果为原来的相反值。示例: 8>3.AND.8<10 “A”>“C”.OR.“A”<“C” .NOT.5<6

2.3.5 逻辑运算符及逻辑表达式

Page 27: 第 2 章 数据库管理系统基础知识

( 1 )名称表达式:指能代替字符型变量或数组元素的值的一个引用。( 2 )定义一个名称时,只能以字母、汉字或下划线开头,名称中只能使用字母、汉字、数字和下划线字符。示例:运用名称表达式打开一个数据表文件。 STORE “C:\VFP\学生成绩” TO AA USE (AA)

2.3.7 名称表达式

2.3.6 类与对象运算符( 1 )点操作符( . ):主要用于确定对象与类的关系,以及属性、事件和方法与其对象的从属关系。( 2 )作用域操作符( :: ):用于在子类中调用父类的方法。

Page 28: 第 2 章 数据库管理系统基础知识

2.4 函数2.4.1 2.4.1 字符处理函数字符处理函数 2.4.2 2.4.2 数值处理函数数值处理函数

2.4.3 2.4.3 日期和时间处理函数日期和时间处理函数 2.4.4 2.4.4 数据转换函数数据转换函数2.4.5 2.4.5 与数据表有关的函数与数据表有关的函数 2.4.6 2.4.6 显示位置函数显示位置函数

2.4.7 2.4.7 文件管理函数文件管理函数2.4.9 2.4.9 系统函数系统函数 SYSSYS()()

2.4.8 2.4.8 数组函数数组函数退出退出

Page 29: 第 2 章 数据库管理系统基础知识

格式: ? < 表达式表 > ?? < 表达式表 >

两条命令

2.4.1 字符处理函数1. 宏代换函数&格式: &< 字符型内存变量 >[.< 字符表达式 >]

示例: aa=“bb” bb= “北京” ?aa,bb,&aa ?“&bb. 是中国的首都” n=“567.83” ?356.08+&n

Page 30: 第 2 章 数据库管理系统基础知识

2. 计算字符串长度函数 LEN()格式: LEN(< 字符表达式 >)

示例: ?LEN(“ABCDF”) ?LEN(“AB C D F”) X=“首都经贸大学” ?LEN(X) 3. 生成空格函数 SPACE()格式: SPACE(< 数值表达式 >)

示例: ?“北京” +SPACE(3)+“首都”4. 取子字符串函数 SUBSTR()格式: SUBSTR(< 字符表达式 > , < 数值表达式 1>[ , <数值表达式 2>])

示例: ?SUBSTR(“城市经济” ,5,4)

Page 31: 第 2 章 数据库管理系统基础知识

5. 字符串转换成小写字母函数 LOWER()格式: LOWER(< 字符表达式 >)

示例: ?LOWER(“ABDF”)

6. 字符串转换成大写字母函数 UPPER()格式: UPPER(< 字符表达式 >)

示例: ?UPPER(“abde”)

7. 删除字符串尾部空格函数 TRIM()格式: TRIM(< 字符表达式 >)

示例: A=“I am a teacher. ”

?TRIM(A)

Page 32: 第 2 章 数据库管理系统基础知识

8. 删除字符串左边空格函数 LTRIM()格式: LTRIM(< 字符表达式 >)

示例: A=“ I am a teacher. ”

?LTRIM(A)

9. 删除字符串右边空格函数 TRIM()格式: RTRIM(< 字符表达式 >)

10. 删除字符串最左边和最右边的所有空格函数格式: ALLTRIM(< 字符表达式 >)示例: A=“ I am a teacher. ” ?ALLTRIM(A)

Page 33: 第 2 章 数据库管理系统基础知识

11. 取字符串左边部分字符函数 LEFT()格式: LEFT(< 字符表达式 >,< 数值表达式 >)

示例: ?LEFT(“there,3”)

12. 取字符串右边部分字符函数 RIGHT()格式: RIGHT(< 字符表达式 >,< 数值表达式 >)

示例: ?RIGHT(“what”,2)

13. 子字符串位置测试函数 AT()格式: AT(< 子字符串 >,<主字符串 >[,< 数字 >])

示例: ?AT(“IS”,“THIS IS A BOOK”) ?AT(“IS”,“THIS IS A BOOK” , 2) ?AT(“A”,“THIS IS A BOOK”) ?AT(“D”,“BOOK”)

Page 34: 第 2 章 数据库管理系统基础知识

14. 测试表达式类型函数 TYPE()格式: TYPE(< 表达式 >)说明:函数返回值为字符型,各字符含义如下: 字符值 数据类型 字符值 数据类型 C 字符型 M 备注型 N 数值型 O 对象型 D 日期型 G 通用型 T 日期时间型 Y 货币型 L 逻辑型 U 未定义型示例: A=567

?TYPE(“A”)

Page 35: 第 2 章 数据库管理系统基础知识

2.4.2 数值处理函数1. 取整函数 INT()格式: INT (< 数值表达式 >)

示例: ?INT(5.96)

?INT(-8.66)

?INT(10.98-2.43)2. 四舍五入函数 ROUND()

格式: ROUND(< 数值表达式 1>,< 数值表达式 2>)

示例: ?ROUND(345.6799,3)

?ROUND(345.6799,0)

?ROUND(345.6799,-2)

Page 36: 第 2 章 数据库管理系统基础知识

3. 取绝对值函数 ABS()格式: ABS(< 数值表达式 >)

示例: ?ABS(-20)

4. 最大值函数 MAX()格式: MAX(< 数值表达式 1>,< 数值表达式 2>)

示例: ?MAX(10,20)

?MAX(-10,-20)5. 最小值函数 MIN()格式: MIN(< 数值表达式 1>,< 数值表达式 2>)

示例: ?MIN(10,20)

?MIN(-10,-20)

Page 37: 第 2 章 数据库管理系统基础知识

6. 求平方根函数 SQRT()格式: SQRT(< 数值表达式 >)

示例: ?SQRT(16)

7. 求自然对数函数 LOG()格式: LOG(< 数值表达式 >)

示例: ?LOG(15.36)

8. 幂函数 EXP()格式: EXP(< 数值表达式 >)

示例: ?EXP(3)

Page 38: 第 2 章 数据库管理系统基础知识

9. 求余数函数 MOD()格式: MOD(< 数值表达式 1>,< 数值表达式 2>)

说明:函数返回值的符号与 < 数值表达式 2> 的符号相同。示例: ?MOD(10,3) ?MOD(10,-3) ?MOD(15,-4) ?MOD(-15,-4) 10. IIF 函数格式: IIF(< 逻辑表达式 >,< 表达式 1>,< 表达式 2>)

示例: X=80 Y=60 ?IIF(X>Y,50+X,100+Y)

Page 39: 第 2 章 数据库管理系统基础知识

2.4.3 日期和时间处理函数1. 系统当前日期函数 DATE()格式: DATE()

2. 系统当前时间函数 TIME()格式: TIME([< 数值表达式 >])

3. 日函数 DAY()格式: DAY(< 日期型表达式 >/< 日期时间型表达式 >)

4. 月份函数 MONTH()格式: MONTH(< 日期型表达式 >/< 日期时间型表达式 >)

5. 年份函数 YEAR()格式: YEAR(< 日期型表达式 >/< 日期时间型表达式 >)

Page 40: 第 2 章 数据库管理系统基础知识

2.4.4 数据转换函数 1. 字符转换成 ASCII 码函数 ASC()格式: ASC(< 字符表达式 >)

功能:给出 < 字符表达式 > 中最左边字符的 ASCII 码的十进制数。示例: ?ASC(“ABCD”)

2. ASCII 码值转换成字符函数 CHR()格式: CHR(< 数值表达式 >)

功能:将 < 数值表达式 > 的值作为 ASCII 码的十进制数,给出对应的字符。示例: ?CHR(65)

Page 41: 第 2 章 数据库管理系统基础知识

3. 数值型转换为字符型函数 STR()格式: STR(< 数值表达式 1>[ , < 数值表达式 2>[ , < 数值表达式 3>]])说明:1 ) < 数值型表达式 2>给出转换后的字符串长度,该长度包括小数点、负号。如果缺省 < 数值表达式 2> 和 < 数值表达式 3> ,其输出结果将取固定长度为 10 位,且只取其整数部分;2 ) < 数值表达式 3>给出小数位数,决定转换后小数点右面的小数位数,默认位数为 0 位;3 )如果 < 数值表达式 2> 的值大于 < 数值表达式 1>给出值的数字位数时,在返回的字符串左边添加空格;4 )如果 < 数值表达式 2> 的值小于小数点左边的数字位数,将返回一串星号,表示数值溢出。示例: ?str(95643.5136) ?str(95643.5136,8,2) ?str(95643.5136,8) ?str(95643.5136,3)

Page 42: 第 2 章 数据库管理系统基础知识

4. 字符型转换成数值型函数 VAL()格式: VAL(< 字符表达式 >)

说明:1 ) < 字符表达式 > 的值必须是数字形式的字符串,它只能含有数字、正负号和小数点 ;

2 )转换时,如果遇到非上述字符则停止。如果字符型表达式的第一个字符即非上述字符,则转换停止 ;

3 )转换后的小数位数,隐含为 2 位,可用 SET DECIMAL TO N去改变。示例: ?VAL(“8769.3421”) ?VAL(“8769AB21”) ?VAL(“AB8769.3421”)

Page 43: 第 2 章 数据库管理系统基础知识

5. 字符型转换成日期型函数 CTOD()格式: CTOD(< 字符表达式 >)

说明: < 字符表达式 > 必须是一个有效的日期格式。示例: ?CTOD(“09/23/01”)

6. 日期型转换成字符型函数 DTOC()格式: DTOC(< 日期型表达式 >/< 日期时间型表达式 >[,1])

说明:如果有 [,1]选项,则按照年月日的格式输出。示例: X=CTOD(“09/10/99”)

?DTOC(X)

?DTOC(X,1)

Page 44: 第 2 章 数据库管理系统基础知识

2.4.5 与数据表有关的函数1. 表文件开始测试函数

格式: BOF([<工作区号或别名 >])

说明:检测当前或指定工作区中表的记录指针是否位于第一条记录之前,如果是,返回真值 (.T.),否则返回假值 (.F.) 。示例: USE 学生表 ?BOF()

SKIP -1 ?BOF()

2. 表文件结束测试函数格式: EOF([<工作区号或别名 >])说明:检测当前或指定工作区中表的记录指针是否位于最后一条记录之后,如果是,返回真值 (.T.),否则返回假值 (.F.)。

Page 45: 第 2 章 数据库管理系统基础知识

2. 表文件结束测试函数示例: USE 学生表 ?EOF() GO BOTTOM ?EOF() SKIP 1 ?EOF()

3. 记录号测试函数格式: RECNO([<工作区号或别名 >])功能:给出当前或指定工作区中当前记录的记录号。函数返回值为数值型。示例: USE 学生表 ?RECNO() GOTO 4 ?RECNO()

4. 测试查询结果函数格式: FOUND([<工作区号或别名 >])功能:用于测试查询表文件或索引文件的记录是否找到,如果找到,结果为逻辑真值,否则为逻辑假值。

Page 46: 第 2 章 数据库管理系统基础知识

5. 测试文件存在函数格式: FILE(<“ 文件名” >)功能:测试指定的文件是否存在,如果存在,返回逻辑真值,否则返回逻辑假值。说明:文件名应包括扩展名,文件名两端要用引号括起来,如果无引号,系统则默认为是变量名。示例: ?FILE(“ 学生成绩 .DBF”)

6. 记录删除测试函数格式: DELETED([<工作区号或别名 >])功能:如果当前或指定工作区中的当前记录被做过删除标记,则返回逻辑真值,否则返回逻辑假值。

Page 47: 第 2 章 数据库管理系统基础知识

7. 检测表文件名函数格式: DBF([<工作区号或别名 >])功能:返回当前或指定工作区中打开的数据表文件名,返回值为字符型。说明:如果没有打开的表文件,则返回空串。示例: USE 学生表 ?DBF()

8. 检测表文件别名函数格式: ALIAS([<工作区号或别名 >])功能:返回当前或指定工作区中打开的数据表文件的别名。返回值为字符型。说明:如果没有打开的表文件,则返回空串。

Page 48: 第 2 章 数据库管理系统基础知识

9. 检测工作区号函数格式: SELECT([0/1/ 别名 ])功能:返回当前工作区号或者返回未使用的工作区的最大编号。说明:参数 0 指定 SELECT 返回当前工作区号;参数 1 指定 SELECT 返回未使用工作区的最大编号;参数“别名”指定 SELECT 返回表文件别名所在的工作区编号。函数返回值为数值型。

10. 测试表文件是否打开函数格式: USED([<工作区或别名 >])功能:判断指定的工作区中是否有表文件打开。说明:函数返回值为逻辑型。如果在指定的工作区中有表文件打开,返回真值,否则返回假值。

Page 49: 第 2 章 数据库管理系统基础知识

2.4.6 显示位置函数1. 光标列坐标函数 COL()

2. 光标行坐标函数 ROW()

格式: COL()

功能:给出光标当前列的位置,函数返回值为数值型。

格式: ROW()

功能:给出光标当前行的位置,函数返回值为数值型。

Page 50: 第 2 章 数据库管理系统基础知识

2.4.7 文件管理函数1. 返回当前目录函数

格式: CURDIR([ 字符表达式 ])功能:返回当前目录。说明:1 )函数返回值为字符型;2 ) < 字符表达式 > 指定驱动器,函数将返回该驱动器的当前目录或文件夹;3 )如果省略 < 字符表达式 > ,则返回缺省驱动器的当前目录;4 )如果 < 字符表达式 > 指定的驱动器不存在,返回空串。示例: ?CURDIR()

Page 51: 第 2 章 数据库管理系统基础知识

2. 测试指定目录函数格式: DIRECTORY(<目录名 >)功能:如果在磁盘上发现了指定目录,返回真值 (.T.) 。说明:1 ) <目录名 >给出指定要定位的目录名;2 )如果在指定的目录中没有给出绝对路径,则相对于 Visual FoxPro缺省目录查找该目录。

3. 磁盘可用空间测试函数格式: DISKSPACE([< 磁盘驱动器名 >])功能:返回缺省驱动器或指定的磁盘驱动器的可用字节数说明:该函数返回值为数值型。在使用时,〈磁盘驱动器名〉要加上字符串定界符。

Page 52: 第 2 章 数据库管理系统基础知识

4. 测试文件大小函数格式: FSIZE(< 字段名 >[,<工作区号 >/< 表别名 >]/< 文件名>)功能:以字节为单位返回指定字段或文件的大小。说明:1 )该函数返回值为数值型;2 )函数 FSIZE ()返回字段大小还是文件大小,是由 SET COMPATIBLE 的当前设置决定的。如果 SET COMPATIBLE设置为 OFF 或缺省, FSIZE ()返回某字段的大小;如果 SET COMPATIBLE设置为 ON , FSIZE ()返回文件的大小;3 )如果给出参数 < 字段名 > ,则返回指定字段的大小,如果其后有 <工作区号 >/< 表别名 > ,则返回指定表文件中字段的大小,否则返回当前打开的数据表文件中字段的大小;4 )如果给出参数 < 文件名 > ,则返回该文件的大小。示例: SET COMPATIBLE OFF CLOSE ALL USE 学生表 ?FSIZE(“姓名” ) ?FSIZE(“性别” )

Page 53: 第 2 章 数据库管理系统基础知识

5. 选择目录函数格式: GETDIR([<路径 >[,< 文本 >]])功能:显示“选择目录”对话框,可以从中选择目录;或者显示“选择文件夹”对话框,可以从中选择文件夹。说明:1 )该函数返回值为字符型;2 ) <路径 > 指定在对话框中初始显示的目录或者对话框。如果没有指定 <路径 > ,对话框打开时显示 Visual FoxPro 的缺省目录或者缺省对话框;3 ) < 文本 > 指定对话框中目录列表或者文件夹列表的标题文本。示例: ?getdir("c:\program files","请在下面选择: ")

Page 54: 第 2 章 数据库管理系统基础知识

6. 打开文件函数格式: GETFILE([< 文件扩展名 >][,< 字符串 >][,<打开按钮标题 >][,<按钮类型 >])功能:显示“打开文件”对话框,返回用户选择的文件名。说明:1 )该函数返回值为字符型;2 ) < 文件扩展名 > 指定没有选中菜单项“所有文件”时在滚动列表中显示的文件扩展名。如果作为原意字符传递数据,要将其加上引号,不要在扩展名前加上符号 (.) ;3 ) < 字符串 > 指定“打开”对话框中目录或文件夹列表的文本;4 ) <打开按钮标题 > 为 OK按钮指定标题;5 ) <按钮类型 > 指定在“打开”对话框中显示的按钮数目和类型。可以分别取值为 0 、 1 和 2 。

Page 55: 第 2 章 数据库管理系统基础知识

7. 另存为函数格式: PUTFILE([< 字符串 >][,< 文件名 >][,< 文件扩展名 >])

功能:激活“另存为”对话框,返回指定的文件名。说明:1 )该函数返回值为字符型;2 ) < 字符串 > 指定显示在“另存为”对话框上的定制文本;3 ) < 文件名 > 指定显示在文本框中缺省文件名;4 ) < 文件扩展名 > 指定要定位的文件的扩展名。文件扩展名可以包括多个扩展名,各扩展名之间用分号分隔。

Page 56: 第 2 章 数据库管理系统基础知识

2.4.8 数组函数1. 数组拷贝函数

格式: ACOPY(<源数组名 >,<目标数组名 >[,<源数组起始元素序号 >[,<复制元素个数 >[,<目标数组的起始元素序号 >]]])

功能:将源数组中指定的元素复制到目标数组中。函数返回值是一个整数,说明已经复制了的元素个数。说明:1 )此函数既适用于一维数组,也适用于二维数组;2 )如果没有选择项,整个数组复制, <源数组起始元素序号 > 和 <目标数组的起始元素序号 > 的缺省值都为 1 。

Page 57: 第 2 章 数据库管理系统基础知识

2. 数组内容排序函数格式: ASORT(< 数组名 >[,< 数值表达式 1>[,< 数值表达式 2>[,<排序方式 >]]])说明: 1 ) <排序方式 > 为数值表达式,如果等于 0 或缺省,按升序排序;如果大于 0 ,按降序排序;2 )函数返回值为数值型,排序成功返回值为 1 ,否则返回值为 -1 ;3 )对于一维数组, < 数值表达式 1> 指出参加排序的起始元素序号,缺省值为 1 ; < 数值表达式 2> 指出参加排序的元素个数,缺省表示从指定的起始元素到最后一个元素均参加排序;4 )对于二维数组,排序以行为单位,允许对所有行或某些行进行排序。 < 数值表达式 1> 指出参加排序的起始元素序号,该序号所在的行是参加排序的起始行,按照它所在列的数值进行排序; < 数值表达式 2> 指出参加排序的行数,缺省表示从指定的起始行到最后一行均参加排序;5 )对一维数组进行排序时,所有的数组元素必须具有相同类型的数据;对于二维数组,进行排序的那一列必须具有相同的数据类型。

Page 58: 第 2 章 数据库管理系统基础知识

3. 数组元素删除函数格式: ADEL(< 数组名 >,< 数组元素编号 >[,2])功能:从一维数组中删除一个元素,或者从二维数组中删除一行或者一列。说明:1 )该函数返回值为数值型;2 ) < 数组名 > 指定要删除元素的数组;3 ) < 数组元素编号 > 指定要删除的元素、行或者列的编号。要从数组中删除某一列,必须在函数中包含可选参数 2 ;4 )删除数组的元素或者删除数组的某一行或某一列不改变数组的大小,位于被删除元素、行、列之后的元素、行、列前移填补到已删除的位置,数组最后的元素或者最后行、最后列被置为假 (.F.) ;5 )如果删除成功,该函数返回值为 1 。

Page 59: 第 2 章 数据库管理系统基础知识

4. 数组插入元素函数格式: AINS(< 数组名 >,< 数组元素编号 >[,2])功能:在一维数组中插入一个元素,或者在二维数组中插入一行元素或者插入一列元素。说明: 1 )该函数返回值为数值型;2 ) < 数组名 > 指定要插入元素的数组;3 ) < 数组元素编号 > 指定插入新元素、新行或者新列的位置,在一维数组中插入的新元素位置在数组元素编号指定的元素之前,在二维数组中插入的新行位置在数组元素编号指定的行之前;4 )参数 2 指定在二维数组中插入一列,其位置在数组元素编号指定的列之前;5 )在数组中插入元素、行或者列不改变数组的大小,数组后续的元素、行或者列被逐步向后移,最后的元素、行或者列被丢弃,新插入的元素、行或者列的值被初始化成假 (.F.);6 )如果插入成功,该函数返回值为 1 。

Page 60: 第 2 章 数据库管理系统基础知识

5. 数组长度测试函数格式: ALEN(< 数组名 >[,<测试类别 >])功能:返回数组中元素的个数、行数或者列数。说明:1 )该函数返回值为数值型;2 ) < 数组名 > 指定要测试长度的数组,如果只包含数组名参数,该函数返回数组中元素的个数;3 ) <测试类别 > 指定该函数返回的是元素个数还是行数、列数,其可用值如下:0 返回数组中元素的个数,如果省略 <测试类别 > 参数等同于指定其为 0 ;1 返回数组中的行数;2 返回数组中的列数,如果是一维数组,返回值为 0 。

Page 61: 第 2 章 数据库管理系统基础知识

6. 数组元素查找函数格式: ASCAN(< 数组名 >,< 表达式 >[,< 开始元素编号 >[,<元素查找个数 >]])功能:在数组中查找包含与指定表达式类型、数据都相同的元素。说明:1 )该函数返回值为数值型;2 ) < 数组名 > 指定要查找的数组名;3 ) < 表达式 > 指定查找用的基本表达式;4 ) < 开始元素编号 > 指定查找开始的元素号,指定的元素也参加查找,如果省略该参数,则查找整个数组;5 ) <元素查找个数 > 指定参加查找的元素个数,如果省略< 开始元素编号 > 和 <元素查找个数 > ,则查找自第一个元素开始,一直到最后一个元素;6 )如果查找到匹配的元素,函数返回匹配元素的元素号,如果没有查找到匹配的元素,函数返回值为 0 。

Page 62: 第 2 章 数据库管理系统基础知识

2.4.9 系统函数格式: SYS(< 数值表达式 >)说明:1 )系统函数 SYS() 中随着数值表达式值的不同,系统将完成不同的功能。2 )函数返回结果为字符型。示例: SYS(1)返回机器名和网络机器号 SYS(5)返回当前缺省的驱动器名 SYS(17)返回当前正在使用的中央处理器的类型 SYS(101)返回当前 SET DEVICE 的设置 SYS(103)返回当前 SET TALK 的设置 SYS(2018) 为最近的错误返回出错的原因信息

Page 63: 第 2 章 数据库管理系统基础知识

2.5 命令2.5.12.5.1命令组成和书写规则命令组成和书写规则2.5.22.5.2常用的环境设置命令常用的环境设置命令

退出退出

Page 64: 第 2 章 数据库管理系统基础知识

2.5.1命令组成和书写规则

命令格式:命令动词 +修饰子句1. 命令格式

2.遵循的规则1 )必须以命令动词开头,其后子句的顺序可以任意。2 )命令动词、修饰和限制子句之间要用空格分开。3 )命令动词可以缩写为前四个字符,并且命令动词中的英文字母不区分大小写。4 )变量名、字段名和文件名应避免使用保留字,以免产生错误。5 )在本书所给出的命令格式中, [] 表示可选项, <> 表示必选项, / 表示在其左右参量中任选一项。

Page 65: 第 2 章 数据库管理系统基础知识

2.5.2常用的环境设置命令1.SET DATE 命令

格式: SET DATE TO AMERICAN / ANSI / BRITISH / USA / MDY/DMY/YMD

说明:各种设置的结果如下:设置 格式AMERICAN MM/DD/YYANSI YY.MM.DDBRITISH DD/MM/YYUSA MM-DD-YYMDY MM/DD/YYDMY DD/MM/YYYMD YY/MM/DD

Page 66: 第 2 章 数据库管理系统基础知识

2. SET CENTURY 命令格式: SET CENTURY ON/OFF功能:确定是否显示日期表达式中的世纪部分。说明: ON 表示在日期格式中指定年度为 4 位;OFF 表示指定日期格式中年度为 2 位。

3. SET HOURS 命令格式: SET HOURS TO [12/24]

说明: TIME()函数不受此命令的影响。4. SET SECONDS 命令

格式: SET SECONDS ON/OFF功能:决定显示日期时间值时,是否显示秒。说明: ON (默认)指定在日期时间值中显示秒,OFF 指定不显示秒。

Page 67: 第 2 章 数据库管理系统基础知识

5. SET DEVICE 命令格式: SET DEVICE TO SCREEN/TO PRINTER/TO FILE <文件名 >功能:把@…SAY 的输出发送到屏幕、打印机或文件。说明: TO SCREEN 把输出发送到 Visual FoxPro 的主窗口或活动的自定义窗口; TO PRINTER 将输出发送到打印机; TO FILE < 文件名 > 将输出发送到文件。

6. SET DEFAULT 命令格式: SET DEFAULT TO < 盘符 >功能:指定缺省的驱动器和目录。

7. SET TALK 命令格式: SET TALK ON/OFF功能:确定是否显示命令的执行结果。说明: ON允许将命令的结果发送到 Visual FoxPro 的主窗口; OFF禁止将结果输出到屏幕。

Page 68: 第 2 章 数据库管理系统基础知识

8. SET DECIMALS 命令格式: SET DECIMALS TO [< 数值表达式 >]功能:指定数值型表达式中显示的十进制小数位数。说明:命令中的 < 数值表达式 > 指定显示的小数位数,默认值为两位小数。 9. SET SAFETY 命令格式: SET SAFETY ON/OFF功能:在改写文件时,是否显示对话框确认改写有效。说明: ON (默认)指定在改写已存在的文件之前显示对话框,以选择是否改写; OFF 指定已存在的文件改写之前不显示对话框。 10. SET DELETED 命令格式: SET DELETED ON/OFF功能:在使用某些命令时,指定是否对加了删除标记的记录进行操作。说明: ON 指定忽略做了删除标记的记录; OFF (默认)则不忽略做了删除标记的记录。