数据库和表上机操作[1] - 图文 下载本文

内容发布更新时间 : 2024/12/24 0:07:51星期一 下面是文章的全部内容请认真阅读。

下面的操作帮助大家练习和复习第4章的内容,希望大家参照操作方法好好练习,特别是建立数据库和表、复制表、排序、索引等操作是网站上综合作业1设计到操作(用红色字体显示的题目),要特别熟练掌握。

(一) 进入Visual FoxPro 6.0环境,选择自己的文件夹为默认目录,完成下面的操作 设置默认目录的方法:选择“工具”菜单下的“选项”,打开选项对话框,选择“文件位置”,如下图所示,按图中标识,设置默认路径。

双击“默认目录”,打开“更改

文件位置对话框”,如下图所示。

点击这里即可选择自己的文件夹(先建好自己的文件夹,建议建立在电脑E盘homework中,文件夹名字为学号),设置好默认目录后,点击“确定”返回上图“选项对话框”,点击“设置为默认值”,点击“确

1.在默认目录下建立“考生管理”数据库,并在该数据库中建立两个数据库表,表名分别为“考生信息.dbf”、“考生成绩.dbf”和“专业.dbf”。表结构如下: 考生信息(考号C(4), 姓名C(8),性别C(2),团员L,出生日期D,备注M) 考生成绩(考号C(4),专业代码C(1),文化课成绩N(3),专业课成绩N(3)) 输入表记录内容:

考生信息

考号

1001 1002 1003

姓名

刘爱芳

李明 张华

性别 女 男 男 团员 t t t 出生日期 1994.5.1 1993.12.10 1995.1.18 备注

学校推荐生

1004 1005

王芳 陆宏远 女 男 t f 考生成绩

1994.6.26 1994.8.12

考号 专业代码 文化课成绩 专业课成绩 1001 1 87 90 1002 1 76 69 1003 3 72 80 1004 1 88 75 1005 2 92 90 1006 3 68 87

操作方法:

① 选择“文件|新建|数据库|新建文件”,在打开的“创建对话框”中输入数据库的名

称“考生管理”,单击“保存”按钮,则在刚才建立的默认目录下建立好了数据库,并自动打开“数据库设计器”窗口。

提示:数据库文件建立后,会同时在默认目录下生成与之相关的另外两个文件,它

们是扩展名为.dbt的数据库备注文件和扩展名为.dcx的数据库索引文件。

②在数据库设计器中单击鼠标右键,在打开的快捷菜单中选择“新建表”, 单击“新建文件”,打开“创建”对话框,输入表名“考生信息”,单击“保存”按钮,打开“表设计器”窗口,在“表设计器”中输入考生信息.dbf的表结构内容。

结构设置完成后,单击“确定”按钮,出现询问“现在输入数据记录吗?”的提示框,单击“是”按钮,可在编辑窗口中输入考生信息的内容,输入的内容会自动存盘。

输入日期型字段的内容时,要符合系统当前设置的日期格式,系统默认的日期格式为:mm/dd/yy。

备注型字段的输入方法是:在窗口中双击该字段,打开一个文本编辑窗口,即可在其中输入备注型字段的内容。如果备注型字段有内容,则memo的首字母会变成大写,即显示为Memo。

默认情况下,记录在输入时的窗口状态为“编辑”,即每行显示一个字段。可以选择“显示”菜单的“浏览”切换到“浏览”方式下,此时每行显示一个记录。在“浏览”或“编辑”方式下,都可以显示或直接修改记录内容。

如果没有设置好表结构就关闭了表设计器,需要再打开表设计器对表结构进行修改,表设计器的打开方式如下:

菜单方式:“显示|表设计器” 命令方式:modify structure

如果没有输完记录信息就关闭了表输入过程,以后还要输入记录内容时,用追加方式,具体方法见第2题。

③ 以同样的方法建立“考生成绩.dbf”。

操作结果:在默认路径下有三个文件:考生信息.dbf、考生成绩.dbf以及考生信息.fpt(表备注文件,存放备注型字段的内容)

建议:表建好以后,为了方便后面的表操作,可以先把数据库设计器关闭。后面要使用哪个表,再打开哪个表即可。如果没有关闭数据库,那么后面用到哪个表,直接在数据库设计器中双击哪个表即可打开并浏览。

2.在考生信息.dbf的表尾追加一条记录,内容为:

1006 王晓军 男 t 1994.4.9 操作方法:

选择“文件”菜单中的“打开”命令,或在命令窗口中输入命令“use 考生信息”,打开考生信息.dbf,再选择“显示”菜单的“浏览”命令,进入记录浏览窗口,此时只能浏览和修改已有数据,无法向表输入新记录。若需要输入新记录,需要选择“显示”菜单的“追加方式”,或选择“表”菜单的“追加新纪录”或在命令窗口中输入“append”命令,便可在表尾增加记录。

3.显示考生信息.dbf中所有年龄大于19岁的男生的考号,姓名,性别,出生日期。 操作方法:可在命令窗口中输入以下两条命令中的任何一条,其中browse是在浏览窗口中显示记录,而list是在系统主窗口中显示记录。

browse fields考号,姓名,性别,出生日期 for 性别=\男\出生日期)>19 list 考号,姓名,性别,出生日期 for 性别=\男\出生日期)>19

4.在考生成绩.dbf的最后一列增加“综合分”字段,并计算出每个学生的综合分,综合分的计算办法:文化课成绩占30%,专业课成绩占70%。 操作方法:

①打开考生成绩.dbf,单击“显示”菜单下的“表设计器”,增加综合分n(3)字段。 ②在命令窗口中输入replace all 综合分 with 文化课成绩*0.3+专业课成绩*0.7 ③在命令窗口中输入list或browse显示浏览效果。 5.将考生信息.dbf中所有男团员的考号、姓名和性别复制到ty.dbf中,再用append from 命令将考生信息.dbf中的所有女团员的考号、姓名和性别追加到ty.dbf的末尾并显示记录。 操作方法:在命令窗口中输入以下命令 use 考生信息

copy to ty for 性别=\男\团员 fields 学号,姓名,性别 use ty

browse &&团员表中只有男团员的记录

append from 考生信息 for 性别=\女\团员 fields 学号,姓名,性别 list &&团员表中包括男、女团员的记录 6.将ty.dbf中的前四条记录加上删除标记(逻辑删除),再将记录号为偶数的记录恢复,最后将其他逻辑删除的记录彻底删除。 操作方法:在命令窗口中输入以下命令 use ty

go top &&此命令可以不要,刚打开的表,记录指针指向第一个记录 delete next 4 &&删除前四条记录 list

recall for recno()%2=0 &&恢复记录号为偶数的记录 list

pack &&彻底删除其他两条未恢复的记录 list

7.对考生成绩.dbf按专业课成绩升序排序,并将排序结果保存到专业排名.dbf中,该表包含考号、专业代码和专业课成绩字段。 操作方法:在命令窗口中输入以下命令 use 考生成绩

sort on 专业课成绩 to 专业排名 fields 考号,专业代码,专业课成绩 use 专业排名

list

8.对考生成绩.dbf建立结构复合索引文件,包括以下五个索引: 考号(候选索引,升序,索引名kh)

专业代号(唯一索引,升序,索引名zydh) 综合分(普通索引,降序,索引名zhf),

按专业代号升序,专业代号相同按考号升序排列,索引名zykh 按专业代号升序,专业代号相同按综合分降序排列,索引名zycj

操作方法:建立结构复合索引文件可以通过表设计器来建立,也可以通过命令建立。 (1)通过表设计器建立的方法:

① 打开学生成绩.dbf,选择菜单“显示|表设计器|索引”,如图3-26所示。 ② 单击“索引名”,输入kh,在“索引类型”列表中选择“候选索引”,在“表达式”中输入“考号”,即设置好名为kh的候选索引。 ① 按此方法依次设置好其他索引,需要注意zhf索引是降序,需要选择索引顺序为。 zykh索引的“表达式”为“专业代号+kh”,zycj索引的“表达式”为“zydh+str(1000-综合分)”。

(2)通过命令创建索引,可在命令窗口中输入以下命令 use 考生成绩

index on 考号 tag kh candidate &&建立kh候选索引,刚用命令创建过的索引即为主控索引, browse &&记录按考号升序排列,并不允许有相同考号输入 index on 专业代号 tag zydh unique &&建立zydh唯一索引

browse &&记录按专业代号升序排列,相同专业代号的记录只显示一个 index on 综合分 tag zhf descenting &&建立zhf普通索引 browse &&记录按综合分降序排列

index on 专业代号+kh tag zykh &&建立zykh普通索引

browse &&按专业代号升序,专业代号相同按考号升序排列 index on zydh+str(1000-综合分) tag zycj &&建立zycj普通索引

browse &&按专业代号升序,专业代号相同按综合分降序排列

说明: ① 通过表设计器中的“字段”选项卡也可以创建索引,但是只能创建基于一个字段的普通索引,并且索引名和字段名相同。 ② 通过表设计器创建的索引必须专门再指定哪个为主控索引,才能起到对表记录排序的作用。

操作结果,生成学生成绩.dbf的结构复合索引文件:学生成绩.cdx,此文件包含以上五个索引。

9.分别指定学生成绩.dbf中的五个索引为主控索引,观察记录的浏览效果。

(1)选择“表|属性”菜单命令,或选择“窗口|数据工作期|属性”打开“工作区属性”对话框,在“索引顺序”列表框中选择一个索引,则该索引即为主控索引。然后选择“显示|浏览”菜单命令,即可观察到记录按索引控制的逻辑顺序排列。

(2)也可以通过在命令窗口中输入set order to命令来选择当前主控索引,例如 set order to kh &&设置kh索引为主控索引 list

按此方法依次设置其他四个索引为当前主控索引,并浏览记录。

说明:如果只输入set order to 表明取消当前索引,此时浏览表记录,按记录号顺序(记录的输入顺序)排列。

10.在考生信息.dbf中,分别用locate(条件定位)、seek和find(索引查询)命令,实现逐条查询出姓王的学生。

(1)用locate/continue命令实现,参考命令序列如下 use 考生信息

loca te for left(姓名,2)= \王\ &&找到第1个满足条件的记录 disp &&显示找到的记录

cont &&继续查找满足条件的第2个记录 disp &&显示找到的记录

cont &&继续查找满足条件的第3个记录

?? &&重复执行disp、cont命令,直到状态栏显示“已到定位范围末尾”

(2)用seek命令实现,参考命令序列如下 use 考生信息

index on 姓名 tag xm &&建立xm升序普通索引,该索引自动为主控索引 set exact off &&设置非精确比较

seek \王\ &&或find 王 disp &&显示找到的第1个记录

skip &&继续查找连续第2个满足条件的记录 disp &&显示找到的第2个记录

skip &&继续查找连续第3个满足条件的记录

?? &&重复执行disp、skip命令,直到显示的记录的姓不为“王” 11.用统计命令统计出文化课总分、专业课总分、综合分总分,文化课平均分、专业课平均分、综合分平均分,然后在考生成绩.dbf末尾添加两个空记录,用replace命令将统计结果填入到追加的两个空记录里。效果如下图所示:

参考命令序列如下

sum 文化课成绩,专业课成绩,综合分 to zf1,zf2,zf3 average 文化课成绩,专业课成绩,综合分 to pj1,pj2,pj3 append blank &&添加一条空记录 append blank &&添加一条空记录

go bottom &&记录指针定位到最后一条记录

replace 考号 with \平均分\文化课成绩 with pj1,专业课成绩 with pj2,综合分 with pj3 skip -1 &&记录指针定位到倒数第二条记录

replace 考号 with \总分\文化课成绩 with zf1,专业课成绩 with zf2,综合分 with zf3 browse

或者也可以插入一条空记录后就用replace添加总分内容,然后再添加一条来放平均分。 参考命令序列如下

sum 文化课成绩,专业课成绩,综合分 to zf1,zf2,zf3