2012年计算机二级VFP上机题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2012年计算机二级VFP数据库及其操作习题及答案
Visual FoxPro数据库及其操作习题四
三、上机题
61.使用“表设计器”分别建立文件名为“学生”、“课程”的自由表并输入记录。请写出操作要点。
表结构如下:
学生( 学号C(8), 姓名C(6), 性别L, 出生日期D, 入学成绩I, 简历M, 照片G )
课程( 课程号C(4), 课程名C(12), 学分N(2,0), 学时数N(3,0) )
“学生”表记录如下:
“课程”表记录如下:
62.建立XSXK数据库,将“学生”和“课程”两个自由表加入其中使之成为数据库表,再在其中建立“选课”表,如图4.1所示。请写出操作要点。
“选课”表结构为:选课( 学号C(8), 课程号C(4), 成绩N(3,0) )
设置成绩字段的有效性规则:规则是:成绩大于等于0且小于等于100,默认值为60,出错信息为“成绩应在0~100之间”。记录如下。
63.使用数据过滤和筛选功能显示所有1982年3月15日以后出生的学生的学号、姓名、性别及入学成绩四个字段的内容,请写出操作要点。
Use 学生
Set filter to 出生日期>{^ 1982-03-15}
Brow fiel 学号,姓名,性别,入学成绩
64.给所有入学成绩在320以下的学生加删除标记,再恢复删除。可通过命令方式及浏览窗口进行操作,请写出操作要点。
Use 学生
Dele for入学成绩<320
recall for入学成绩<320
65.按照图4.1所示分别设置库中各表的相关索引,请写出操作要点。
66.建立XSXK数据库中各表之间的永久性关联,如图4.2所示,请写出操作要点。
67.在“学生”表的“浏览”窗口中按“入学成绩”的降序显示学生表中的所有信息,请写出操作要点。
68.设置“学生”表和“选课”表的“参照完整性”规则,要求更新“学生”表中的学号字段时,自动更新“选课”表中的所有相关记录的对应值;删除“学生”表中某一记录时,需要检索“选课”表中是否有与之相关的记录,若有则不能删除;向“选课”表中插入记录时,需要检索“学生”表中是否有与之相关的记录,若无则不能插入。类似地设置“课程”表和“选课”表的“参照完整性”规则。请写出操作要点。
2012年计算机二级VFP关系数据库标准语言SQL习题及答案
关系数据库标准语言SQL 习题五
三、上机题
以下各题均使用第四章上机题XSXK.DBC数据库中的数据表数据。其中学号字段的前两位代表入学年份(如01代表2001年),第3、4位代表专业代码。假设当年是2002年。
31.使用SQL SELECT语句完成下列数据查询操作,请写出操作要点。
⑴查询1981年以前(包括1981年)出生的男生人数。
sele count(*) from 学生where 出生日期<={^1981-12-31} and 性别=.T.
⑵查询与“周航宇”在同一个专业学习的学生信息。
sele * from 学生where subs(学号,3,2)=(sele subs(学号,3,2) from 学生where 姓名="周航宇")
⑶查询“计算机基础”课的最高分、最低分和平均分。
sele max(成绩) as "计算机基础课的最高分",min(成绩) as "计算机基础课的最低分",avg(成绩) as "计算机基础课的平均分" from 选课where 课程号=;
(sele 课程号from 课程where 课程名="计算机基础")
⑷查询各门课程的最高分、最低分和平均分,查询结果包括课程名、最高分、最低分和平均分4个字段,查询结果存入临时表“课程成绩统计”中。
sele 课程名,max(成绩) as 最高分,min(成绩) as 最低分,avg(成绩) as 平均分;
from 课程a,选课b where a.课程号=b.课程号group by 课程名into cursor 课程成绩统计
⑸统计选修两门课以上(包括两门课)的学生的平均成绩,查询结果包括姓名和平均成绩字段。
SELECT 姓名, avg(成绩) as 平均成绩from 学生a,选课b where a.学号=b.学号group by b.学号having count(*)>=2
⑹统计每个学生所选修的总学分,查询结果包括姓名、总学分字段,并按总学分降序存入“总学分”数组中。
sele 姓名,sum(学分) as 总学分from 学生a,选课b,课程c where a.学号=b.学号and b.课程号=c.课程号group by 姓名order by 总学分desc into array总学分
⑺查询各门课程成绩均在80分以上(包括80分)的学生的学号、姓名、性别(性别显示男或女)。
sele a.学号,姓名,iif(性别=.T.,'男','女') AS 性别from 学生a,选课b where a.学号=b.学号having
min(成绩)>=80 group by a.学号
sele a.学号,姓名,性别from 学生a,选课b where a.学号=b.学号having min(成绩)>=80 group by a.学号
⑻查询取得“基础会计”课前三名成绩的学生的学号、姓名、性别(性别显示男或女)和成绩数据。
sele a.学号,姓名,iif(性别=.T.,'男','女') AS 性别,成绩from 学生a ,选课b,课程c where a.学号=b.学号and b.课程号=c.课程号and b.课程号=;
(sele 课程号from 课程where 课程名="基础会计") group by 姓名order by 成绩desc top 3
sele a.学号,姓名,性别,成绩from 学生a ,选课b,课程c where a.学号=b.学号and b.课程号=c.课程号and b.课程号=(sele 课程号from 课程where 课程名="基础会计") group by 姓名order by 成绩desc top 3