发布时间:2025-12-09 11:54:40 浏览次数:1
Visual FoxPro是关系型数据库管理系统的典型代表之一。
Visual FoxPro是一个可运行于Windows平台之上的32位数据库管理系统。
数据:数据是指能被计算机存储和处理、反映客观事物的符号。数据处理:数据处理是指对数据进行收集、存储、分类、计算、统计、检索及传输的过程。数据库:数据库(DataBase,DB)是有组织的、可共享的相关数据的集合。数据库管理系统:(DataBase Management System,DBMS)是管理数据库的软件系统。功能是管理和维护数据。实体和实体集:实体是现实世界中客观存在并且可以互相区别的事物。实体集是同一类实体组成的集合。联系的分类:一对一关系、一对多关系、多对多关系。表格:表格来管理数据,二维表反映事物之间的关系。数据类型:层次模型、网状模型、关系模型。关系模型:关系模型是用二维表格的形式来表示实体与实体之间联系的数据模型。数据库类型:层次数据库、网状数据库、关系数据库。?"How are you"&&在屏幕上显示How are you 并换行??"How are you"&&在屏幕上显示How are you 不换行clear&&清除屏幕显示信息?date()&&屏幕上按"月/日/年"的格式显示当前系统日期?time()&&显示时间到秒use <表文件名>[in 工作区号][alias 别名]&&打开表create table|dbf <表文件名>(<字段名><类型>[宽度[,小数位]]) &&创建表help <帮助主题> &&获取命令和楷书的帮助信息| 运算符 | 名称 | 运算符 | 名称 |
|---|---|---|---|
| + | 加法 | - | 减法 |
| * | 乘法 | / | 除法 |
| ^或** | 乘方 | % | 求余 |
示例:?2+3&&屏幕上显示5?2*3&&屏幕上显示6?2**3&&屏幕上显示8?2^3&&屏幕上显示8?3-2&&屏幕上显示1?6/2&&屏幕上显示3?5%2&&屏幕上显示1| 运算符 | 名称 | 运算符 | 名称 |
|---|---|---|---|
| > | 大于 | >= | 大于等于 |
| < | 小于 | <= | 小于等于 |
| = | 等于 | == | 恒等于 |
| <>或!=或# | 不等于 | $ | 包含于(仅用于字符) |
示例:?5>4&&屏幕显示.T.?5<4&&屏幕显示.F.?5=4&&屏幕显示.F.?5<>4&&屏幕显示.T.?5>=4&&屏幕显示.T.?5<=4&&屏幕显示.F.?7+8==3*5&&屏幕显示.T.?"A">"B"&&屏幕显示.F.根据比较ASCII码?"am"$"I am a student."屏幕显示.T.?"Am"$"I am a student."屏幕显示.F.?Not 2>3&&屏幕显示.T.?3>2 or 2>3&&屏幕显示.T.?3>2 and 2>3&&屏幕显示.F.?.T. > .F.&&屏幕显示.T.字符型:[China] 、'China'、"China" ;包括
数值型:56、56.5、-56 ;包括
日期型:{^2021/1/19}
逻辑性:.T. 、.F.
常量:常量是指值始终不变的量
变量:其值可以发生改变的量,一般分为字段变量和内存变量。字段变量是存储在数据表中的量,内存变量是指存储在内存中的变量。
内存变量用于在程序中临时保存数据,将数据保存在内存中,使用变量前通常要先给变量赋值。
变量命名规则:
内存变量赋值
<内存变量名> = <表达式>
示例:XH = "FoxPro"&&将字符串FoxPro赋值给XH?XH&&屏幕显示FoxProXH = 3*6&&将3*6的值赋值给XH?XH&&屏幕显示18store "Hello" to a,b,c&&将字符串Hello同时赋值给a,b,c三个变量?a,b,c&&屏幕在同一行显示三个Hello显示内存变量
display memory [like 变量通配名]
示例:display memory &&屏幕显示所有用户自定义变量删除内存变量
clear memory删除所有用户自定义内存变量
release <内存变量名> 删除指定的用户自定义内存变量
示例:store "Hello" to a,b,c&&将字符串Hello同时赋值给a,b,c三个变量?a,b,c&&屏幕在同一行显示三个Hellorelease a,b&&将变量a,b删除?a,b&&屏幕显示找不到变量的出错信息?c&&屏幕显示Hello一组变量名相同、使用下标来区别的内存变量就称为数组。
数组由数组名和下标两部分组成。数组名指定数组的名字,下标指定数组元素的个数。
数组名命名规则和变量名命名规则相同。
数组的下标从1开始
示例:ZH(4)&&数组名为ZH,下标为4,一维数组ST(3,5)&&数组名为ST,下标为3和5,二维数组定义和显示数组:数组通常先定义再赋值
declare <数组名> (行[,列])[,数组名2(行)[,列]]
示例:dimension a(5)&&定义a数组长度为5declare ZH(4),ST(3,5)&&定义ZH长度为4,ST长度为15的两个数组ZH = "FoxPro"&&给数组ZH里的所有元素赋相同的值"FoxPro"ZH(1) = "王公子" &&将ZH数组的第一个元素赋值"王公子"字符串?ZH(1)&&屏幕显示王公子ST(1,2) = "Java"&&将ST数组的第一行第二列的元素赋值为Java?ST(1,2)&&屏幕显示Java数组的删除:删除数组可以使用删除内存变量的命令,但这个命令只能删除整个数组
示例:release ZH&&删除ZH数组示例:1、取整函数:int?int(12.56)&&屏幕显示:12?int(-12.56)&&屏幕显示:-122、四舍五入函数:round?round(12.345,1)&&保留一位小数,屏幕显示:12.3?round(12.345,2)&&保留两位小数,屏幕显示:12.353、平方根函数sqrt?sqrt(81)&&屏幕显示81的算术平方根:9.00?sqrt(-81)&&屏幕显示出错信息4、日期和时间函数?date()&&屏幕显示当前系统日期?year(date())&&屏幕显示当前系统日期的年份?month(date())&&屏幕显示当前系统日期的月份?day(date())&&屏幕显示当期系统日期的日数值?time()&&屏幕显示当前系统时间5、space空格函数?"姓名"&&屏幕从第1列显示:姓名?space(20)+"姓名" &&屏幕从第21列开始显示:姓名6、去空格函数?ltrim(space(4)+"姓名 ")&&屏幕显示:姓名 班级?rtrim(space(4)+"姓名 ")&&屏幕显示: 姓名班级?alltrim(space(4)+"姓名 ")&&屏幕显示:姓名班级7、截取字符串函数?right("xsda.dbf",3)&&屏幕显示:dbf?left("xsda.dbf",4)&&屏幕显示:xsda?substr("数据库管理系统",7,4) &&屏幕显示:管理(说明:一个汉字占两个字节)8、测试函数?len(space(20))&&屏幕显示字符串长度:20?type("date()")&&屏幕显示date函数的数据类型:D?vartype(date())&&屏幕显示date函数的数据类型:D?empty(" ")&&屏幕显示:.T.?between(5,6,10)&&屏幕显示:.F.(5不在6-10之间)9、数字转换为字符串返回值?str(1357.246,6,2)&&屏幕显示转换后的字符串:1357.2?str(1357.246)&&屏幕显示转换后的字符串:135710、字符串转换为数值函数?val("246xs36")&&屏幕显示转换后的数值:246.00?val("XS246")&&屏幕显示转换后的数值:0.0011、日期转换为字符串函数DTOC?dtoc({^1997/10/5})&&屏幕显示转换后的字符串:10/25/97?dtoc({^1997/10/25},1)&&屏幕显示转换后的字符串:19971025?ctod("1/19/2021")&&屏幕显示转换后的日期1/19/21,类型为日期函数12、大小写字母转换函数?upper("foxPro")&&屏幕显示转换为大写字母的结果:FOXPRO?lower("FoxPro")&&屏幕显示转换为小写字母的结果:foxpro13、字符串转换为ASCII码函数的返回值?asc("A")&&屏幕显示:65?asc("a")&&屏幕显示:97?chr(97)&&屏幕显示a,将数组转换为对应的ascii码值14、绝对值函数abs?abs(-7)&&屏幕显示:715、自然对数函数log?log(数值表达式)16、最值函数,如果是字符则比较的是字符的ascii的值?max(1,2,3,4,5,6)&&屏幕显示6(max函数求最大值)?min(1,2,3,4,5,6)&&屏幕显示1(min函数求最小值)| 文件类型 | 拓展名 | 文件类型 | 拓展名 |
|---|---|---|---|
| 表文件 | .dbf | 表备注文件 | .fpt |
| 报表文件 | .frx | 报表备注文件 | .frt |
| 标签文件 | .lbx | 标签备注文件 | .lbt |
| 表单文件 | .scx | 表单备注文件 | .sct |
| 数据库文件 | .dbc | 复合索引文件 | .cdx |
| 项目文件 | .pjx | 项目备注文件 | .pjt |
| 文本文件 | .txt | 屏幕格式文件 | .fmt |
| 查询程序文件 | .qpr | 程序文件 | .prg |
| 应用程序文件 | .app | 可执行文件 | .exe |
| 菜单格式文件 | .mnx | 菜单备注文件 | .mnt |
| 菜单程序文件 | .mpr | 内存变量文件 | .mem |
创建表的命令
create <表文件名>
命令功能:打开表设计器新建一个Visual FoxPro表。
参数说明:“表文件名”指定要创建的表的文件名,其中可以包含路径。
实例create 学生档案&&创建一个学生档案表create D:\VFP\学生档案 &&在D\VFP目录下创建一个学生档案表创建表的SQL语句
create table | dbf <表文件名>(<字段名><类型>[(宽度[,小数位数])])
命令功能:新建一个Visual FoxPro表。
参数说明:表文件名指定要创建的表的文件名,可以包含路径。
实例create table 学生(姓名 C(20),总分 N(5,2))复制表的命令
copy to <表文件名> [fields 字段列表] [for 条件]
命令功能:复制当前表的数据创建一个新表。
参数说明:
实例use 学生copy to 学生成绩 fields 姓名,总分 for 性别="男"复制表结构
copy structure to <表文件名> [fields 字段列表]
命令功能:复制当前表的机构创建一个新表。
参数说明:
实例use 学生copy structure to 学生1 fields 姓名,总分 创建数据库
create database <数据库名>
命令功能:创建一个数据库。
参数说明:库名可以包含路径
实例create database 学生信息打开数据库
open database <数据库名>
命令功能:打开指定的数据库。
参数说明:库名可以包含路径
实例open database 学生信息设置当前数据库
set database to <数据库名>
命令功能:设置某个打开的数据库为当前数据库。
参数说明:
设置数据库前必须先打开数据库,如果打开数据库,那么这个数据库默认为当前数据库。实例open database 学生信息open database 学生档案set database to 学生信息关闭数据库
close database
命令功能:关闭当前数据库。
参数说明:若不是当前数据库需要设置为当前数据库。
实例open database 学生信息close database关闭所有打开的文件
close all
命令功能:关闭所有打开的文件,也包含数据库。
实例open database 学生信息close all工作区—> 选择当前工作区
select <工作区号>|<别名>
命令功能:选择指定的工作区为当前工作区
参数说明:
1~10工作区号可以用A-J代替select 0 该命令是选择当前没有使用的工作区号最小工作区作为当前工作区实例select 1select A打开表
use <表文件名> [in 工作区号] [alias 别名]
命令功能:在指定工作区上打开指定的表文件。
参数说明:
实例use 学生信息 in 1|A alias xsxx &&在1号工作区打开学生信息表,表的别名为xsxxselect xsxx&&表示使用别名选中1号工作区关闭表
use [in 工作区号 | 别名]
命令功能:关闭指定工作区上打开的表。
参数说明:“ in 工作区 | 别名 ” ,关闭指定工作区上打开的表。若不写则关闭当前表。
实例use&&关闭当前工作区打开的表use in 5 &&关闭5号工作区打开的表显示表结构
display structure
命令功能:显示当前表结构。
实例use 学生信息display structure修改表结构
modify structure
命令功能:打开表设计器修改当前表结构。
实例use 学生信息modify structure浏览数据
browse [fields 字段列表] [for 条件] [freeze 字段名] [lock 锁定字段名] [noappend] [nodelete] [noedit]
命令功能:打开窗口浏览/编辑当前表的数据。
参数说明:
实例list offbrowse fields 学号,姓名,年龄,性别 for 年龄>=18 freeze 姓名 lock 1移动指针记录—>绝对移动指针记录
go top | bottom | 记录号
命令功能:移动当前表的记录指针。
参数说明:“ go top ” 指针移到第一条记录,“ go bottom” 指针移到最后一条记录,“ go 5 ” 指针移到第五条记录
移动指针记录—>相对移动指针记录
skip [记录数]
命令功能:以当前记录为基准,移动当前表的记录指针。
参数说明:选择 “ 记录数 ” ,指定记录指针需要移动的记录数,若记录数为正则向下移动,若为负则向上移动,若不写则移动一条记录
实例skip -1 &&指针向上移动一条记录skip 4&&指针向下移动四条记录skip &&指针向下移动一条记录测试记录函数
recno()
命令功能:返回当前表的当前记录号。如果当前工作区没有打开表,则函数返回0。
返回值类型:数值型。
实例use 学生信息go 5?recno()&&屏幕显示5测试记录总数函数
reccount()
函数功能:返回当前表的记录总数。
返回值类:型数值型。
实例use 学生档案&&这张表有12条记录?reccount()&&屏幕显示12显示数据
display [all] [fields 字段列表]
命令功能:显示当前表的数据。
参数说明:
实例use 学生成绩display all fields 学号,姓名,总分追加记录
append [blank]
命令功能:在当前表的末尾追加记录。
参数说明:选择 “ blank ” ,追加一条空记录,若不写则进入追加记录方式,允许追加多条记录。
实例use 学生档案append从表文件追加记录
append from <表文件名> [fields 字段列表] [for 条件]
命令功能:把指定表文件中的记录追加到当前表。
参数说明:
实例use 学生档案append from 学生档案2 fields 学号,姓名,年龄,成绩 for 等级="优秀"逻辑删除记录
delete [all] [for 条件]
命令功能:逻辑删除当前表中的指定记录。
参数说明:选择“all” 而不选择“for”,将逻辑删除所有记录,选择“for”将删除满足条件的所有记录,两者都不写则只逻辑删除当前记录。
实例use 学生档案delete for 年龄<=18 &&逻辑删除年龄小于等于18岁的所有记录测试逻辑删除
delete()
函数功能:如果记录有删除标记,返回逻辑真值,否则,返回逻辑假值。
返回值类型:逻辑型。
实例use 学生档案delete for 年龄<=18?delete()&&屏幕显示 .T.撤回逻辑删除
recall [all] [for 条件]
命令功能:撤回当前表中的逻辑删除。
参数说明:选择“all” 而不选择“for”,将撤回逻辑删除所有记录,选择“for”将撤回逻辑删除满足条件的所有记录,两者都不写则只撤回逻辑删除当前记录。
物理删除
pack
命令功能:物理删除当前表中已被逻辑删除的记录
zap
命令功能:物理删除当前表中的所有记录
说明:使用物理删除记录时,通常先给自己记录添加删除标记,经检查无误后,再进行物理删除。
更新数据
replace <字段名> with <表达式1>[,<字段名2> with <表达式2>…] [all] [for 条件]
命令功能:成批替换当前表的数据。
参数说明:
实例use 学生档案replace 班级 with "18级软工3班" all创建索引
index on <关键字> tag <索引名> [of 复合索引文件名] [for 条件] [descending]
命令功能:为当前表创建一个索引。
参数说明:
实例use 学生档案index on 入学成绩 tag 成绩1 for 班级="计算机01" descending打开索引文件
set index to [索引文件列表]
命令功能:打开当前表的索引文件。
参数说明:选择 “ 索引文件列表 ” ,指定打开的索引文件,其中两个文件名之间用逗号分隔。若不写则关闭当前表除结构索引外的其他打开的索引文件。
指定当前索引
set order to <索引名> [of 索引文件名]
命令功能:指定当前表的当前索引。
参数说明:选择 “ of 索引文件名 ” ,指定该索引文件中的所用为当前索引,若不写则指定结构索引文件中的索引为当前索引。
实例use 学生档案&&在当前工作区打开学生档案表set order to 年龄 &&指定结构索引文件中的入学成绩为当前索引browse &&按当前索引指定的顺序浏览数据维护索引
reindex
命令功能:对当前表的所有打开的索引文件重新索引。
使用说明:仙子啊当前工作区打开表文件和需要维护的索引文件,再执行该命令,当前表所有打开的索引文件中都将被重新建立。
检索数据
locate for <条件>
命令功能:在当前表中查找满足条件的第一条记录。
参数说明:“ 条件 ” ,是一个逻辑表达式,它用于指定记录满足的条件。
实例use 学生档案locate for 学号="1001"display&&显示查询到的数据继续检索
contiune
命令功能:在当前表中继续查找满足条件的下一条记录。
实例use 学生档案locate for 年龄>=17displaycontinuedisplay……测试检索函数
found()
函数功能:测试检索数据是否成功的函数。若检索成功则返回逻辑真,否则返回逻辑假。
返回值类型:逻辑性。
测试指针是否在文件尾
eof()
函数功能:测试记录是否在文件尾的函数。若在文件尾则返回逻辑真,否则返回逻辑假。
返回值类型:逻辑性。
求和命令
sum [表达式列表] [for条件]
命令功能:计算当前表中指定数值型字段数据之和。
参数说明:
实例use 学生成绩sum 语文求平均值命令
average [表达式列表] [for 条件]
命令功能:计算当前表中指定数值型字段数据的算术平均值。
参数说明:与sum相同。
实例use 学生成绩average(数学)SQL语言包括以下四个部分:
本记主要学习数据操作语言、数据查询语言、数据定义语言。
添加数据
insert into <表文件名>(字段1,字段2……) values(值1,值2……)
SQL功能:向数据表中添加一条记录。
insert into <表文件名>(字段1,字段2……) values(值1,值2……),(值1,值2……),(值1,值2……),……
命令功能:向数据表中添加n条记录。
参数说明:字段和值要一 一对应,字段类型和值类型也要一 一对应。
实例insert into 学生档案(学号,姓名,总成绩) values('1001','韩信',686)删除数据
delete from <表文件名> [where 条件]
SQL功能:按条件删除记录。
参数说明:若写where条件则按条件进行删除记录,若不写则删除表中所有记录。
实例delete from 学生档案 where 年龄>20-- 删除学生档案 表中年龄所欲大于20岁的记录delete from 学生档案 -- 删除学生档案 表中所有记录修改数据
update <表文件名> set 字段名1=新值1,字段名2=新值2,… [where 条件]
SQL功能:根据条件修改表中记录的值。
参数说明:字段名要和值一 一对应,且最少有一对,写where条件则根据条件对满足条件的所有记录进行数据修改,若不写where条件,则修改表中所有数据。
实例update 学生档案 set 学号="1002",姓名="叶总" where 学号="1003"-- 将原来学号为1003的学生修改学号为1002且姓名为叶总update 学生档案 set 性别="男" -- 将学生档案表的所有记录的性别都修改为男单表查询
select 字段列表 from <表文件名> []
SQL功能:查询表文件指定字段的所有记录。
参数说明:字段列表若写成 * 则代表所有字段。
实例select * from 学生档案-- 查询学生档案所有信息select 学号,姓名 -- 查询学生档案所有信息,但只包含学号和姓名字段单表条件查询
select 字段列表 from <表文件名> where 条件
SQL功能:根据where条件查询数据
参数说明:where条件可以是and或or
实例select * from 学生档案 where 学号="1001"-- 查询学号为1001的记录select * from 学生档案 where 班级="18软工3班" and 姓名="李白"-- 查询班级为18软工三班并且姓名为李白的记录select * from 学生档案 where 班级="18软工3版" or 姓名="廉颇"-- 查询班级为18软工三班或者姓名为李白的记录表别名和字段别名
select 字段 as 字段别名, 字段 as 字段别名,…… from <表文件名> as 表文件名的别名
SQL功能:为字段和表起别名
参数说明:as 为别名关键字,可以省略不写,中间留出空格即可。
实例select 成绩 as 学生成绩 from 学生成绩 as xscj-- ==========等价于==========select 成绩 学生成绩 from 学生成绩 xscj模糊查询
select 字段列表 from <表文件名> where 字符名 like “%值%”
SQL功能:根据条件进行模糊查询。
参数说明:%为占位符。
实例select * from 学生档案 where 姓名 like "%白%"-- 查询所有名字中带白的记录select * from 学生档案 where 姓名 like "李%" -- 查询所有以李字开头的记录聚合函数
SUM、AVG、COUNT、MIN、MAX
函数功能:对数值型字段进行统计总和、计算平均值、计算总条数、求最小值、求最大值
参数说明:
实例select sum(年龄) from 学生档案-- 求年龄字段的总累加值select avg(年龄) from 学生档案-- 求年龄字段的平均值select count(学号) from 学生档案-- 求总共有多少个学号select min(语文成绩) from 学生档案 -- 求语文成绩最低的记录select max(英语成绩) from 学生档案 -- 求英语成绩最高的记录去重查询
distinct(字段名)
函数功能:给指定的字段去重查询,查询出来的每条数据对于指定的字段不会有重复的数据。
实例select distinct(地区) from 学生信息-- 根据地区字段进行去重查询,查询出来的每条数据不会有重复的地区名称分组查询
group by [having 条件]
SQL功能:对数据进行分组
参数说明:having 条件可以不写
需求:查询18级软工3班男生和女生的平均年龄分别是多少?select 性别,avg(年龄) from 学生档案 group by 性别 having 班级="18级软工3班" having 和 where 的区别:
多表查询
[数据库名 !]<表名> [inner | left | right | full] join [数据库名 !]<表名>[on 链接条件]
SQL功能:使多表之间进行联查。
参数说明:
on 链接条件指表与表之间的连接条件,链接条件是一个逻辑表达式。
链接类型:
| 选项 | 名称 | 说明 |
|---|---|---|
| inner | 内部链接 | 只返回完全满足链接条件的记录 |
| left | 左链接 | 返回join左侧中的所有记录及右侧表中匹配的记录 |
| right | 右链接 | 返回join右侧中的所有记录及左侧表中匹配的记录 |
| full | 完全链接 | 返回两个表中的匹配和不匹配的所有记录 |
实例select * from xsgl!xsda inner join xsgl!xscj on xsda.id = xscj.id-- xsda表和xscj表的链接嵌套查询
select 字段列表 from 表名 where 条件
命令功能:嵌套查询语句,条件可以是查询语句,但值必须是唯一的。
实例select * from xsda where 年龄>(select avg(年龄) from xsda)-- 查询年龄比平均年龄高的记录删除表
drop table <表文件名>
SQL功能:删除表文件及所有数据
实例drop table 学生档案-- 删除学生档案这个表文件及所有数据 -- 温馨提示:数据无价,谨慎操作!删除数据库
delete database <数据库名>
SQL功能:删除数据库文件。
添加自由表到数据库中
add table <表名>
SQL功能:添加自由表到数据库中。
将表移出
remove table <表名>
SQL功能:将表从数据库中移出。
修改表名
alter table <新表名>
SQL功能:修改表名。
修改字段列名称
alter table <表名> rename 字段名 to 新字段名
SQL功能:修改字段列名称。
添加字段
alter table <表名> add 字段名 类型(长度)
SQL功能:从表中添加字段。
删除字段
alter table <表名> drop 字段名
SQL功能:删除表中的字段。
复制表
copy files 表1.* to 表2.*
SQL功能:复制表到一个新的表。其中不要打开被复制的表。
显示文件内容
type 文件名.后缀名
命令功能:显示文件信息。
创建查询
create query
命令功能:创建一个查询文件,打开查询对话框。
运行查询
do <查询文件名>
命令功能:运行查询文件。查询文件名可以包含路径名。
打开查询文件
modify query <查询文件名>
命令功能:修改查询文件。查询文件名可以包含路径名。
查询去向
[into 目标 | to file 文件名 [additive] | to printer | to screen]
命令功能:将查询结果输出到具体对象。
参数说明:
to file,将指定查询结果输出到文本文件中。选择additive,查询结果追加到文件尾,否则将覆盖原来的内容。
to printer,将指定查询结果输送到打印机输出。
to screen,将指定查询结果显示到屏幕上。
into 目标,将指定查询结果输出到表文件或数组中。
| 选项 | 意义 |
|---|---|
| cursor 表文件名 | 将查询结结果保存到一个只读的临时表中 |
| dbf 表文件名 | 将查询结果保存到一个表文件中 |
| array 数组名 | 将查询结果保存到二维数组中 |
实例select 学号,姓名,成绩,年龄,班级 from xsda into dbf xsxx-- 将查询结果保存到xsxx表中select 学号,姓名,成绩,年龄,班级 from xsda into cursor xsxx -- 将查询结果保存到xsxx一个临时的只读表中select 学号,姓名,成绩,年龄,班级 from xsda into array xsxx -- 将查询结果保存到一个名为xsxx的二位数组中select 学号,姓名,成绩,年龄,班级 from xsda to file xsxx -- 将查询结果保存到名为xsxx的文本文档中select 学号,姓名,成绩,年龄,班级 from xsda to printer -- 将查询结果送打印机输出select 学号,姓名,成绩,年龄,班级 from xsda to screen -- 将查询结果打印在屏幕上创建和运行本地视图
create view <视图名> as <查询语句>
命令功能:为当前数据库创建视图
参数说明:查询语句是指SQL查询语句,该查询语句指定视图显示的数据。
实例open database xsglcreate view xsxx_v as select 学号,姓名,年龄,班级 from xsxxdo 视图名
命令功能:运行指定的视图
参数说明:视图名是指已经创建好的视图
实例do xsxx_v删除视图的SQL命令
drop view <视图名>
SQL功能:删除指定的视图。
使用命令新建报表
create retport <报表文件名>
命令功能:新建一个空白报表。
参数说明:“报表文件名”指要创建的报表文件名,可以包含路径。
create report E:\VFP\xsda_r打开报表文件
modify report <报表文件名>
命令功能:打开指定的报表文件。
参数说说明:报表文件名可以包含路径。
创建与运行程序
modify command <程序文件名>
命令功能:启动文本编辑器创建和编辑程序文件。
参数说明:程序文件名指定要创建的文件名,可以包含路径。
do <程序文件名>
命令功能:运行程序。
参数说明:程序文件名指定要运行的文件名,可以包含路径。
清屏命令
clear
命令功能:清除屏幕上的显示信息。
简单输入输出命令
accept [提示信息] to <内存变量>
命令功能:把用户输入的字符串保存到指定的内存变量。
参数说明:提示信息是一个字符型表达式,选择该项则显示要提示的信息,若不写则不提示。
accept "请输入你的姓名:" to nameinput [提示信息] to <内存变量>
命令功能:把用户输入的表达式的值保存到指定的内存变量。
参数说明:提示信息是一个字符型表达式,选择该项则显示要提示的信息,若不写则不提示。
input "请输入你的成绩:" to scorewait [提示信息] [to 内存变量] [window] [timeout 时间]
命令功能:等待用户输入一个字符。
参数说明:
wait "请输入(Y/N)" to msg window timeout 5格式化输入输出命令
@<行,列> say <显示信息> [字体属性]
命令功能:在指定位置输出显示信息。
参数说明:
@ 1,10 say "学生档案" font "隶书",20&&在屏幕第一行第10列开始处打印"学生档案"并且设置字体为隶书,字号20@ <行,列> say <显示信息> get <变量>
命令功能:在指定位置输入数据,并把输入的数据保存在指定的变量
参数说明:
x = "Hello"@1,10 say "学生档案" get x测试行、列函数
row()
函数功能:返回当前光标的行坐标。
返回值类型:数值型。
?row()&&屏幕显示当前光标的行号col()
函数功能:返回当前光标的列坐标。
返回值类型:数值型。
?col()&&屏幕显示当前光标的列号设置程序运行环境
set talk on | off
命令功能:设置是否显示某些命令执行的结果。选择on则显示执行的结果,选择off反之亦然。
set talk off……set talk onset safety on | off
命令功能:设置删除文件数据时是否显示提示信息。选择on显示提示信息,选择off反之亦然。
set safety off……set safety onclear all
命令功能:清除用户自定义内存变量和对象
双分支结构
if <条件>
<语剧组1>
else
<语句组2>
endif
参数说明:条件为逻辑性值,语句组是由Visual FoxPro的程序语句组成。
执行流程:如果满足条件则执行语句组1然后结束,若不满足条件则执行语句组2然后结束。
if 3>2 ?"真"else ?"假"endif&&屏幕上将打印"真"多分枝结构
do case
case <条件1>
<语句组1>
case <条件2>
<语句组2>
……
[otherwise
<语句组>]
endcase
参数说明:
程序流程:程序从第一个条件开始执行,若满足条件则执行当前条件下的语句组然后结束程序,若不满足则继续匹配满足条件的分支然后执行当前分支下的语句组然后结束程序。若选择了otherwise当条件都不满足时则执行otherwise语句组然后结束程序。
do casecase 1>1?"错"case 1<2?"对"otherwise?"不知道"endcase&&屏幕将打印"对"基于条件的循环
do while <条件>
<语句组>
enddo
参数说明:
执行流程:只要条件的逻辑值为.T.则一直执行循环体。
do while .T.?"Hello"enddo&&死循环,屏幕将一直打印"Hello"针对记录的循环
scan [for条件]
<语句组>
endscan
参数说明:
use 学生档案scan for 班级 = "18级软工1班"?学号endscan指定次数的循环
for <变量>=<初值> to <终值> [step 步长]
<语句组>
endfor
参数说明:
for n = 1 to 10??nendfor&&屏幕将打印12346789&&-----------------------------for n = 1 to 10 step 2??nendfor&&屏幕将打印13579loop
命令功能:终止本次循环执行下一次循环。
for n = 1 to 10if n%2=0loopendif??nendfor&&屏幕将打印13579exit
命令功能:终止当前循环结构执行循环结构后面的语句。
for n = 1 to 10if n%2=0exitendif??nendfor&&屏幕不会打印任何内容定义过程
procedure <过程名>
<语句组>
endproc
参数说明:“过程名”指定过程的名字,过程的命名规则与变量的命名规则相同。
procedure totalCicle?"Hello"endproc打开与关闭过程文件
set procedure to [过程文件名]
参数说明:选择”过程文件名“,打开指定的过程文件,若不写则关闭已经打开的过程文件。
set procedure to totalCicle传递参数命令
do <程序名 | 过程名> [with 参数列表]
命令功能:调用指定的程序,并把指定的参数传递给调用的下级程序
参数说明:选择 with 参数列表,将把指定的参数传递给调用的子程序或过程,若不写则不传递参数,参数可以是变量、常量、表达式。
do totalCicle with 5接收参数的命令
parameters <参数表>
命令功能:接收上级程序传递来的参数。
参数说明:”参数表“中的参数只能是变量名,并且参数的个数要与do 命令传递参数的数目相同。
注意:接收参数命令必须是子程序或过程的第一条可执行程序。
parameters n,m过程的实际应用
set talk offclearinput "请输入圆的半径:" to rdo totalCicle with r*定义的过程procedure totalCicleparameters rs = 3.14 * r^2?sset talk on 自定义函数
function 函数名
[parameter 参数名]
[return 表达式]
endfunc
函数功能:作用和过程一样.
参数说明:
set talk offclear?totolsum(5)&&调用函数&&自定义函数function totolsumparameter XP = 1for n = 1 to XP=P+nendforreturn Pendfuncset talk off$$屏幕将打印16创建表单
create form <表单文件名>
命令功能:创建一个空白表单。
create form E:\VFP\表单1运行表单
do form <表单文件名>
命令功能:运行指定的表单。
do form E:\VFP\表单1打开表单
modify form <表单文件名>
命令功能:打开指定的表单
modify form E:\VFP\表单1表单常用命令
thisform.refresh&&刷新表单thisform.release&&释放并关闭表单,从内存中清除表单