在vfp中怎么把学生姓名,成绩同时设为主索引

在vfp中怎么把学生姓名,成绩同时设为主索引,第1张

一个数据库表里只能有一个主索引,但是按你的意思可以将索引表达式设置为 姓名+ str(成绩) 意思是说当姓名相同时比较成绩。我给你举个例子
建立一个表stu(姓名 C(8)成绩 N(2))
输入以下记录
王芳 98
李立 75
刘流 98
王芳 87
建立一个主索引 ,索引名 姓名 ,索引表达式 姓名+ str(成绩)
在命令窗口 输入
set order to 姓名
brow
发现记录的顺序变为
李立 75
刘流 98
王芳 87
王芳 98
你自己分析原因吧

使用 INDEX 命令
INDEX ON eExpression TO IDXFileName | TAG TagName [BINARY]
[COLLATE cCollateSequence] [OF CDXFileName] [FOR lExpression]
[COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE]
详细参考VFP 帮助, 这里无法提供更详细的演示, 有问题可以HI :-)

vfp中设置主键的命令:
INDEX ON eExpression TO IDXFileName | TAG TagName [OF
CDXFileName]
[FOR lExpression]
[COMPACT]
[ASCENDING | DESCENDING]
[UNIQUE | CANDIDATE]
[ADDITIVE]
参数
eExpression
指定一个索引表达式,该表达式中可以包含当前表中的字段名。在索引文件中,按索引表达式给每一个表记录都创建一个索引关键字,Visual FoxPro 使用这些关键字来显示和访问表中的记录。我们一般用一些生活中不会出现的字段来作为主索引,如身份z号等。
UNIQUE
对于一个索引关键字值。利用 UNIQUE 子句可以避免显示或访问记录的重复值。所有添加到表中的记录,如果与表中原有记录有重复的索引关键字值,则不包含在索引文件之内。 要设置主键 必须要有这个参数
举例说明:
INDEX ON 身份z号 TAG idcard UNIQUE
即设计数据库中的"身份z号"字段为主索引。索引标识为 idcard

vfp建立主索引不可以不写索引标示。一个索引表达式或索引关键字段值与记录号对应的内容又称之为一张“对照表”,用一个索引标识来标记。说明:一个表可同时建立多个索引,但只能有一个索引标识。

前面的估计都会 *** 作吧。
我把后面的命令部分给你写一下。
打开表stud1dbf
Use stud1dbf

浏览stud1dbf的结构信息,浏览stud1dbf的记录信息
Display structure
List

修改表stud1dbf的结构,添加字段年龄/N/2,并设置年龄字段与生日字段的记录有效性规则
Modify structure
字段名:年龄;类型:INT
Replace 年龄=year(date())-year(生日)

在表stud1dbf后追加一条记录
Append blank

显示姓“张”的同学的信息
List for left(姓名,2)=”张”

显示stud1dbf中所有男同学的信息
List for 性别=”男”

逻辑删除记录号为5、6、7的记录
Delete all for recn()>=5 and recn()<=7

恢复记录号为5、6的记录
RECALL for recn()>=5 and recn()<=6

删除已有删除标记的记录
pack

关闭stud1dbf
Use

打开stud2dbf
Use stud2dbf
计算每个学生的总分,总分=数学+语文+综合。
Replace all 总分 with 数学+语文+综合

显示总分成绩为600分以上的学生学号、总分
List 学号,总分 all for 总分>=600

按总分由高到低对stud2 dbf排序生成新表stud3 dbf,新表中包含学号、数学、语文、综合成绩、总分字段
Sort on 总分 field 学号,数学,语文,综合成绩,总分 to stud3 dbf

将总分为600分以上的学生人数统计出来存入变量X中
Count all for 总分>=600 to X

计算所有学生的语文总分,数学总分,分别存入变量c、d中(用sum)
Sum all 语文,数学 to c,d

计算所有学生的语文平均分,数学平均分,分别存入变量c、d中(average)
average all 语文,数学 to c,d

关闭stud2 dbf表
Use

打开表stud3 Dbf,用浏览窗口观察排序后的数据,
Use stud3

在表stud3dbf的第五行插入一条记录,并输入内容
Go 5
Insert blank before
(输入内容)

关闭表stud3 Dbf
Use

打开STUDENTdbc数据库设计器,如果stud2表不在库中,将其添加,否则,
不做 *** 作
modify database STUDENTdbc
添加或不添加stud2表

在第一工作区中打开stud1 dbf表,浏览表的记录
Use stud1 Dbf in 1

在第二工作区中打开stud2 dbf表,浏览表的记录
Use stud2 Dbf in 2

在第一工作区中按学号建立主索引,索引名为xh
Select 1
点击VF的标题栏的“显示”,再选中“表设计器”。选中“索引”,在“索引名”一栏输入关键字,再在“类型”中选“主索引”就OK了

按生日建立普通索引,索引号为bir
Index on 生日 tag bir

确定xh为主控索引。
“表设计器”—》“索引”中设置

用list或brow命令列出所有学生信息(观察与无索引之前的不同)
Browse

在第二工作区中按学号建立候选索引,索引名为xh
同上

以学号字段建立俩个表之间的关联,父表为stud1 dbf,子表为stud2dbf,用brow命令打开两个表的浏览窗口,观察两表之间的数据联动。(用set relation 命令建立临时联系)
Select 1
set relation to xh into stud2
当前工作区为1,通过list命令列出所有学生学号、姓名、年龄、数学、语文、综合、总分字段的值。
Select 1
List 学号,姓名,年龄,数学,语文,综合,总分

根据自己的理解设置参照完整数(建立两个表之间永久联系再设置)
自己的理解

关闭工作区1中的表。
Use in 1
关闭工作区2中的表。
Use in 2


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12749190.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存