




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
vfp课程设计报告目录第一题3第二题3第三题5第四题6第五题7 1.题目假设使用如下三个数据库表学生表:s(学号,姓名,性别,出生日期,院系)课程表:c(课程号,课程名,学时)选课成绩表:sc(学号,课程号,成绩)在上述表中,出生日期数据类型为日期型,学识和成绩为数值型,其他均为字符型。(1) 用sql命令查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名;(2) 用sql语言检索选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,并按平均成绩降序排序。问题分析在第(1)小题中,要查询的是学号和姓名,限定条件是要求“选修的每门课程的成绩都高于或等于85分”。在第(2)小题中,要查询的是学号、姓名和平均成绩,限定条件是要求“选修课程在5门以上(含5门)”,并要求将结果按照平均成绩的降序进行排序。数据库设计在第(1)小题中,用select从学生表中查询学号和姓名,使用where语句,根据选课成绩表中的“成绩”筛选不符合要求的部分即成绩小于85的部分。在第(2)小题中,用select从学生表和选课成绩表中查询学号、姓名、平均成绩,其中使用avg语句计算平局成绩。使用group by语句,根据学号进行分组。使用count语句从选课成绩表中查询选课的门数,将选修课程在5门以下的排除。再使用desc语句,将查询出来的结果按照平均成绩的降序排序。程序清单(1) select 学号,姓名 from s not exists (select * from sc where sc.学号=s.学号 and 成绩=5 order by 平均成绩 desc测试分析在第(1)小题中,最初的语句为:select 学号,姓名 from s where sc.学号=s.学号 and 成绩=85,这样显示出来的结果是只要其中一门课程的成绩高于或等于85分的学生的学号和姓名,并不是题中要求的“每门课程的成绩都高于或等于85分”。经过从书上寻扎解决方法,我发现了exists语句。在第(2)小题中,最初在计算平均成绩的时候没有加上“as 平均成绩”,结果显示“找不到列”;在把结果进行降序排序的时候,开始时直接在having语句后面加上desc,但这样是不正确的,在书上我发现,desc要和order by 语句搭配使用。2.题目有如下表的数据:部门表部门号部门名称40家用电器部10电视录摄像机部20电话手机部30计算机部商品表部门号商品名商品名称单价数量产地400101a牌电风扇200.0010广东400104a牌微波炉350.0010广东400105b牌微波炉600.0010广东201032c牌传真机1000.0020上海400107d牌微波炉420.0010北京200110a牌电话机200.0050广东200112b牌手机2000.0010广东400202a牌电冰箱3000.002广东301041b牌计算机6000.0010广东300204c牌计算机10000.0010上海(1) 用sql语句按部门号查询商品名;(2) 用sql语句查询某产地提供的商品种类数;(3) 用sql语句统计各部门商品金额总和;(4) 用sql语句查询家用电器部和电话手机部价格在420到1000之间的商品信息问题分析在第(1)小题中,要查询的是商品名,限定条件是要求按部门查询。在第(2)小题中,要查询的是商品种类数,限定条件是要求按产地查询。在第(3)小题中,要查询的是商品金额总和,限定条件是要求按部门统计。在第(4)小题中,要查询的是商品信息,限定条件是商品是家用电器部或电话手机部的商品,并且要求价格在420到1000之间。数据库设计在第(1)小题中,用select从商品表中查询商品名,使用where语句锁定需要查询的部门号。在第(2)小题中,用select从商品表中查询商品种类,使用right语句截取商品名称中的后3个字,进行对比分类。使用distinct语句,将相同的部分去除,得到商品的种类。使用count语句数出一共多少种。使用where语句将范围限定在需要查询的产地。在第(3)小题中,用select从商品表和部门表中查询部门名称、金额总和。使用sum语句计算金额总和。使用group by 按部门号进行分类。在第(4)小题中,用select从商品表和部门表中查询部门号、部门名称、商品号、商品名称、单价、数量、产地。使用where语句添加限定条件“部门号是40或部门号是20”。使用having语句将范围缩小到单价在420到1000之间的部分。程序清单(1) select 商品名称 from 商品表 where 部门号=”40”(2) select count(distinct right(alltrim(商品名称),6) from 商品表 where 产地=”广东”(3) select 部门表.部门名称,sum(val(数量)*单价) as 金额总和 from 商品表,部门表 where 商品表.部门号=部门表.部门号 group by 商品表.部门号(4) select 商品表.部门号,部门名称,商品号,商品名称,单价,数量,产地 from 部门表,商品表 where 部门表.部门号=商品表.部门号 and (商品表.部门号=”40” or 商品表.部门号=”20”) having 单价 between 420 and 1000测试分析在第(2)小题中,最初的语句为:sum(数量*单价) as 金额总和,但是无法正常显示,经过反复检查后发现,因为在建表的时候“数量”设定为字符型,“单价”为数值型,因而不能进行计算,将语句改为sum(val(数量)*单价)后可以得到正确结果。在第(3)小题中,最初的语句为:count(商品名称),但这样输出来的只是商品名称并非商品种类,因为存在相同的商品只可划分为同一种类,所以要截取商品名称的后3个字进行比较分类,于是改为:count(right(商品名称,6)。然而这样仍不能正常运行,原因在于,商品名称中存在着空格,需要把空格都去掉,因此将语句再改为:count(distinct right(alltrim(商品名称,6)),得到正确的查询结果。在第(4)小题中,因为涉及的查询项目很多,所以总是出现项不唯一的情况,经过逐个排除最后能够得到正确的结果。6.题目某数据库中有两个数据库表:物资表(wzb.dbf)和领用表(lyb.dbf),两个表具有一对多关系。完善下面的select语句,使其实现查询近10天内各部门的各种物资领用数量。物资表(wzb.dbf)字段号类型宽度物资代号c6物资名称c12领用表(lyb.dbf)字段名类型宽度物资代号c6领用部门c20领用数量n3领用日期d8select 物资代号,物资名称,领用部门,_ as 领用数量;from wzb,lyb;where wzb.物资代码=lyb.物资代码 and _group by 1,3;order by 3,1问题分析首先要在两个表之间建立起一对多的关系。查询累计的领用数量。领用日期要大于等于当前日期之前10天之前的日期。数据库设计建立一对多关系:在“窗口”菜单中选定“数据工作期”命令,然后用“打开”按钮分别打开物资表和领用表。在“别名”列表框中选定领用表,选定“属性”按钮,在“工作区属性”对话框中选定“修改”按钮,在“表设计器”窗口中单击字段名为“物资代号”的行的“索引”列。组合框中选定升序,选定“确定”按钮返回“工作区属性”对话框,选定“确定”按钮返回“数据工作期”窗口。在“别名”列表框中选定表物资表,选定“关系”按钮,在“别名”列表框中选定表物资表,在“设置索引顺序”对话框中选定“确定”按钮,建立一对多关系。使用sum语句累计计算领用数量。使用date语句将日期限定在最近10天之内。程序清单use 领用表 in 0 exclusiveuse 物资表 in 0 exclusiveselect 2set order to tag 物资代号 of 领用表 in 领用表set relation to 物资代号 into 领用表 additiveset skip to 领用表select 物资代号,物资名称,领用部门,sum(领用数量) as 领用数量;from wzb,lyb;where wzb.物资代码=lyb.物资代码 and 领用日期=date()-10group by 1,3;order by 3,1测试分析在查询近10天的物资领用情况时,最初的语句是:date()-10,这样查询出的只是10前的这一天的情况,并不是一段时间的。所以加上了“领用日期=date()-10”,得出正确的查询结果。7.题目设有表文件cjb.dbf,表中共有30条记录,记录内容如下表所示:学号xh课程代号kcdh成绩cj学号xh课程代号kcdh成绩cj学号xh课程代号kcdh成绩cj990201017899020205959903020389990201028099020206849903020498990201038099020101639902030568990201047399020102629902030684990201058299020103829902030187990201069599020104939902030278990202016399020105959902030385990202026299020106769902030480990202036999020201789902040151990202049399020202809902040386(1) 求班级每门课程表的最高分和最低分;(2) 求每门课程的平均分问题分析在第(1)小题中,要查询的是最高分和最低分。在第(2)小题中,要查询的是平均成绩。数据库设计在第(1)小题中,用select从表cjb中查询最高分和最低分,使用group by 语句按课程代号分组。在第(2)小题中,用select从表cjb中查询平均成绩,其中使用avg语句计算平均成绩。使用group by 语句按课程代号分组。程序清单(1) select 课程代号,mac(成绩),min(成绩) from cjb group by 课程代号(2) select 课程代号,avg(val(成绩) from cjb group by 课程代号测试分析在第(2)小题中,最初的命令是:avg(成绩),但是无法正常运行,经过反复检查发现因为在建表的时候“成绩”设定为字符型,所以不能直接用函数求平均值,因而加上“avg(val(成绩)”才能查询出正确结果。8.题目有图书管理数据库:图书(总编号c(6),分类号c(8),书名c(16),作者c(6),出版单位c(20),单价n(6,2) 读者(借书证好c(4),单位c(8),姓名c(6),职称c(6),地址c(20) 借阅(借书证号c(4),总编号c(6),借书日期d(8)(1) 对图书管理数据库,查询由“清华大学出版社”或“电子工业出版社”出版,并且单价不超出20元的书名;(2) 查询所藏图书中,各个出版社的图书最高单价、平均单价和册数;(3) 求共借出多少书问题分析在第(1)小题中,要查询的是书名,限定条件是要求“由“清华大学出版社”或“电子工业出版社”出版,并且单价不超出20元”。在第(2)小题中,要查询的是最高单价、平均单价和册数,要求按出版社分组。在第(3)小题中,要查询的是共借出多少书数据库设计在第(1)小题中,用select从表图书中查询书名。使用where语句添加限定条件由“清华大学出版社”或“电子工业出版社”出版,并且单价不超出20元。使用group by语句按照书名分组。在第(2)小题中,用select从表图书中查询最高单价、平均单价和册数。使用max语句求出最高单价。使用avg语句求出平均单价。使用count语句数出册数。使用group by语句按照出版单位分组。在第(3)小题中,用select从表借阅中查询共借出多少书。使用count数出接出书的数量。程序清单(1) select 书名 from 图书 where(出版单位=“清华大学出版社”
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辐照灭菌效果评估-洞察与解读
- 2025年嘉兴市级机关公开遴选公务员8人模拟试卷有完整答案详解
- 2025湖南长沙市雨花区砂子塘魅力第二小学储备教师招聘模拟试卷及答案详解1套
- 2025内蒙古能源集团所属单位招聘30人模拟试卷及一套参考答案详解
- 2025内蒙古赤峰市松山区招聘政府专职消防员9人考前自测高频考点模拟试题参考答案详解
- 2025广东广州市黄埔区大沙街横沙股份经济联合社第一次招聘10人模拟试卷及答案详解一套
- 2025江西南昌市东方航空配餐有限公司招聘劳务派遣人员1人模拟试卷及答案详解(典优)
- 2025湖南邵阳公安局警务辅助人员招聘126人考前自测高频考点模拟试题及答案详解(各地真题)
- 2025贵州安顺市平坝区社会保险事业局招聘公益性岗位人员2人模拟试卷附答案详解(突破训练)
- 2025广东广州市番禺区调任科级领导职务公务员10人考前自测高频考点模拟试题有答案详解
- 2025年学校少先队知识应知应会题库(含答案)
- 核桃肽粉生产技术规程(征求意见稿)编制说明
- 《储能技术》课件-3.各种类型的蓄能技术
- (2025)企业首席质量官培训考核试题(附含答案)
- 工业厂区场地平整建设方案
- 2024年丽水市莲都区事业单位招聘真题
- 锂电池pack工厂安全培训课件
- (2025秋新版)青岛版科学三年级上册全册教案
- 跨境电商合规管理操作手册
- 住院病人防止走失课件
- DB31∕T 1545-2025 卫生健康数据分类分级要求
评论
0/150
提交评论