Visual Fox Pro6.0学习笔记#计算机对口#中职升学#持续更新~~~~



Visual Fox Pro

信息与数据

信息:可以被传递,可以被理解

数据:1.参与运算的数值类型(例如1,5,9)
2.不能参与运算的非数值型数据(例如“Hello World”,‘男’)

关系:信息用数据来表示,数据是信息的载体

数据处理

海量的数据通过加工处理得到想要的信息

例如:13 07 28 20050521 12 4 6
省份 城市 区县 出生日期 辖区派出所编号 性别 随机码

数据库系统
  1. 数据库(DB):放置数据的虚拟仓库
  2. 数据库管理系统(DBMS):维护和统筹规划数据库
  3. 数据库系统(DBS):应用程序,操作系统,服务器,数据库,是一个完整的数据生态。
数据库发展史
  1. 人工管理
    (入学资料,身份证复印件,户口本复印件,个人档案)

  2. 文件系统管理
    (Windows系统,每个文件相互独立)

  3. 数据库系统管理

    (vf,mysql,oracle…)

数据模型
  1. 层次模型
  2. 网状模型
  3. 关系模型
  4. 面向对象模型
关系型数据库特点
  1. 表中记录的增删不会影响到表的结构
  2. 每列中的字段是唯一的
  3. 不允许出现完全相同的两行
  4. 字段和记录的顺序可以随意更改
  5. 字段不可分割,原子性(原子是组成世界的最小单位)image-20230920153721835
常见的关系型数据库

Oracle MySql VFP SqlServer Access

vf发展史
  1. 1986 年 vf1.0
  2. 1998 年 vf6.0
vf启动
  1. 快捷方式
  2. 开始 ----> vf程序(狐狸图标)
vf关闭
  1. 点关闭按钮
  2. 文件 ----> 退出
  3. 命令窗口中输quit回车
环境配置
  1. 图形操作方式修改-----修改默认文件保存位置
  2. 使用命令方式修改-----modify window screen font “宋体”,32(修改控制台显示字体样式)
vf工作方式
  1. 交互操作方式(鼠标点击方式)
  2. 命令交互方式(每次只能执行一条命令)
  3. 程序执行方式(多条命令同时执行)
命令演示
*键盘输入数值,数值存储在age中
input to age
?age
*控制台打印字符串,数值以及运算结果
?"Hellow World"
?13
?12*21
*清空控制台
clear
*打印当前日期
?date()
*打印当前时间
?time()
命令规则
  1. 通常以命令动词开头create database input to a
  2. 各部分(不同的单词)之间要使用空格隔开
  3. 一般情况下一行只写一条口令,执行一条口令,如果一行写不下,使用续行符**;**连接
常用数据类型
数据类型取值范围说明
字符型C任意长度最大值255任意文本
货币型Y-922337203685477.5808~+货币量
日期型0001-01-01~9999-12-31年月日
日期时间0001-01-01 00:00:00 a日期和时间
逻辑型L.T. .F. .t. .f. .Y. .N. .n. .y.布尔值
整型I-2147483647~+整数
数值型N-0.9999999999E+19~0.9999999999E+20整数或小数
浮点型同上同上
双精度+/-4.94065645841247E-324~+/-8.9884656743115E307双精度浮点数
通用型G受可用空间限制OLE对象引用
备注型M数据块引用
常量

数据处理中其值固定不变的量称为常量

PI = 3.14
S = PI*r*r      &&PI表示圆周率,其值固定,所以为常量
数值型常量
  1. ​ 整数:由数字组成,如0,-2,3

  2. ​ 实数:1.十进制表示形式:由数字,正负号,小数点组成。如0.23,-3.14

    ​ 2.指数形式:由数字,小数点,E或e组成 1.23*(10^3)------------->1.23E3

字符型常量

字符是使用定界符(“”‘’[])括起来的一些列有效字符,也称为字符串;字符串最大长度为254个字符

>?'123'
>?[看着我的"眼睛"]

❤注意❤:

  1. 如果字符串中包含一种定界符,必须使用另一种定界符括起来
  2. 定界符必须成对出现
  3. 空串和空格字符串不一样
  4. 字母的大小写不同
  5. 定界符内纯数字则为字符类型
逻辑型常量

只有**真(True)假(False)**两种值

表现方式:

  1. 逻辑真:.Y. .y. .T. .t.
  2. 逻辑假:.N. .n. .F. .f.
货币型常量

以$开头,四舍五入到小数点后4位

?$100.12345     &&输出结果为100.1235
日期型常量

必须使用**{ }**括起来

  1. 通用格式{mm/dd/yyyy}

  2. 严格格式{^yyyy-mm-dd}

  3. set strictdate to 0 设置通用

  4. set strictdate to 1 设置严格

    ❤通用格式与工具中区域设置相关联,使用前确定区域设置是否正确

日期时间型常量
  1. 1.通用格式:{mm/dd/yyyy[hh[:mm][:ss][a|p]]}

    ?{9/15/99 8:45}
    
  2. 2.严格格式:{^yyyy-mm-dd[hh[:mm][:ss][a|p]]}

    ?{^2008-08-08 08:08:08 p}
    
变量
  1. 值可以改变的量
  2. 分为字段变量和内存变量
  3. 变量拥有名称,统称为标识符
命名规则
  1. 由数字,字母,下划线组成
  2. 以字母,下划线开头
  3. 避免使用vf关键字
变量的定义和赋值
  1. 直接创建

    变量名 = 表达式 | 值

       x=2
       x = 3*3
    
  2. 同时为多个变量赋值

    store 表达式 | 值 to 变量名

    store 3 to a,b,c
    
显示变量内存

display memory [like 变量通配名]

​ 变量通配名中?表示一个字符,*表示任意个字符

删除内存变量
  1. clear memory —删除所有变量
  2. release 变量名 —删除指定变量(支持多个)
变量的输出?|??
  1. ? 换行输出
  2. ?? 不换行输出
数组
  1. 数组是按一定顺序排列的数据集合
  2. 数组中每一个数据称为一个元素
  3. 数组中每一个元素的序号称为下标(从1开始)
  4. 数组中的所有元素在内存中是连续存放的
image-20230921110258099
数组的定义

语法:dimension | declare 数组名(元素个数)

dimension Array1(3)
declare Array2(3)
&&以上两种方式都能进行数组的创建

❤数组定义后默认为每个元素赋值,默认值为**.F.**

&&定义成功后使用命令查看数组内元素
display memory
image-20230921111204577
数组的访问
  1. 使用元素下标访问对应元素

    &&打印数组中的元素
    ?Array1(1)
    ?Array1(2)
    ?Array1(3)
    
数组中元素的赋值
  1. 单独赋值

    &&使用数组下标对单个元素赋值
    Array1(2) = "中国"
    Array1(3) = "遥遥领先"
    
  2. 统一赋值

    &&使用变量赋值方式对数组中的所有元素进行统一赋值
    Array1 = "我爱VF"
    ?Array1(1),Array1(2),Array1(3)            &&"我爱VF"  "我爱VF"  "我爱VF"
    
二维数组
image-20230921112642377

语法:dimension | declare 数组名(行数,列数)

declare Array2(2,4)    	&&创建一个两行四列的数组
二维数组的访问

数组名(行数,列数)

?Array2(1,1)
?Array2(1,2)
?Array2(1,3)
?Array2(1,4)
二维数组的赋值
Array2(1,1) = "华为手机"
运算符
算数运算符
运算符说明
+ - * /与数学中用法相同
()子表达式分组,提高优先级
**或^乘方
%模运算、取余操作
?3+2		&&结果为5
?3-2		&&结果为1
?3*2		&&结果为6
?3/2		&&结果为1.5
?(3-2)*3	&&结果为3
?3**2		&&结果为9
?3^2		&&结果为9
?10%3		&&结果为1
字符运算符
运算符操作
字符串连接
字符串连接 ,删除连接处空格
$包含运算 ,结果为逻辑型
a = "华为 "
b = "遥遥领先"
?a+b					&&>华为 遥遥领先
?a-b					&&>华为遥遥领先
?"abc"$"abcdefg"		&&>.T.
日期和日期时间型运算
运算符操作
{^2004-02-18}+10 {^2004-02-18 11:10 a}+10
{^2004-02-18}- {^2004-02-8}
{^2004-02-18 11:10} - {^2004-02-18 11:10}
{^2004-02-18}-10
?{^2023-09-21}+10			&&2023-10-01
?{^2023-09-21}-10			&&2023-9-11
?{^2023-09-21 8:8:8 a}-10	&&2023-9-21 08:07:58 AM
?{^2023-09-21 16:28:30}-{^1996-03-14 08:30:00}			&&868521510

两个日期不能相加;日期与日期时间型不能相减

关系运算符
运算符操作示例
< 、 >小于、大于10>20;10<20
=等于10=20;’abc’=‘ab
<>、#、!=不等于10<>20
>= <=大于等于 小于等于10>=20 10<=20
= =精确比较 ,针对字符串“abc”==“ab”
逻辑运算符
运算符操作示例
NOT | !逻辑非NOT .F.
AND逻辑与.T. AND .F.
OR逻辑或T. OR .F.
运算符优先级

数值运算符 > 关系运算符 > 逻辑运算符

表达式

由不同运算符组成的表达式

&&算数表达式
#DEFINE PI=3.14
R=10
S=PI*R*R
&&字符表达式
“姓名:”+TRIM(js.xm)
LEFT(“中华人民共和国”,4)
&&日期表达式
DATE()-{^2004-02-10}
{^2004-02-10}+10
&&关系表达式
30>30
‘A’==‘a’
DATE()-10>{^2004-02-10}
&&逻辑表达式
NOT (50>300)
‘A’=‘a’  AND .F.
.T. OR .F.
函数

定义:函数是一种预先编制好的程序代码,可供用户调用。

注意:外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传函数可以接受0或多个参数

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传函数只能由一个返回值

使用:函数名([参数],[参数2])

分类:

  1. 数值函数

    函数名说明示例结果
    abs()求绝对值abs(-5)5
    int()取整int(10.5)10
    round()四舍五入round(3.1415,2)3.14
    sqrt()求算数平方根sqrt(9)3
    log()求自然对数log(10)2.3
    max()最大值max(1,5,6,2)6
    min()最小值min(2,5,9,3)2
    mod()取余mod(10,3)1
    rand()随机数,默认0~1随机数int(rand()*10)0~10随机数
    ?abs(-5)				&&绝对值	
    ?max(10,5,2)			&&求最大值
    ?int(10.5)				&&求整
    ?round(3.14159)			&&四舍五入
    ?round(3.14159,3)		&&四舍五入
    ?sqrt(9)				&&开平方根
    ?mod(10,3)				&&取余
    ?rand()					&&随机数
    ?int(rand()*10)			&&随机数
    ?log(10)				&&自然对数
    
  2. 字符函数

    函数名说明示例结果
    space()生成空格space(2)" "
    trim()删除左右两边空格trim(" abc ")“abc”
    ltrim()删除左边空格ltrim(" abc ")"abc "
    rtrim()删除右边空格rtrim(" abc ")" abc"
    alltrim()删除左右两边空格alltrim(" 132 ")“132”
    left()从左边开始截取指定字符串left(“abcd”,2)ab
    right()从右边开始截取指定字符串right(“abcd”,2)cd
    substr()从指定位置开始,截取指定个个数字符串substr(“abcdef”,3,2)cd
    len()计算字符串的长度len(“abc”)3
    at()返回一个字符串在另一个字符串中出现的位置at(‘b’,‘abcabc’)2
    ?trim(" 1 12 2 ")
    ?alltrim(" 1 12 2 ")
    ?left("abcd",2)
    ?right("abcd",2)
    ?substr("abcdef",2,3)
    ?len("jhfdk")
    ?AT('b','abcabc')
    ?AT('b','abcabc',2)
    
  3. 日期时间函数

    函数名说明示例结果
    date()返回当前系统日期date()09/26/23
    year()返回日期表达式年份year({^2023-09-26})2023
    month()返回日期表达式月份month({^2023-09-26})9
    day()返回日期表达式日的数值day({^2023-09-26})26
    time()返回当时系统时间hh:mm:sstime()10:56:31
    datetime()返回当时系统日期时间datetime()09/26/23 10:56:31 AM
    dow()返回星期几的域dow({^2023-09-26})3
    ?DOW(DATE())
    ?date()
    ?year({^2023-09-26})
    ?month({^2023-09-26})
    ?day({^2023-09-26})
    ?time()
    ?datetime()
    
  4. 类型转换函数

    函数名说明示例结果
    str()将数值转换为字符串str(123)“123”
    val()将字符型数值转换为数值型数据val(“132”)123
    ctod()将字符型日期转换为日期型数据ctod(“09/26/23”)09/26/23
    dtoc()将日期类型转换为字符型类dtoc({^2023-09-26})09/26/23
    upper()将小写字母转换为大写upper(“abc”)ABC
    lower()将大写字母转换为小写lower(“ABC”)abc
    asc()返回第一个字符的ASCII码asc(“a”)97
    chr()将数值转换为ASCII对应的字符chr(97)a
    ?str(123)
    ?val("123")
    ?ctod("09/26/23")
    ?dtoc({^2023-09-26})
    ?upper("abc")
    ?lower("ABC")
    ?asc("a")
    ?chr(97)
    
  5. 其他函数

    函数名说明示例结果
    between()判断是否位于某个区间内BETWEEN(“b”,“a”,“c”).T.
    inkey()返回所摁键盘的键值INKEY(),INKEY(0),INKEY(2)
    type()返回查询的数据类型type(123)N
    iif()判断函数iif(a=b,“T”,“F”)T
    diskspace()返回空闲磁盘空间diskspace()
    file()查询文件是否存在file(“c:\sparkraw.log”).T.
    messagebox()创建消息对话框?MESSAGEBOX(“是否重来”,4+32+256, “错” )
    getfile返回一个和指定路径中文件相对应的 File 对象
    empty测试是否为空empty(“123”).F.
    ?INKEY(),INKEY(0),INKEY(2)
    ?DISKSPACE()
    ?FILE("c:\sparkraw.log")
    ?MESSAGEBOX("是否重来",4+32+256, "错" )
    ?empty(133)
    

    |
    | file() | 查询文件是否存在 | file(“c:\sparkraw.log”) | .T. |
    | messagebox() | 创建消息对话框 | ?MESSAGEBOX(“是否重来”,4+32+256, “错” ) | |
    | getfile | 返回一个和指定路径中文件相对应的 File 对象 | | |
    | empty | 测试是否为空 | empty(“123”) | .F. |

    ?INKEY(),INKEY(0),INKEY(2)
    ?DISKSPACE()
    ?FILE("c:\sparkraw.log")
    ?MESSAGEBOX("是否重来",4+32+256, "错" )
    ?empty(133)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值