VF命令总结

set default to E:\VF\实训1

创建表// create table 学生 (学号 C(9), 姓名 C(6), 性别 C(2), 出生 D,团否 L,入学成绩 N(3),近照 G,备注 M)
use 学生
list structure//显示当前表的结构(分屏)

use // 关闭表

MODIFY STRUCTURE//修改表结构

display structure//(任意键)

对学生表增加爱好字段C(20)
将爱好字段的类型改为C(30)
将爱好字段改名为特长
删除特长字段

alter table 学生 add column 爱好 c(20)
alter table 学生 alter column 爱好 c(30)
alter table 学生 rename 爱好 to 特长
alter table 学生 drop 特长

copy files 学生.* to 学生1.*//表的复制(使用是要关闭)

copy to 学生.txt for 性别='男' type sdf
type 学生.txt
//显示工作表中的文本文件

copy structure to 学生4//copy表结构
list structure//显示表结构
browse//显示所有
browse fields 学号 ,姓名,性别//只列出:学号 ,姓名,性别
browse
list for 性别='男'
list for 性别='女'
list for 性别='女' to file g1.txt
list for 团否=.t. print
use 学生
append//追加
append blank
edit//编辑

use 学生2
append from 学生1 for 性别=‘男’//追加
delete//将当前记录加上删除标记
delete for 性别 ='男'//条件加删除标记
recall for 性别='男'//恢复删除标记
pack//删除加删除标记的记录
browse//显示
zap//删除整张表数据,结构还在

修改记录:
use 学生
replace all for 入学成绩>=400 and 入学成绩<=500 入学成绩 with 入学成绩+10
insert//在当前记录的后面加入一条记录
browse
insert before//在当前记录的前面加入一条记录
browse

指针的移动:
go top//第一条记录
go bottom//最后一条记录
go 2//第二条记录
skip +1//当前指针向下移动
skip -1//当前指针向上移动

将记录传给内存变量:
use 学生
scatter to a memo
?a(1),a(2),a(3),a(4),a(5),a(6),a(7),a(8)
将当前记录传给同名的变量:(同名应用内存变量)
scatter memvar
?m.学号
?m.姓名

表与变量数据的传送应用:
clear
dimension a(8)
use 学生2
go 3
scatter memvar
?m.学号, m.姓名, m.性别, m.出生, m.团否, m.入学成绩
go 5
scatter to a
?a(1), a(2), a(3), a(4), a(5), a(6), a(7), a(8)

内存变量与表之间数据传送的应用:
use 学生2
append from 学生1
append blank
dimenson a(8)
a(1)=‘105010106’
a(2)=‘王小丽’
a(3)=‘女’
a(4)={^1980-10-2}
a(5)=.t.
a(6)=100
gather from a
list
append blank
学号=‘105010107’
姓名=‘刘丽华’
性别=‘女’
出生={^1981-10-3}
gather memvar
list

多条记录数据传送给数组:
use 学生2
dimension b(2, 8)
copy to array b
?b(1, 1), b(1, 2), b(1, 3), b(1, 4), b(1, 5), b(1, 6), b(1, 7), b(1, 8)
?b(2, 1), b(2, 2), b(2, 3), b(2, 4), b(2, 5), b(2, 6), b(2, 7), b(2, 8)

数组数据追加给表:
use 学生2
append from array b
list

过滤器命令应用:
use 学

生1
set filter to 性别='女'
list
set filter to//取消筛选,无条件显示所有记录
list

set filter to 性别='男' or 入学成绩 >600

locate命令应用
use 学生2
locate for 性别='男'//从第一条记录开始找,找到第一条匹配记录
?found()
display
continue//从当前记录继续往下找
display

排序:默认是升序/a
sort to 学生1 on 入学成绩 /d //按如需成绩降序排列,生成表:学生1
use 学生1
browse

sort to 学生3 on 姓名 /d
use 学生3
browse

索引:
use 学生
index on 学号 to x1 unique ascending //升序排列
list

index on 性别+ str(入学成绩) to x2
index on 入学成绩 tag s1 descending//结构化符合索引,降序(普通所引可以重复)
browse

index on 姓名 tag s2 candidate//候选索引(不能重名(姓名),唯一)

browse
use 学生
index on
index on 姓名 to x6
find 李立明
?found()可以显示找到还是没好到

use 学生
count for 性别='女' to x2
?x2
统计个数

sum:求和
use 学生成绩
index on 学号 tag a1
sum all 数学,vfp,英语 to ,x1,x2,x3
use 学生成绩f
sum 原理,网络,c to array a
?a(1),a(2),a(3)

avg:求平均分
use 学生成绩
average 数学,VFP,英语 to y1,y2,y3
?y1,y2,y3

average 数学,VFP,英语 to array b
?b(1),b(2),b(3)

calculate sum (数学),sum(vfp) to z1,z2
?z1,z2

clear
use 学生成绩
calculate sum(数学), sum(VFP) to z1, z2
?z1, z2
calculate min(VFP), max(VFP) to array a
?a(1), a(2)
use

统计入学成绩:
use 学生
index on 性别 to x9
browse
total to f1 on 姓别 all fields 入学成绩
use f1
browse
browse fields 性别,入学成绩

分别在3个工作区打开工作表:
?select()
use 学生
select 2
use 学生成绩
use 学生成绩f in 3

browse fields A->学号,A->姓名,B->数学,C->原理

建索引:
modify structure
select 2
modify structure
select 3
modify structure

建立关系:
SELECT 1
SET ORDER TO TAG Index2 OF e:\vf\实训1\学生成绩.cdx IN 学生成绩
SET RELATION TO 学生.学号 INTO 学生成绩 ADDITIVE
SET ORDER TO TAG Index3 OF e:\vf\实训1\学生成绩f.cdx IN 学生成绩f
SET RELATION TO 学生.学号 INTO 学生成绩f ADDITIVE
browse fields A->学号,A->姓名,B->数学,C->原理

建数据库:
create database 学生
open database 学生
close database all

open database 学生
modify database 学生//修改数据库
delete database 数据1 recycle//删除数据库(可恢复)

create database 职工
open database 职工
modify database 职工
close database
delete database 职工

modify database 学生专业
add table 学生专业
add table 课程
add table 选修
modify database
remove table 课程

建立一个联系数据库,建一张通信表,结构为学号 C(9)、姓名 C(6)、性别 C(2)、电话 C(11)
CREATE DATABASE 联系
CREATE TABLE 通信(学号 c(9), 姓名 c(6), 性别 c(2), 电

话 c(11))
APPEND &&输入数据
LIST
CLOSE DATABASE ALL

建一个学生专业数据库,将学生专业、校专业、课程、选修表添加到库中
CREATE DATABASE 学生专业
ADD TABLE 学生专业
ADD TABLE 校专业
ADD TABLE 课程
ADD TABLE 选修
CLOSE DATABASE ALL

将学生成绩F表分别复制成学生成绩1、学生成绩2表。建一个学生数据库。(2)将学生表、学生成绩表、学生成绩F、学生成绩1、学生成绩2添加到数据库中。(3)将学生成绩1移出库,学生成绩2移出且删除
COPY FILE 学生成绩F.* TO 学生成绩1.*
COPY FILE 学生成绩F.* TO 学生成绩2.*
CREATE DATABASE 学生
ADD TABLE 学生
ADD TABLE 学生成绩
ADD TABLE 学生成绩F
ADD TABLE 学生成绩1
ADD TABLE 学生成绩2
REMOVE TABLE 学生成绩1
REMOVE TABLE 学生成绩2 DELETE
CLOSE DATABASE ALL

SELECT基本语句应用
open database 学生
select * from 学生
select * from 学生 into table 学生y
select 姓名, 入学成绩 from 学生 where 入学成绩>=500
select distinct 性别 from 学生
select 学生.学号, 学生.姓名, 学生成绩.数学 from 学生, 学生成绩 where 学生.性别=‘女’ and 学生成绩.数学>=60 and 学生.学号=学生成绩.学号
select top 2 * from 学生 order by 学号
close database all

分组查询应用
open database 学生
select avg(入学成绩) from 学生
select count(*) from 学生
select sum(入学成绩) from 学生 group by 性别 having 性别=‘女’

查询排序应用
open database 学生
select 学号, 姓名, 入学成绩 from 学生 order by 入学成绩 desc
select 学生.学号, 学生.姓名, 学生成绩.英语 from 学生, 学生成绩 where 学生.学号=学生成绩.学号 order by 学生成绩.英语
select avg(入学成绩) as “入学成绩平均分” from 学生 group by 性别 order by 入学成绩 desc
close database all

IN等谓词及比较运算符结合使用
open database 学生
select * from 学生 where 学号 in (select 学号 from 学生成绩 where 英语>=90)
select * from 学生 where 学号 not in (select 学号 from 学生成绩 where 英语<90)
close database all

比较运算符在嵌套查询中的应用
open database 学生
select * from 学生 a1 where 入学成绩=(select 入学成绩 from 学生 a2 where a1.学号=a2.学号 and 入学成绩>=500)
close database all

查询数学成绩高于90分的学生的学号,姓名
open database 学生
select 学号, 姓名 from 学生 where exist (select * from 学生成绩 where 学号=学生.学号 and 数学>=90)
close database all

查找比所有入学成绩小于500分学生的年龄都小的学生
open database 学生
select * from 学生 where 出生 > all (select 出生 from 学生 where 入学成绩<500)
close database all

查询入学成绩480-600分学生情况,与不在500-600之间的学生
open database 学生
select * from 学生 where 入学成绩 between 490 and 6

00
select * from 学生 where 入学成绩 not between 490 and 600
close database all

查询姓王的所有学生情况,查询姓名前两个字为王丽的学生情况
open database 学生
select * from 学生 where 姓名 like “王%”
select * from 学生 where 姓名 like “王丽_”
close database all

用左连接查找学生表与学生成绩表
open database 学生
select * from 学生 left join 学生成绩 on 学生.学号=学生成绩.学号
close database all

用右连接查找学生表与学生成绩表
open database 学生
select * from 学生 right join 学生成绩 on 学生.学号=学生成绩.学号
close database all

用全连接查找学生表与学生成绩表
open database 学生
select * from 学生 full join 学生成绩 on 学生.学号=学生成绩.学号
close database all

UNION子句
select * from 学生 where 性别=‘女’ union all select * from 学生 where 性别=‘男’

关于结果存放的应用
open database 学生
select * from 学生 into table 新学生
select * from 学生 into array a
select * from 学生 into cursor 临时学生
select * from 学生 to file 学生文本
close database all

插入应用
open database 学生
use 学生成绩
insert into 学生成绩 values (“105010120”, 90, 80, 72)
go 1
scatter memvar
insert into 学生成绩 from memvar
go 2
scatter to a
insert into 学生成绩 from array a

更新应用
use 学生成绩
update 学生成绩 set 数学=数学+10 where 数学<80
update 学生成绩 set 英语=英语+10
use

删除应用
use 学生成绩
delete from 学生成绩 where 英语>100
use

查询入学成绩最高学生的信息
open database 学生
select a1.学号, a1.姓名, a1.入学成绩 from 学生 as a1 where 入学成绩=(select max(入学成绩) from 学生 as b1 where a1.学号=b1.学号)
close database all
































相关文档
最新文档