




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章数据与数据运算 主编 赖申江 本章学习导航 通过本章学习 学生应了解VisualFoxPro数据库的数据类型 掌握常量 内存变量 数组的概念 掌握表达式及函数的概念和使用方法 正确书写VisualFoxPro各类表达式及最基本的命令 并在命令窗口中调试通过各类函数 本章学习要点 数据类型 掌握数据库操作13种数据类型常量 内存变量 数组的概念 掌握内存变量的操作命令 掌握数组的定义方法数值表达式 字符表达式 日期时间表达式 关系表达式和逻辑表达式的概念 掌握5种表达式运算符号及书写方法函数的格式 数值处理函数 字符处理函数 日期处理函数 逻辑型函数 其他函数VisualFoxPro的命令格式教学课时 6课时 3 1数据表中的数据类型数据库是用来组织和存储数据的 数据的类型有多种 如数值 字符 图片 多媒体等等 VisualFoxPro6 0给用户提供了多种数据类型 不同的数据类型具有各自的取值范围和特点 计算机根据不同的数据类型 进行不同的操作 VisualFoxPro6 0除了用界面方式进行数据库操作外 还提供了命令操作方式 此外 在以后要介绍的应用程序设计中 也使用了大量与数据库操作相关的命令 为了有条不紊地存储和使用数据 VisualFoxPro6 0提供了13种数据类型应用于数据库 第3章数据与数据运算 1 字符型 C 最多可以存放254个字符 从键盘输入的可显示或打印的汉字和字符 由字母 数字 空格或标点组成 某些特定字符 如Enter键 不能出现在普通的字符型字段中 2 数值型 N 存放由正负号 数字和小数点组成的且能参与数值运算的数据 字段宽度最多为20位 数值范围是 9999999999E 19 9999999999E 20 3 日期型 D 按年代顺序表示的数据 由年月日组成 该数据类型用8个字节表示 时间范围为从公元0001年01月01日到公元9999年12月31日 4 日期时间型 T 存储日期时间数据 包括日期 时间两部分内容 5 货币型 Y 存储数据与数值型类似 与数值型不同的是数值保留4位小数 宽度为8个字符 范围是 922337203685477 5808 922337203685477 5807 第3章数据与数据运算 6 逻辑型 L 存放逻辑值 T 和 F T 表示 真 F 表示 假 宽度为1个字节 通常只存储具有两种状态的信息 如男或女 已婚或未婚 7 浮点型 F 浮点型在功能上与数值型等价 是为了提供兼容性而设置 只适用于表中的字段 8 整型 I 存放不带小数点的数值 在表中以二进制存储 占用内存少 只占4个字节 数据取值范围是 2147483647 2147483646 9 双精度型 B 存放精度要求较高的数值 它以8个字节的压缩格式存储最多18个数字 实际上不管使用多少数字 字节数总是8 用户能做的只是决定小数点后的位数 取值范围是 4 94065648540247E 342到 1 79769313486232E 308 第3章数据与数据运算 10 备注型 M 备注型字段宽度是4个字节 用于存储字符型数据块 备注型字段实际上是通过一个4字节的地址引用一个实际的备注内容 备注内容被保存在一个单独的备注文件里 该文件名与表的主名相同 扩展名为 fpt 备注内容的多少只受磁盘空间大小的限制 在数据库表中 备注型字段所引用的备注内容一般是一些格式非规范化的 但又必不可少数据 如学生表中每个学生的简历 教师对学生的考评文字等 11 通用型 G 用于标记图形 电子表格 声音等多媒体数据 数据也存储在扩展名为 fpt的备注文件中 宽度为4个字节 12 二进制字符型和二进制备注型将数据存储为二进制格式 所存储的数据不受代码页改变的影响 以上数据类型中 浮点型 整型 双精度型 备注型 通用型 二进制字符型和二进制备注型只能用于字段中 其余类型除用于字段外还可以用于常量和变量中 第3章数据与数据运算 3 2常量与变量3 2 1常量常量是指在程序运行过程中不变化的数据 常量有字符型 数值型 日期型 日期时间型 逻辑型和货币型等多种类型 1 字符型常量字符型常量也称为字符串 其表示方法是用界定符将字符串括起来 界定符可以采用三种形式 半角单引号 双引号 和方括号 例如 数据管理 17951 X 5 678 字符型常量的界定符必须成对匹配 不能一边用单引号而另一边用双引号 如果字符串中含有其中某种界定符 则应采用另一种进行引用 如 I mastudent 不包含任何字符的字符串叫空串 null 空串与包含空格的字符串是不相同的 空串的ASCII代码值为0 而空格的ASCII代码值为32 第3章数据与数据运算 2 数值型常量数值型常量也就是常数 用来表示一个数量的大小 由阿拉伯数字0 9 小数点和正负号组成 例如 12 20 87 3500 为了表示很大或很小的数值型常量 也可以使用科学记数法书写 例如 用5 876E12表示5 876 1012 用1 6E 12表示1 6 10 12 数值型数据在内存中用8个字节表示 其取值范围是 0 9999999999E 19 0 9999999999E 20 3 日期型常量日期型常量的界定符是一对花括号 花括号内包括年 月 日三部分内容 各部分内容之间用分隔符分隔 系统默认斜杠 分隔符 常用的其他分隔符有连字号 句点 和空格 日期型常量有两种格式 传统的日期格式 mm dd yy 其中mm为月 dd为日 yy为年 月 日分别要求用两位数字表示 年可以用两位也可以用四位数字表示 如 07 01 2003 07 01 03 如果采用的是两位的表示形式 系统会自动根据填写的数字填写前两位 进行四位年份的设置 填写00 53代表2000 2053 填写54 99则代表1954 1999 空白的日期可表示为 或 这种日期形式通常用于字段的数据及系统显示日期 严格的日期格式 yyyy mm dd 其中yyyy为年 mm为月 dd为日 符号 表明该日期格式是严格的 这种日期形式通常用于程序设计和表的设计 第3章数据与数据运算 由于许多国家对日期有各自习惯的表示方法 为了方便转换 VisualFoxPro提供了一些日期格式的设置命令 1 命令格式 SETMARKTO 日期分隔符 命令功能 用于指定日期分隔符 如 等 如果执行SETMARKTO没有指定日期分隔符 则表示恢复系统默认斜杠分隔符 2 命令格式 SETDATE TO AMERICAN ANSI BRITISH FRENCH GERMAN ITALIAN JAPAN USA MDY DMY YMD命令功能 设置日期显示的格式 命令中各短语所定义的日期格式如表3 1所示 第3章数据与数据运算 3 命令格式 SETCENTURYON OFF命令功能 用于设置年份的位数 ON设置年份用4位数字表示 OFF设置年份用2位数字表示 4 命令格式 SETSTRICTDATETO 0 1 2 命令功能 用于设置是否对日期格式进行检查 0表示不进行严格的日期格式检查 目的是与早期的VisualFoxPro兼容 1表示进行严格的日期格式检查 它是系统默认的设置 2表示进行严格的日期格式检查 并且对CTOD 和CTOT 函数也有效 注 方括号中的内容表示可选 用竖杠分隔的内容表示任选其一 尖括号中的内容由用户提供 第3章数据与数据运算 例3 1设置不同的日期格式在命令窗口输入并执行如下4条命令SETCENTURYON 设置4位数字年份SETMARKTO 恢复系统默认斜杠分隔符SETDATETOYMD 年月日格式 2008 10 01 执行后屏幕显示 2008 10 01 第3章数据与数据运算 4 日期时间型常量日期时间型常量包括日期和时间两部分内容 部分与日期型常量相似 也有传统的和严格的两种格式 部分的格式为 hh mm ss a p 其中hh mm ss分别代表时 分和秒 默认值分别为12 0和0 方括号中的a和p分别表示上午和下午 默认值为a 如果指定的时间大于等于12 则自然为下午的时间 第3章数据与数据运算 5 逻辑型常量逻辑型常量只有 真 和 假 两种值 需要使用界定符 真 可以用 T t Y y 表示 假 可以用 F f N n 表示 6 货币型常量货币型常量用来表示货币值 其书写格式与数值型常量类似 但要在数值前加前置符号 货币数据在存储和计算时 采用4位小数 如果一个货币型常量多于4位小数 系统自动四舍五入保留4位小数 如 12 34567 参与运算后其结果为 12 3457 货币型常量不能用科学记数法表示 在内存中用8个字节表示 其取值范围是 922377203685477 5807 922377203685477 5807 第3章数据与数据运算 3 2 2变量在VisualFoxPro中 变量包括内存变量 字段变量和系统变量三种类型 1 内存变量内存变量是内存中的一个存储区域 变量值就是存放在这个存储区域里的数据 变量的类型取决于变量值的类型 当把一个常量赋给一个变量时 这个常量就被存放到该变量对应的存储位置 该存储位置中原来的数据就被新的值覆盖 在VisualFoxPro中 变量的类型可以改变 也就是说 可以把不同类型的数据赋给同一个变量 内存变量的数据类型包括字符型 C 数值型 N 货币型 Y 逻辑型 L 日期型 D 和日期时间型 T 每一个变量都有一个名字 变量名由英文字母 汉字 数字或下划线构成 但必须以英文字母 汉字或下划线开头 在VisualFoxPro6 0版本中 变量长度不受任何限制 但不能与系统的保留字同名 第3章数据与数据运算 1 内存变量的赋值给内存变量赋值不必事先定义 变量的赋值命令有以下两种格式 格式1 格式2 STORETO功能 为变量赋值 可以是数值 表达式 字符串等 例3 2定义内存变量X1 X2 X3 Y1 Y2 并为其赋值 X1 123X2 456 2X3 123456 STORE123 456TOY1 Y2注 内存变量的类型 由所赋的数据类型决定 赋值命令 一次只能给一个内存变量赋值 而STORE命令一次可以给多个内存变量赋值 多个变量之间用逗号分隔 第3章数据与数据运算 2 内存变量的显示内存变量的显示可以使用以下命令 格式1 功能 计算变量的值 并输出计算结果 格式2 LIST DISPLAYMEMORY LIKE TOPRINTER PROMPT TOFILE 功能 显示内存变量的当前信息 包括所有当前定义的内存变量和内存变量数组的名称 类型 内容和状态 以及已定义的内存变量的数目 已使用的字节总数和可用的额外内存变量数目 第3章数据与数据运算 例3 3显示例3 2中的内存变量的值 X1 X2 X3 Y1 Y2 X1 X2 X3 Y1 Y2LISTMEMORYLIKEX 列出所有X开头的内存变量值DISPLAYMEMORYLIKEY 列出所有Y开头的 变量名有2个字符的内存变量值注 表示从屏幕下一行的首列显示变量值 表示从当前光标所在位置显示变量值 LIKE子句表示选出与通配符相匹配的内存变量 通配符有 和 两种 代表一个或多个任意字符 代表一个任意字符 TOPRINTER表示可以将屏幕显示内容输出到打印机 PROMPT可以决定是否提供打印的提示窗口 TOFILE可以将屏幕显示的内容保存到 文件名 文件中 第3章数据与数据运算 3 内存变量的保存内存变量被定义之后 暂时存储在内存中 一旦电源中断或VisualFoxPro系统重新启动 内存中的这些数据都将丢失 可以通过内存变量保存命令SAVE 将它们保存在磁盘上 格式 SAVETO ALLLIKE EXCEPT 功能 保存内存变量到指定的文件中 例3 4保存例3 2中的内存变量到文件FF1 FF2中 SAVETOFF1ALLLIKEX 保存所有以X开头的内存变量到FF1SAVETOFF2ALLEXCEPTX 保存所有除以X开头的内存变量到FF2注 LIKE子句含义同上 EXCEPT子句表示除与通配符相匹配的内存变量都将被保存 命令格式中被保存的内存变量文件 系统默认其扩展名为 mem 第3章数据与数据运算 4 内存变量的恢复VisualFoxPro系统重启后 存在文件中的内存变量经过恢复就可以使用 恢复命令格式如下 格式 RESTOREFROM ADDITIVE 功能 恢复保存在指定文件中的内存变量 5 内存变量的清除当系统内存变量不再需要时 可以将其从内存中清除 以减少内存空间的使用 格式1 RELEASE ALL LIKE EXCEPT 格式2 CLEARMEMORY功能 删除当前系统中的内存变量 CLEARMEMORY与RELEASEALL功能相同 都是清除当前系统中所有的内存变量 第3章数据与数据运算 2 数组数组是内存中连续的一片存储区域 是按一定顺序排序的一组内存变量 数组中的各个变量称为数组元素 每个数组元素可以通过数组名及相应的下标来访问 在VisualFoxPro中 一个数组中各元素的数据类型可以不同 1 数组的定义数组必须先定义后使用 数组定义的命令格式如下 格式 DIMENSION DECLARE 功能 定义一维或二维数组及其下标的上界 数组的下界规定为1 例如 DIMENSIONN 5 M 3 3 分别定义一个名为N的一维数组和一个名为M的二维数组 一维数组N包含5个元素 N 1 N 2 N 3 N 4 N 5 二维数组M包含9个元素 M 1 1 M 1 2 M 1 3 M 2 1 M 2 2 M 2 3 M 3 1 M 3 2 M 3 3 整个数组的类型为A Array 而各个数组元素可以存放不同类型的数据 第3章数据与数据运算 2 数组的赋值 系统将各数组元素的初值设置为 F 用赋值命令可以为数组元素单个地赋值 也可以为整个数组的各个元素赋以相同值 例如 对上面例子中的M整个数组元素赋值 M 123 为其中的一个元素赋值 M 1 T 二维数组各元素在内存中按行的顺序存储 而且可用一维数组来表示其数组元素 例如二维数组M中的元素M 3 1 可以表示为M 7 第3章数据与数据运算 3 字段变量数据库中数据以二维表的形式存在 表的行 列分别称为记录和字段 表的每一个字段都是一个字段变量 变量的值因记录的不同而不同 字段变量在建立表结构时定义 修改表结构时可以重新定义 注 当同名的内存变量与字段变量同时出现时 系统默认为字段变量 如要指定其中的内存变量 需要在变量名前加上 m 或 m 例如m ab m ab 4 系统变量系统变量是由VisualFoxPro系统提供的 都是以下划线开头 分别用于控制外部设备 屏幕输出格式或处理有关计算器 日历 剪贴板等方面的信息 第3章数据与数据运算 3 3表达式运算是对数据进行加工的过程 描述各种不同运算的符号称为运算符 而参与运算的数据称为操作数 VisualFoxPro提供了算术 关系 逻辑 字符以及日期与日期时间5种运算符 表达式是由常量 变量和函数通过特定的运算符连接起来的式子 无论是在命令窗口输入的命令中 还是在用语句编写的程序里 都会用到大量各种类型的表达式 按照一定的运算规则 每个表达式都能计算出一个结果 这个结果称为表达式的值 根据值的类型 在VisualFoxPro中 表达式可分为数值表达式 字符表达式 日期时间表达式 关系表达式和逻辑表达式 第3章数据与数据运算 1 数值表达式数值表达式是由算术运算符将数值型的常量 变量 数组元素 字段 函数连接起来的式子 数值表达式的运算结果是数值型数据 包括数值型 浮点型 双精度型和整型 数值表达式中的算术运算符包括小括号 幂运算 乘和除 模运算 取余 加和减 其含义和优先级如表3 2所示 例3 5计算数值表达式的值 5 3 9 返回值60 1000 33 返回值30 30 1000 33 返回值10 10 3 返回值1000 00 20 200 返回值220 0000 第3章数据与数据运算 2 字符表达式字符表达式是由字符运算符将字符型数据连接起来的式子 字符运算符包括连接和比较 连接两个字符型数据用 删除尾部空格后连接两个字符型数据用 测试一个字符串是否包含在另一个字符串中用 若包含 即符号左边的字符串是右边字符串的子串 结果为逻辑 T 否则为逻辑 F 其优先级从高到低依次是 例3 6计算字符表达式的值 Visual FoxPro 结果为VisualFoxPro Visual FoxPro 结果为VisualFoxPro abcd abcdefg 结果为逻辑值 T AD abcdefg 结果为逻辑值 F 第3章数据与数据运算 3 日期时间表达式日期时间表达式是通过运算符将日期时间型数据连接起来的式子 日期时间表达式中可以使用的运算符有两个 日期型数据加天数或日期时间型数据加秒数用 日期型数据减日期型数据或日期时间型数据减秒数用 日期时间表达式的格式有一定的限制 不能任意组合 例如 不能用运算符 将两个日期常数连接起来 合法的日期时间表达式的格式如表3 3所示 表中的和都是数值表达式 例3 7计算日期表达式的值 2003 01 01 30 结果为01 31 03 2003 01 01 30 结果为12 02 02 2003 01 0112 20 30 10 结果为01 31 0312 20 20PM 2003 01 2112 20 30 2003 01 0112 20 30 结果为1728000 单位是秒 2003 01 21 2003 01 01 结果为20 单位是天 第3章数据与数据运算 4 关系表达式关系表达式是由关系运算符将两个运算对象连接起来的式子 关系运算符的作用是比较两个表达式的大小或前后 关系运算的结果为逻辑值 数值型数据按数值大小进行比较 日期型数据按年 月 日的先后进行比较 字符型数据按相应位置上两个字符在字母表中的排列顺序进行比较 关系运算符及其含义如表3 4所示 它们的优先级相同 参与运算时按从左到右的顺序依次进行 第3章数据与数据运算 例3 8计算关系表达式的值 9 8 返回值 T 98 返回值 T 2003 05 11 2003 09 12 返回值 F 通过数值比较 其中9大于5 Y a 返回值 T 在字符表中由大到小的顺序是Z z Y y A a 9 8 0 abcd ab 返回值 T 代表判断符号后的字符串是不是前面字符串的首子串 abcd ab 返回值 F 字符串精确比较 只有二者完全相同时 才返回真值 否则为假 第3章数据与数据运算 5 逻辑表达式逻辑表达式是由逻辑运算符将多个逻辑型数据连接起来的式子 逻辑表达式只有两个值 真 T 和假 F VisualFoxPro提供的逻辑运算符有三个 分别为逻辑非 NOT 逻辑与 AND 逻辑或 OR 优先级顺序为 NOT AND OR 逻辑运算符可以处理任意类型的数据并返回逻辑值 其运算规则见表3 5 第3章数据与数据运算 例3 9计算逻辑表达式的值 NOT 9 8 AND 9 8 逻辑与运算只要其中一个条件不成立 返回值就是 F 98 OR 2003 05 11 2003 09 12 逻辑或运算只要其中一个条件成立 返回值就是 T 注 1 每种表达式内有优先级 各种表达式之间也有优先级 其优先级顺序是 数值型表达式 字段型表达式和日期型表达式三者同为最高级 其次是关系型表达式 最低一级是逻辑型表达式 2 表达式的值可以使用 命令在屏幕上显示出来 第3章数据与数据运算 3 4常用函数函数是系统提供的可以实现特定功能的一段程序 只要调用它 就能得到相应的输出结果 函数的一般形式如下 函数名 一个函数必须有一个函数名 函数名后面必须跟一对圆括号 用以存放0 n个参数 函数根据用户给定的参数 经过计算返回一个惟一值 称为返回值 函数返回值的类型决定了函数的类型 VisualFoxPro提供了大量的函数 下面介绍其中一些比较常用的函数 第3章数据与数据运算 1 数值处理函数进行数值运算 处理数值型数据 包括三角 对数 指数 数值转换和测试等函数 表3 6列出了一些常用的数值处理函数 2 字符处理函数字符处理函数见表3 7 3 日期处理函数日期处理函数见表3 8 4 逻辑型函数逻辑型函数见表3 9 第3章数据与数据运算 5 其他函数 1 TYPE 函数格式 TYPE 功能 它先计算的值 然后返回一个代表该值类型的类型标识字母 字母的含义如表3 10所示 例3 10求函数类型 TYPE DATE 返回函数DATE 值的类型 结果为D TYPE 123 返回表达式值的类型 结果为N TYPE 123 结果为C TYPE T 结果为LA 12B 数据库 TYPE AB 结果为U 第3章数据与数据运算 2 显示信息函数MESSAGEBOX在程序设计过程中 经常要显示一些提示信息 错误信息等 这些信息的显示用的就是函数MESSAGEBOX 格式 MESSAGEBOX 功能 以窗口形式显示信息 返回值为数字 在该函数的对话框中给定不同的对话框类型值 在显示的窗口中将显示不同的按钮 图标和默认按钮 而且不同的对话类型值可以组合使用 单击信息框上的按钮可以返回一个数值 可以应用到程序设计中 第3章数据与数据运算 2 显示信息函数MESSAGEBOX在程序设计过程中 经常要显示一些提示信息 错误信息等 这些信息的显示用的就是函数MESSAGEBOX 格式 MESSAGEBOX 功能 以窗口形式显示信息 返回值为数字 在该函数的对话框中给定不同的对话框类型值 在显示的窗口中将显示不同的按钮 图标和默认按钮 而且不同的对话类型值可以组合使用 单击信息框上的按钮可以返回一个数值 可以应用到程序设计中 第3章数据与数据运算 例3 11显示对话框 在对话框中使用3个按钮 并使用 问号 图标 命令为 MESSAGEBOX 请确定是否终止本系统的执行 3 32 系统提示 运行结果如图3 1所示 第3章数据与数据运算 图3 1带问号的对话框 例3 12显示对话框 在对话框中提示 请插入A盘 命令为 MESSAGEBOX 请插入A盘 1 48 256 系统提示 运行结果如图3 2所示 第3章数据与数据运算 图3 2带惊叹号的对话框 3 宏替换 功能 用 后面变量的值代替 的位置 替换到第一个 结束严格意义上说 并不是函数 而是一条命令 但它经常被当作函数使用 使用格式为 可以先为一个变量赋于字符型结果的表达式 然后用宏替换命令进行替换 求得其表达式内容 例如 m 123 m结果为数值型数据123n 123 k n k结果为字符型数据123M ABC use M dbf结果相当于useABC dbf 例中宏代换到M后的第一个 结束 第二个 相当于扩展名与文件名的分隔符 第3章数据与数据运算 3 5命令格式在VisualFoxPro的操作过程中 除了使用菜单操作之外 主要是通过命令方式进行操作 这些命令都有固定的格式和语法 1 命令格式VisualFoxPro命令的一般格式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广东清远清城公安分局招聘警务辅助人员50人笔试高频难、易错点备考题库含答案详解
- 2025年北京物资学院招聘(第二批)(43人)笔试备考试题(含答案详解)
- 2025年安徽省纪委遴选笔试试题及答案
- 2025年安徽省辅警考试真题及答案
- 11月网络安全管理员初级工复习题(附答案)
- 辅警招聘考试考试黑钻押题【考点精练】附答案详解
- 难点解析人教版9年级数学上册《概率初步》定向训练试卷(含答案详解版)
- 2024年辅警招聘考试高频难、易错点题及完整答案详解(必刷)
- 2024年高职单招每日一练试卷及完整答案详解【名校卷】
- 2024吐鲁番地区公务员行测【考点提分】附答案详解
- 钢结构项目可行性研究报告(立项申请报告)模板
- 四川成都经济技术开发区(龙泉驿区)“蓉漂人才荟”招聘笔试题库2025
- 解除委托退费协议书
- 国民经济行业分类代码(2024年版)
- 禁止黄赌毒协议书模板
- 《恒星的基本知识》课件
- 西双版纳课件
- 高校课堂教学创新大赛一等奖课件:创新教学模式在内科学教学中的实践
- 《选修模块手球》课件
- 手术安全核查课件
- 墙体彩绘施工方案
评论
0/150
提交评论