2数据库实验.docx
- 文档编号:5238986
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:23
- 大小:401.17KB
2数据库实验.docx
《2数据库实验.docx》由会员分享,可在线阅读,更多相关《2数据库实验.docx(23页珍藏版)》请在冰豆网上搜索。
2数据库实验
实验一 表的创建
1.1实验目的:
(1)熟悉VFP的开发环境
(2)掌握主窗口、菜单、工具栏和命令窗口的使用方法
(3)掌握用各种方式建立表结构,输入记录、追加记录、浏览记录
1.2实验内容:
1、启动VFP
开始\程序\MicrosoftVisualFoxPro
2、熟悉环境
练习命令窗口的关闭与打开(窗口\命令窗口),工具栏的打开与关闭。
3、创建表结构,并输入记录(在E盘上新建文件夹CJGL,文件保存在此)
(1)用菜单创建,文件\新建\表\新建文件,学生信息表(文件名为XS,如图5.1)
学生信息表:
学号(C)姓名(C)性别(C)出生时间(D)专业(C)总学分(N)
备注(M)照片(G)
练习在表设计器中练习插入字段,删除字段。
在表中输入5条记录,注意备注字段和通用字段内容的输入方式,观察输入请与输入后有什么不同?
图5.1
用鼠标双击XS表备注字段,打开备注字段的编辑窗口,在该窗口中输入备注内容。
用鼠标双击照片字段,打开通用字段的编辑窗口,插入图像有以下两种方法:
●击通用字段,选择“编辑”菜单中的“插入对象”菜单项,打开“插入对象”对话框,选择对象类型为“BMP图像”,单击“确定”按钮,即可在通用字段编辑窗口中编辑图片。
●先把要插入的图像在WINDOWS的画图程序中复制到剪贴板上,在VFP双击照片字段,然后选择“编辑”菜单中的“粘贴”菜单项。
(2)用CREATE命令创建课程信息表(文件名为KC,如图5.2)并输入5条记录
课程信息表:
课程号(C)课程名(C)类别(C)开课学期(N)学时(N)学分(N)
图5.2
(3)创建成绩信息表:
(文件名为XSKC,如图5.3)并输入5条记录
成绩信息表学号(C)课程号(C)成绩(N)学分(N)
学号
课程号
成绩
学分
学号
课程号
成绩
学分
01040101
0101
86
3
01040104
0104
74
4
01040101
0102
67
4
01040104
0105
81
5
01040101
0103
90
5
01040104
0106
90
5
01040101
0104
80
4
01040105
0101
85
3
01040101
0105
72
5
01040105
0102
88
4
01040102
0102
56
0
01040106
0103
48
0
01040102
0103
78
5
01040106
0104
66
4
01040102
0104
86
4
01040106
0105
72
5
01040102
0105
66
5
02040101
0201
80
3
01040103
0101
67
3
02040101
0202
78
4
01040103
0102
76
4
02040101
0203
93
5
01040103
0104
84
4
02040201
0201
57
0
01040103
0105
89
5
02040201
0202
84
4
01040104
0101
50
0
02040201
0203
90
5
01040104
0102
78
4
02040108
0107
99
2
01040104
0103
99
2
01040101
0108
99
2
图5.3
*注意:
以上三表最好按图中信息输入,保存在E:
\CJGL中以备后用。
用APPEND命令或“显示”菜单下的“追加方式”命令分别给以上三个表追加5条记录。
用BROWSE命令浏览表的内容,用“显示”菜单下的“浏览”命令和“编辑”命令浏览,并观察二者的区别。
实验二 表的基本操作
2.1实验目的
(1)掌握修改表结构的方法
(2)掌握记录的修改、删除、定位、排序等操作
(3)掌握表的计算功能
2.2实验内容
setdefaulttoe:
\cjgl&&在命令窗口中设置,默认路径为E:
\CJGL
usexs.dbf &&打开已经建好的学生信息表
1、用菜单的方式修改表的结构,单击查看菜单中的表设计器命令,在表设计器中为学生信息表中增加新字段,民族,字符型,宽度为6。
用liststructure和displaystructure命令查看修改后的表结构。
2、用命令的方式修改表的结构,在命令窗口中输入modifystructure命令,在表设计器中为学生信息表中增加新字段,政治面貌,字符型,宽度为4。
●用自己熟悉的方式,在学生信息表中增加联系方式字段,之后再把这个字段删除。
练习在表设计器中调整字段的排列顺序。
3、用菜单的方式浏览表,单击查看菜单中的浏览命令,显示表(如图5.1):
查看之后用ctrl+w或直接单击关闭按钮,将表关掉。
用命令方式,在命令窗口中输入browse命令也可将该表显示出来,此时可以看到菜单栏中多了“表”菜单,用其中的命令可以实现对记录的追加、修改、替换、定位、删除等操作。
4、命令:
browse field学号,姓名,专业 for性别=”女”&&用表格浏览所有女生的学号,姓名和专业
●练习用表格浏览所有计算机科学与技术专业学生的姓名,性别和出生时间。
5、命令:
list/displayall&&显示所有学生的基本信息(只在屏幕显示)
listfor专业=”计算机科学与技术”&&显示所有计算机科学与技术的学生
●练习显示所有男生的基本信息。
●练习显示1985年以后出生的学生名单。
6、替换字段:
browse&&显示现有的所有记录
appendblank &&追加一条空记录
list&&显示记录,表的末尾有条空记录
gobottom&&将记录指针指向最后一条记录
replace学号with“01040107”,姓名with“吴有祥”
list&&最后空记录已添加内容
用菜单方式,单击表―>追加新记录,直接输入数据。
7、备注型字段中追加内容:
replaceall备注with"体育班长"for姓名="刘中" &&命令方式
用菜单方式,单击表->替换字段…,打开如下图6.1对话框:
单击替换就可以了,注意运算符和字符定界符在英文状态下。
图图6.1
8、转到记录:
usexs.dbf&&在工作区中打开学生信息表
?
recno()&&显示当前记录号的函数,当前记录号为1
skip
?
recno()&&当前记录号为2
gobottom
?
recno()&&当前记录号为10
skip
?
eof()&&显示.T.,因为记录指针指向表的最后一条记录的下一个
go5
?
recno()&&当前记录号为5
用菜单方式,单击表->转到记录->第一个,最后一个,上一个,下一个,记录号等,同时当前记录号在状态栏中显示出来。
9、定位记录:
usexs.dbf
locatefor专业=”电子信息工程”
display&&显示记录号为7的记录
continue
display &&显示记录号为8的记录
continue &&状态栏提示已到定位范围末尾
display &&因为没找到,所以无显示。
用菜单方式,单击表->转到记录->定位…打开如下图6.2对话框:
图6.2
单击定位会定位在找到的第一个记录上,没有continue的功能。
10、删除记录:
usexs.dbf
setdeleteoff&&设置删除标记的记录显示
deletefor学号=”01040107”&&给该记录加上删除标记
list&&刚删除的记录旁边有*删除标记
browse&&表格中刚删除的记录旁边有黑块删除标记
setdeleteon&&设置删除标记的记录不显示
list&&只显示没有删除标记的记录(browse也一样)
?
recount()&&显示表中记录的总个数11
recallfor学号=”01040107”&&取消对该记录的删除或说取消删除标记
list&&显示全部记录
deletefor学号=”01040107”
pack&&对加了删除标记的记录彻底删除
?
recount()&&显示表中记录的总个数10
用菜单方式,单击表->删除记录…可打开如下图6.3对话框:
图6.3
单击删除就会为该记录加上删除标记。
再单击表->彻底删除就可以将该记录从表中彻底删除。
11、表的连接:
select1
usexs&&在工作区1中打开xs表
select2
usexskc &&在工作区2中打开表xskc
joinwithxsto成绩fields学号,xs.姓名,课程号,成绩,学分for学号=xs.学号&&为学生成绩表中加入姓名字段,保存在成绩表中
select3
use成绩&&用browse命令显示在学生成绩库中加入了姓名字段
12、表的计算(利用学生成绩表):
usexs
countton&&把表中记录的个数赋值给内存变量n
?
”学生数=”,n
usexskc.dbf
sum成绩for学号=”01040101”tozf&&统计01040101号学生的总分
?
”01040101号学生的总分是”,zf
average成绩 for课程号=”0101”tojf&&统计0101号课程的均分
?
”0101号课程的均分是”,jf
calculateavg(成绩),min(成绩),max(成绩),std(成绩)for课程号=”0101” &&统计计算0101号课程的均分,最低分,最高分和标准偏差。
实验三 内存变量和常用函数
3.1实验目的
掌握内存变量和常用函数的使用
3.2实验内容
1.内存变量的使用
在命令窗口中输入下列命令,观察主窗口中显示的信息,写出显示的内容。
R=10
S=3.14159*r*r
Store“面积”tos1,s2
?
r,s,s1,s2&&主窗口中显示
ndate={^2005-6-30}+1
姓名_1=”金中华”
姓名_2=”赵红”
姓名_3=”鞠春松”
displaymemory&&显示所有内存变量
savetomymem
?
file(“mymem.mem”)&&显示为
releaseallexcept姓名*&&清除除了以“姓名”开头的其他内存变量
displaymemory&&显示所有内存变量
姓名_3=”林时”
?
姓名_3 &&显示为
restorefrommymem&&将内存变量从保存的文件中恢复了
displaymemory&&显示所有内存变量
姓名=”林时”
?
姓名 &&显示内存变量为
usexs.dbf
?
姓名&&显示字段变量为
?
M->姓名 &&显示内存变量为
2.常用函数的使用
在命令窗口中输入下列命令,观察主窗口中显示的信息,写出显示的内容。
Xh=”01040102”
Xm=”赵 红”
?
len(xh),len(xm)&&显示为
?
left(xm,2)&&显示为
?
right(xm,2) &&显示为
?
substr(“01040102”,3,2)&&显示为
专业=”计算机”
zxf=40
?
xm+left(xh,2)+”院”+str(zxf)+”分”&&显示为
?
”红”$xm&&显示为
?
empty(“”)&&显示为
temp=xh+xm-trim(专业)
?
at(“计算机”,temp,1)&&显示为
?
int(680.34)&&显示为
?
sqrt(9)&&显示为
?
max(2,4.5,-100)&&显示为
?
mod(26,10),mod(23,-5)&&显示为
setdecimalsto4&&设置小数位数为4位
?
round(1536.2854,2)&&显示为
n=int(val(xh)/100)
?
n&&显示为
?
chr(65)+str(n)&&显示为
?
asc(“12345”)&&显示为
?
date(),time()&&显示为
setdatetoymd
setmarkto“.”
Setcenton
?
date(),time()&&显示为
?
datetime()&&显示为
d=date()
t=datetmie()
?
d+1,t+1&&显示为
?
year(d),month(d),day(d),dow(d)&&显示为
t={^2005-6-3010:
30a}
?
dtoc(t),ttoc(t)&&显示为
出生时间={^1985.12.8}
?
date()-出生时间+1&&显示为
?
left(xh,2)!
=”02”&&显示为
?
zxf>=36&&显示为
?
(date()-出生时间+1)<30&&显示为
婚否=.T.
?
.not.婚否&&显示为
cvar=”fox”
?
”Visual&cvar.Pro6.0”&&显示为
实验四:
数据库和数据库表的创建
4.1实验目的
(1)掌握数据库和数据库表的创建。
(2)掌握查询设计器创建查询和应用。
4.2实验内容
1、创建名为xscj的人员信息数据库(两种方法,二者选一即可)
SETDEFAULTTOE:
/CJGL&&用命令创建数据库
CREATEDATABASExscj&&可生成数据库名为xscj的数据库
CLOSEDATABASE
交互建立数据库,
选择“文件”“新建”“数据库”“新建文件”,系统显示“创建”对话框,在此对话框中选择路径为“E:
\cjgl”,数据库名为“xscj”,单击“保存”按钮。
数据库建立后形成三个文件,它们是基本文件xscj.DBC、相关的数据库备份文件xscj.DCT、相关的索引文件xscj.DCX。
2、将4个自由表加入数据库中(两种方法,二者选一即可)
SETDEFAULTTOE:
/cjgl &&使用命令添加数据库表
OPENDATABASExscj
MODIFYDATABASE&&数据库设计器-xscj
ADDTABLExs
ADDTABLEkc
ADDTABLExskc
ADDTABLE成绩
CLOSEDATABASE
交互添加数据库表,打开xscj数据库,选择“数据库”“添加表”,在“打开”对话框中选择需要加入的表后点击“确定”按钮。
3、数据库表的字段特征属性
⑴xscj数据库各表字段的属性设置要求
①xs表(选中表,单击显示―>表设计器或单击鼠标右键选择“修改”菜单项,打开表设计器如下设置)
●学号不能为空、只能是数字组合;
●出生时间年龄在16~24之间;
●专业不能为空。
②kc表
●课程号不能为空、只能是数字组合;
●课程名不能为空;
●学时1~150之间,默认值为0;
●学分1~8之间,默认值为0。
③xskc表
●学号不能为空、只能是数字组合;
●课程号不能为空、只能是数字组合;
●成绩0~100之间,默认值为0。
(如图8.1)
图8.1成绩(xskc)数据表字段属性
成绩中将学号和课程号均设置索引
⑵验证xscj数据库各表字段的属性
SETDEFAULTTOE:
\cjgl
OPENDATABASExscj
USExs
APPENDBLANK &&本命令执行出错,学号和专业字段不能为空,设默认值则可执行
GO2
EDIT&&出生时间改为2000.02.01系统出错,它不符合年龄范围
USE
●kc表和xskc表自己打开,设置不符合字段条件的情况,观察出错信息。
4、数据库表的记录属性
⑴xscj数据库各表记录的属性设置要求
①xs表
●学号前两位的代号与专业字段一一对应。
②kc表
●有课程号才有学时;
●有学时才有学分。
③xskc表(成绩表的设置一样)
●有学号和课程号才有成绩;
●有成绩才有学分;
●学号必须在xs表中存在;
●课程号必须在kc表中存在;
●表的逻辑名为成绩。
⑵设置xscj数据库各表记录的属性
SETDEFAULTTOE:
/cjgl
OPENDATABASExscj
USExs &&kc表、xskc表和成绩表的设置类似
MODISTRU
CLOSEDATABASE
5、使用查询设计器生成查询
图8.2查询结果
按照以下步骤操作,得到如图8.2所示查询结果。
(1)打开查询设计器:
文件新建查询
(2)数据环境中,单击鼠标右健选择“添加表”,系统打开“添加表或视图”对话框。
选择数据库的xs、kc和成绩表后,数据环境如图8.3所示。
这3个表之间的永久关系被带入数据环境中,表之间有连线显示。
(3)在查询设计器中,选择“字段”选项卡,在“可用字段”框中选择所需的数据库表的字段。
如图8.4所示。
(4)设置查询联接条件,两表之间的联接条件也可以通过查询设计器的“联接”选项卡来设置和修改,如图8.5所示。
(5)设置查询筛选条件,指定选取记录的条件可以使用查询设计器的“筛选”选项卡,如图8.6所示。
图8.3查询数据环境
图8.4选择查询输出字段
图8.5查询设计器的“连接”
图8.6查询设计器的“筛选”
(6)设置查询排序依据,使查询结果按“课程号”从小到大排序,课程号相同时再按成绩从大到小排。
如图8.7所示。
图8.7查询设计器的“排序依据”
(7)在查询设计器中还有一个“分组依据”选项卡,所谓分组就是将一组类似的记录汇总成一个结果记录,以便完成对这一组记录的计算。
(8)杂项,在“查询设计器”的“杂项”选项卡中,可以设置一些特殊的查询条件,在将“无重复记录”复选框选中。
(9)选择查询结果的输出去向,在“查询设计器”单击“查询去向”按钮,打开“查询去向”对话框,系统默认值为查询结果显示在浏览窗口中。
(10)生成SQL语句,可以通过选择“查询”菜单(或者快捷菜单)中的“查看SQL”项或单击查询设计器的工具栏上的“SQL”按钮,即可看到所生成的SELECT--SQL语句。
(11)生成查询文件,查询创建完成后,单击常用工具栏上的“保存”按钮或“文件”菜单中的“保存”命令,输入文件名(例如xskc1),系统自动为该文件加上扩展名“.QPR”,即生成了查询文件xskc1.QPR。
该文件中保存的就是SQL语句。
(12)运行查询
●单击“查询”主菜单选择“运行查询”菜单项;
●单击鼠标右健在快捷菜单中选择“运行查询”菜单项;
●在命令窗口运行查询:
DOxskc1.QPR &&查询结果如图8.2所示。
实验五 程序设计
5.1实验目的:
掌握顺序、分支、循环程序的设计过程和方法
5.2实验内容:
1、顺序程序的设计:
(1).编写一程序,计算并显示圆的周长(L)和面积(S),其中半径(R)由INPUT语句读入。
(2).编写一程序,首先由用户输入一个专业,如:
“计算机科学与技术”,“工商管理”等,然后显示学生信息表中所有该专业的学生记录。
SETTALKOFF
USE学生信息表
ACCEPT‘专业:
’TOZW
LISTFOR专业=ZW
RETURN
2、分支程序的设计:
(1).编写一程序,输入一个英文字母,若为大写,则显示它的小写字母,若为小写则显示它的大写字母。
settalkoff
accept'输入一个字符:
'toch
ifupper(ch)=ch
?
lower(ch)
else
?
upper(ch)
endif
return
(2).编写程序,计算分段函数:
的值。
(X,Y的值从键盘输入)
(3).编写一程序,输入某人的收入额,计算其个人所得税。
个人所得税的计算方法为:
不超过500元的税率为5%,500元到2000元部分的税率为10%,超过2000元部分的税率为15%。
settalkoff
input'x='tox
ifx<=500
t=x*0.05
else
ifx<=2000
t=500*0.05+(x-500)*0.1
else
t=500*0.05+1500*0.1+(x-2000)*0.15
endif
endif
?
'税金为:
',str(t,6,2)
return
(4).用DOCASE语句编写第2、3题的程序,并重复上面的计算。
3、循环程序的设计:
(1).编写一程序,计算S=1/2+1/2^2+1/2^3+…+1/2^N,其中N由用户输入。
(保留小数点后5位)
利用程序分别计算N=5,10和20时,S的值。
settalkoff
s=0.00000
i=1
input'n='ton
dowhilei<=n
s=s+1/2^i
i=i+1
enddo
?
's=',s
return
(2).编写一个二重循环程序,显示如下的乘法口诀表。
settalkoff
i=1
dowhilei<=9
j=1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验