计算机表的建立和修改DOC.docx
- 文档编号:23379457
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:23
- 大小:174.37KB
计算机表的建立和修改DOC.docx
《计算机表的建立和修改DOC.docx》由会员分享,可在线阅读,更多相关《计算机表的建立和修改DOC.docx(23页珍藏版)》请在冰豆网上搜索。
计算机表的建立和修改DOC
实验一表的建立和修改
实验目的:
1.熟练掌握表的建立方法
2.掌握表结构的查看和修改的方法
3.掌握数据的查看和修改的手段
4.掌握记录的删除与恢复的操作过程
二、实验内容和步骤
1.表的建立
1.1表结构的建立
1.1.1表结构的设计
设计建立以下二维表的表结构:
写出各个字段的类型和所占的宽度:
字段名
数据类型
宽度
学号
字符型
7
姓名
字符型
8
性别
字符型
2
出生日期
日期型
8
团员
逻辑型
1
总分
数值型
5
个人简历
备注型
4
照片
通用型
4
1.1.2表结构的生成
在设计的基础上,通过Create命令生成名为“Student.dbf”的表文件。
操作方法:
在E盘上创建以自己的学号+姓名命名的文件夹(如:
姓名叫张三,学号为06031111的同学的文件夹,应命名为“06031111张三”)。
选择菜单“工具”—>“选项”,在对话框中选择“文件位置”选项卡,在默认目录一项修改为:
e:
\06031111张三。
如下图所示:
在所建的目录中建立名为“Student.dbf”的表文件。
(注意保存)
写出建表的命令:
create
1.2数据记录的录入
1.2.1直接录入记录
在上述操作中,在定义完表结构按下CTRL+W键或“确定”按钮是,系统会弹出一个对话框,询问现在是否进行数据输入。
如果选“是”,则表示要马上输入数据,屏幕上出现数据录入窗口(如右图所示),并等待用户输入数据内容。
请完成以下内容的输入,并保存数据。
在王晓丽的个人简历中输入“曾获得市级三好学生”;在赵东的照片项中输入一张图片(内容自定)。
1.2.2追加记录
在已建好的“Student.dbf”的基础上追加以下记录内容,并保存:
写出你追加记录使用的命令:
append
1.2.3表的打开和关闭
写出打开和关闭Student.dbf的命令:
Usestudent
use
2.表结构的查看和修改
2.1表结构的显示
①写出显示Student.dbf表结构的命令:
Liststructure
2.2表结构的修改
把Student.dbf表中的总分字段改为考试总分,结果如下图所示:
写出使用的命令:
Modifystructure
操作完成后,再把“考试分数”字段恢复为“总分”字段。
3.数据的查看和修改
3.1记录的定位
3.1.1记录的绝对定位
打开Student.dbf,使指针绝对定位到第五条记录“郭龙”上,并显示该记录。
操作命令为:
Go5
3.1.2记录的相对定位
执行下列命令
Usestudent
Go3
?
Recno()
Skip3
?
Recno()
写出在主窗口中的显示结果:
3
6
3.2记录的显示
3.2.1数据显示
当表中有记录时,可以利用相应的命令来显示全部或部分记录的数据,这种功能可以通过list和display命令完成。
要在屏幕上显示以下的记录:
①所用的命令应为:
Go4
Displaynext2
②要查看当前记录的记录号的命令为:
?
Recno()
③要查看女同学的学号、姓名、性别的语句为:
Listfor性别=”女”fields学号,姓名,性别
3.2.2预设过滤器与字段表
(1)预设过滤器
格式:
Setfilterto[<条件>]
功能:
按指定条件过滤表中的记录,是随后的操作命令只对其中满足条件的记录进行,好象当前表中只包含了满足条件的记录。
请为Student.dbf设置过滤器:
条件为总分大于300.0分
命令语句为:
Setfilterto总分>300.0
(2)预设字段表
格式:
Setfieldsto[<字段名表>]
功能:
按指定的字段名来过滤表中的记录字段,是随后的操作只对指定的字段进行,好象当前表中只有指定的字段。
要在屏幕上显示以下结果:
所用的命令为:
Listfields学号,姓名,总分
3.3记录的插入
在Student.dbf表中,完成以下操作:
①在2号记录后插入一条空记录。
所用的命令为:
Go2
Insertblank
②在第6号记录之前插入一条空记录。
所用的命令为:
Go6
Insertbeforeblank
3.4记录的修改
3.4.1Browse命令
格式:
Browse[fields<字段名表>][noappend][nomodify]
功能:
浏览编辑当前表中的所有记录,可以进行内容修改、逻辑删除记录、恢复记录及追加新记录等。
操作要求:
浏览编辑Student.dbf。
①把王晓丽的出生日期改为1980-05-23。
②把陈勇的分数改为306.0分。
最终结果如下图所示。
3.4.2调整字段的先后次序
把团员字段调整到性别和出生日期中间,如下图所示:
3.4.3调整显示的模式
分别使用Browse命令和Change命令对显示模式进行切换,并体会两者在显示和修改数据是的区别。
Browse窗口为:
Change窗口为:
3.4.4分割窗口
将Browse窗口调整为如下图所示的模式,可以在不同的子窗口中完成不同的模式显示。
3.4.5Replace命令
功能:
对当前表中指定范围内符合条件的所有记录进行修改,用另外的表达式替换原表中字段的表达式。
对Student.dbf完成以下操作:
①打开Student.dbf表.
②用Replace命令给所有的团员在总分上加5分。
使用的命令是:
Usestudent
list
replace总分with总分+5.0for团员=.T.
③给所有的1980年7月1日之后出生的女同学再加10分。
使用的命令是:
Replace总分with总分+10for性别=”女”and出生日期>{^1980/07/01}
3.5记录的删除与恢复
3.5.1逻辑删除命令Delete
功能:
逻辑删除指定范围内所有满足条件的记录。
如下所示,对Student.dbf完成以下操作:
①逻辑删除所有的男同学。
使用的命令是:
Deletefor性别=”男”
②执行list命令,查看逻辑删除的结果。
3.5.2恢复逻辑删除记录命令Recall
功能:
恢复指定范围内所有符合条件且被逻辑删除的记录为正常记录。
对Student.dbf完成以下操作:
①恢复被逻辑删除的男同学记录。
使用的命令是:
Recallfor性别=”男”
②执行list命令,查看恢复逻辑删除的结果。
3.5.3物理删除记录命令Pack
功能:
真正删除当前表中所有已被逻辑删除的记录。
对Student.dbf完成以下操作:
物理删除姓名为“陈勇”的同学。
写出操作过程中使用的命令:
Go7
delete
pack
3.5.4删除所有记录命令Zap
功能:
真正删除当前打开表中的所有记录。
对Student.dbf完成以下操作:
①删除表中所有记录。
使用的命令是:
zap
②查看表中记录情况。
三、实验作业
1.怎样用菜单完成修改表结构修改的工作?
选择“显示”菜单中的“表设计器”窗口,在此窗口进行修改即可。
2.绝对定位和相对定位有什么区别?
绝对定位是将记录指针指向表文件中的某个记录,相对定位是将记录指针相对当前记录向前或后移动若干个记录。
绝对定位的格式是go/gototop/bottom[<数值表达式>],相对定位的格式是skip[<数值表达式>]
前者的数值表达式中的值大于零,后者的数值表达式的值可正可负可为零
3.请分析显示命令list和display的异同。
选用list以滚屏方式显示,选用display一分屏方使显示
当单独使用display显示当前记录,记录指针指向不变,但list显示的是所有记录。
4.预设过滤器后和预设字段表在操作完成后,怎样取消?
若省略”setfilterto”后的条件,则可取消已设置的过滤条件。
当设置Setfieldsoff状态时,已设置的字段名表无效。
5.Browse命令和Change命令分别对应与菜单中的哪一选项?
Browse命令对应菜单中的“显示”中的“浏览”
Change命令对应菜单中的“显示”中的“编辑”
6.对于逻辑删除命令Delete,如果进行如下操作:
Usestudent
Dele
其结果是什么?
为什么?
逻辑删除表中当前记录
只有delete,没有范围条件,默认为当前记录。
实验二表的使用和维护
1.表的排序
1.1打开教材上的student表,按性别升序排序,生成的排序文件名为stud1,然后查看排序结果。
写出使用的命令:
Usestudent
List
Sorttostud1on性别/a
Usestud1
List
1.2打开student表,按出生日期降序排序,生成的排序文件名为stud2,然后查看排序结果。
写出使用的命令:
Usestudent
List
Sorttostud2on出生日期/d
Usestud2
List
1.3打开student表然后按性别升序、性别相同再按总分降序排序,生成的排序文件名为stud3,然后查看排序结果。
步骤:
写出使用的命令:
Usestudent
List
Sorttostud3性别on/a,出生日期/d
Usestud3
List
2.表的索引
2.1索引的创建
2.1.1打开表student,按总分建立简单索引文件studidx,查看索引结果并关闭student。
写出使用的命令:
Usestudent
List
Indexon总分toscoridx
List
Use
2.1.2打开表student,分别按性别、出生日期和总分建立复合索引文件studcdx,标记名分别为se、date和score,然后关闭表。
写出使用的命令:
Usestudent
Indexon性别tagseofstucdx
List
Indexon出生日期tagdateofstucdx
List
Indexon总分tagscoreofstucdx
List
Use
2.2索引的使用
2.2.1索引的打开
先打开表student,再打开简单索引文件studidx及复合索引文件studcdx。
写出使用的命令:
Usestudent
Setindexto
2.2.2改变主索引
2.2.2.1将studidx设成主控索引,然后显示索引结果。
写出使用的命令:
Setordertostudidx
Setorderto1
2.2.2.2分别将复合索引标记se、date和score设成主控索引,并分别显示索引结果。
写出使用的命令:
Setordertotagseofstudcdx
Setorderto1
Setordertotagdateofstudcdx
Setorderto1
Setordertotagscoreofstudcdx
Setorderto1
2.2.3更新索引
用reindex命令对打开的索引文件进行更新。
写出使用的命令:
Reindex
2.2.4关闭索引
关闭打开的索引文件studcdx和studidx。
写出使用的命令:
Setindextostudcdx
Setindedxtostudidx
2.2.5删除索引
打开复合索引文件studcdx,然后删除其中所有索引标记。
写出使用的命令:
Setindextostudcdx
Deletetagall
3.查询和统计
3.1顺序查询
打开表student,顺序查询表中女同学的记录并显示,用found()函数测试查询情况,然后用continue命令继续往后查询直到文件结束。
写出使用的命令:
Usestudent
Locatefor性别=“女”
?
Found()
List
Continue
?
Found()
3.2索引查询
3.2.1find命令的使用
打开索引文件studidx,然后查询姓名为“张明”的记录,找到则显示该记录,然后继续往后查询,找到则继续显示。
写出使用的命令:
Usestudent
Setindextostudidx
Indexon姓名tostudidx
Find张明
?
Found(),Eof()
Display
Continue
3.2.2seek命令的使用
打开索引文件studcdx并将标记date设为主控索引,然后查询出生日期为1980年3月23日的记录,找到则显示该记录。
继续查找,找到则继续显示。
写出使用的命令:
Usestudent
Setindextostudcdx
Setordertotagdateofstudcdx
Indexon出生日期todate
Seek{^1980-03-23}
?
Found()
Display
Continue
?
Found()
Display
……
3.3表的统计
3.3.1count命令的使用
统计表student中男同学的记录个数,并将统计结果送到变量A中,然后显示A的值。
写出使用的命令:
Usestudent
List
Countfor性别=“男”toA
?
”A=”,A
3.3.2average命令的使用
统计表student中女同学总分的平均值,并将统计结果送到变量P中,然后显示变量P的值。
写出使用的命令:
Usestudent
Averageall总分for性别=“女”toP
?
”P=”,P
3.3.3sum命令的使用
统计表student中所有同学总分的总和,并将结果送给变量S,然后显示变量S的值。
写出使用的命令:
Usestudent
Sumall总分toS
?
”S=”,S
3.3.4Total命令的使用
打开索引文件studcdx并将标记se设为主控索引,然后用Total命令对student按性别进行汇总,并显示汇总结果。
写出使用的命令:
Usestudent
Setindextostudcdx
Setordertotagseofstudcdx
Totaltostudenton性别
List
3.3.5Calculate命令的使用
用Calculate命令统计student表中所有同学的总分总和、总分最大值和总分最小值。
写出使用的命令:
Usestudent
Calculatesum(总分),max(总分),min(总分)all
4.表中的复制和转换
4.1表结构与数据的复制
4.1.1将表student的结构复制到表stubak1中,然后查看表stubak1的结构。
写出使用的命令:
Usestudent
Liststructure
Copystructuretostubak1
Usestubak1
List
4.1.2将表student的数据复制到表stubak2中,然后查看stubak2的数据。
写出使用的命令:
Usestudent
List
Copytostubak2
Usestubak2
List
4.2表和数组间数据的传送
4.2.1单个记录和数组间数据传送
4.2.1.1建立一维数组A(6),将表student的第一条记录送到数组A中,然后显示各数组元素的值。
写出使用的命令:
Usestudent
Display
DimensionA(6)
Scatterfields学号,姓名,性别,出生日期,团员,总分toA
?
A
(1),A
(2),A(3),A(4),A(5),A(6)
4.2.1.2修改元素A(4)的值,然后再把数组A的值送到第一条记录中,然后显示该记录的值。
写出使用的命令:
A(4)={^1979-04-23}
GatherfromA
Display
4.2.2一组记录和数组间数据的传送
4.2.2.1建立二维数组B(3,4),将表student中的前三条记录值送到数组B中,并显示各数组元素的值。
步骤:
写出使用的命令:
Usestudent
Display
DimensionB(3,4)
Copytoarray
Display
4.2.2.2将二维数组B中的数据追加到表student后,然后显示表中全部数据。
写出使用的命令:
Appendfromarray
List
4.3表和文本文件间的数据传送
4.3.1表和标准格式文本文件间数据传送
将表student中的数据传送到数据文件data1.txt(标准格式)中,并查看data1.txt的内容。
写出使用的命令:
Usestudent
Copytodatal.txtsdf
Usedatal.txt
List
4.3.2表和非标准格式文本文件间数据传送
将表student中的数据传送到数据文件data2.txt(非标准格式)中,并查看data2.txt的内容。
写出使用的命令:
Copytodata2.txtdelimited
Usedata2.txt
List
4.3.3文本文件向表中传送数据
分别将文本文件data1.txt(标准格式)和data2.txt(非标准格式)中的数据传送到表student中,写出使用的命令:
Usestudent
Appendfromdata1.txtsdf
Appendfromdata2.txtdelimited
三、实验作业
1.索引文件的功能是什么?
从逻辑上实现对数据库的重新组织
2.索引的类型有哪些?
普通索引
唯一索引
候选索引
主索引
3.使用索引查询实现查找姓名为张明同学的记录,命令如下:
Usestudent
Indexon性别tonameidx
Find姓名=”张明”
?
found()
指出其中的错误。
表结构的复制是将表的结构按指定的字段复制生成新的表结构
表数据的复制是将指定范围内满足条件的记录按指定的字段组成一个新表
4.表的结构复制和表的数据的复制的区别在哪里?
表结构的复制是将表的结构按指定的字段复制生成新的表结构
表数据的复制是将指定范围内满足条件的记录按指定的字段组成一个新表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 建立 修改 DOC