自考《数据库应用》上机实验(二)
实验二、Foxpro命令的使用
要点:1. Foxpro的命令和命令子句
2. 常量、变量和数组
3. 运算符、表达式
4. 显示数据命令LIST和DISPLAY
5. 内存变量操作命令 clear memo,release <内存变量表>, save to <内存变量文件>,restore from <内存变量文件>
6. 命令:release , save to,restore from ,list, display
一、常量和变量〔说明〕
⒈ 常量常量的类型:C、N、D、L.
字符型常量(C):“中华人民共和国”,“foxpro for windows”, [数据库管理系统]
数值型常量(N):3.14158,-3.14,1.414E+2
日期型常量(D):ctod("98/09/28"), {98/9/30}
逻辑型常量(L):.T. .F. .Y. .N.
⒉ 变量
⑴ 字段变量随着建立库文件一起建立,是一个多值变量;当系统关闭时,字段变量的值不丢失,仍保存在库文件中。字段变量有5种类型。
⑵ 内存变量内存变量分系统内存变量和用户定义的内存变量两种。
当内存变量与字段变量重名时,需加前缀 M->或M.区分
3. 数组定义:dimension <数组名1>(<数值表达式1>[,<数值表达式2>]) [,<数组名2>(<数值表达式3>[,<数值表达式4>])]
declear <数组名1>(<数值表达式1>[,<数值表达式2>]) [,<数组名2>(<数值表达式3>[,<数值表达式4>])]数组的缺省数据类型为逻辑型,初值为.F.
〔练习〕
c1=“中华人民共和国”
c2=“foxpro for windows”,
c3=[数据库管理系统]
? c1, c2, c3 && 输出显示变量c1,c2,c3的内容
n1=3.14 n2=3.14E+2
? n1, n2 && 输出显示变量n1,n2的内容
d1={89/12/31}
? d1 && 输出显示变量d1的内容
l1=.t. l2=.f. l3=.y. l4=.n.
? l1,l2,l3,l4 && 输出显示变量l1,l2,l3,l4的内容
dime data(10),dd1(3,2), user1(10) && 定义数组
? data(1),dd1(1,1) && 输出显示数组变量的初值
data(1)={99/9/9} dd1(1,1)="test str" dd1(1,2)=3.14
? data(1),dd1(1,1),dd1(1,2)
DD1(1,3)=.t. && 注意dd1(1,3)超出数组的定义范围
?dd1(1,3),dd1(2,1)
user1=“test users” && 对数组名直接赋值
?user1(1), user1(2)
二、运算符和表达式〔说明〕
在FOXPRO命令中经常出现表达式,因此掌握表达式的形式,对正确书写命令很重要。
⒈ 运算符有4类运算符:算术、字符、关系、逻辑。
运算符及其优先级见表5-2(P69)。
⒉ 表达式将常量、变量、函数用运算符与圆括号连接起来所成的式子称为表达式。单个的常量、变量、函数也是表达式。根据表达式的值来划分,可将表达式分为:算术、字符串、日期、逻辑表达式。根据表达式中使用的运算符来划分,可将表达式分为:算术、字符、关系、逻辑表达式。
〔表达式练习〕
? {98/12/31}+100
? “今天是:”+dtoc({2003/4/15})
dimension dd(3,2)
dd(1,1)={98/12/1}
dd(1,2)=“下月日期为:”
?dd(1,2) + dtoc(dd(1,1)+30)
use da
? 职务=“工程师” .and. 基本工资>=800 && 调用数据库字段变量值
? 职务=“高工” .or. 基本工资>=1000
? 退休 .and. 基本工资<600 use
? “a ”-“b”&& 注意比较字符串相加与相减的差?
?“a ”+“b”
? 1+2>3 .and. “a”-“b” $ “abc” &&运算顺序为: + - $ > .and.
三、Foxpro的命令和命令子句〔说明〕
命令的书写规则
1、命令:* 在Command窗口输入
* 按回车键后立即执行
* 结果在主窗口显示
2、常用的命令子句
* FIELDS子句:操作涉及的字段
[FIELDS<字段名表>]:Fields 后输入字段名,两个字段名之间用","隔开l 范围子句:操作涉及的记录范围
All
Next
Record
* For子句:设定条件,从库文件中选择满足条件的记录进行操作
For <条件表达式>
* While子句:设定条件,从库文件中选择满足条件的记录进行操作,直至发现一个不满足条件的记录为止
While <条件表达式>
四、内存变量的操作〔说明〕
内存变量的赋值格式:
STORE <表达式> to <内存变量表>
<内存变量>=<表达式>
save screen to <屏幕型内存变量>
内存变量的释放
release <内存变量表>
release all [like | except <通配符>]
clear memory
显示内存变量
list memory [to print]
display memory [to print]
内存变量的保存与恢复
save to <内存变量文件名> all [like | except <通配符>]
restore from <内存变量文件名> [additive]
〔练习〕
v1=3.14
v2=“test string”
? v1, v2 store 0 to v1,v2
store 3.14 to dd
disp memo clear memory
disp memo dime dd(3,2)
a=1
b=2
dd(1,1)=“test data”
disp memo
save to v1
release all
disp memo
rest from v1
disp memo
a=“aaa”
c={98/1/1}
disp memo
rest from v1 additive
disp memo
rest from v1
disp memo
上机练习:
在命令状态下给下列变量赋值,显示所有内存变量,并将之保存到内存变量文件var.mem:
数值型变量 n1 100
n2 3.14159
字符型变量 c1 “中国人民解放军”c2 “interne”
日期型变量 d 98年10月1日
逻辑型变量 l1 .T. l2 .F.
五、显示数据命令
LIST命令| DISPLAY命令
格式:LIST/DISPLAY [
〔练习〕
list for基本工资>=1000
list while 基本工资>=1000
list while 退休=.t.
list for 退休=.t.
list fiel 姓名,性别,出生日期,职务,基本工资 for 退休=.t.
display for基本工资>=1000
display while 基本工资>=1000
display while 退休=.t.
display for 退休=.t.
display fiel 姓名,性别,出生日期,职务,基本工资 for 退休=.t.