




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉轻工大学 经济与管理学院 实验报告实验课程名称大型数据库管理实验起止日期2017.11.15至2017.11.29实验指导教师程红莉实验学生姓名郑万芳学生班级学号物流1501班1508090003实验评语 实验评分教师签名 年 月 日 实验项目名称交互式SQL实验日期2017.11.21学生姓名郑万芳班级学 预习报告(请阐述本次实验的目的及意义)(1)熟悉数据库的交互式SQL工具。(2)熟悉通过SQL对数据库进行操作。(3)完成基本数据表、视图和索引的创建、修改与删除,并完成作业的上机练习,包括数据的查询、修改、插入、更新等操作。(4)完成SQL上机练习2、 实验方案(请说明本次实验的步骤和进程)一、数据定义即在实验一基础上,继续完成数据库下三张表的建立和数据输入。学生表(s)snosnameagesex98601李强20男98602刘丽21女98603张兵20男98604陈志坚22男98605张兵21女课程表(C)cnocnameteacherofficeC601高等数学周振兴416C602数据结构刘建平415C603操作系统刘建平415C604编译原理王志伟415选课表(SC)snocnoscore98601C6019098601C6029098601C6038598601C6048798602C6019098603C6017598603C6027098603C6045698604C6019098604C6048598605C6019598605C60380 二、数据操作1完成各类查询操作(单表查询、连接查询、嵌套查询、集合查询)。2完成各类更新操作(插入数据、修改数据、删除数据)。三、视图的操作 视图的定义(创建和删除)、查询、更新(注意更新的条件)。四、用SQL完成下列查询(1) 给学生表增加一列,属性名为class(班级),然后将已有数据的班级全部设置为class=“9601” Alter table s add class char(4)(2) 检索年龄大于21的男学生学号SNO和姓名SNAME。(用and 和intersect两种)select sno,snamefrom studentwhere sage21 and sex=男 (3) 检索选修课程名为“操作系统”的学生学号和姓名。 Select s.sno,sname from s,c,sc where ame=操作系统and o=o and s.sno=sc.sno(4) 检索“刘丽”同学没有选修的课程号。 Select cno from c where cno not in(select o from sc,student where sname=刘丽and sc.sno=student.sno) (5) 检索至少选修两门课程的学生学号。Select sno from sc group by sno having count(*)=2(6) 检索全部学生都选修的课程号和课程名。查找某个课程,这个课程不存在S中某个学生没有选Selectcno,cnamefromcoursewherenotexists(select*fromstudentwherenotexists(select*o=oandsc.sno=student.sno);(7) 检索选修课程号为C601和C603的学生学号。(即既选修了C601又选修了C603)select snofrom scwhere cno=c601andsno in(select snofrom scwhere cno=c603);(8) 检索选修全部课程的学生姓名Select sname from student where not exists (select * from course where not exists (select * from sc where sc.sno=student.sno and o=o)(9) 将每门课的平均成绩建立成一个视图sc_avgCreate view sc_avg(score) as select avg(score) from sc group by cno(10) 检索每门课没达到平均成绩的学生学号、课程号Select sno,cno from scwhere score(select avg(score)from sc)三、实验结果分析、改进建议出现的问题及解决方案:1.问题:在写第6个查询功能的时候用Select cno,cnameFrom courseGroup by Course.Cno,SC.Cno,CnameHaving count(SC.Sno)=0And SC.Cno=Course.Cno;这句SQL语句输出的是空的。解决方案:在表SC中没有人选的课程在表中课程号不会出现,所以count(count(SC.Sno))求得的那些课程所选人数中不会有没有人选的课程人数等于0的出现,所以满足Having count(SC.Sno)=0的课程根本不存在所以输出是空的。后来换了用notexists来写这个查询语句,就是输出表Course在表SC中中不想存在的课程号和课程名字。Selectcno,cnamefromcoursewherenotexists(select*fromstudentwherenotexists(select*o=oandsc.sno=student.sno); 2.问题解决方案: 语法错误中有粗心打错关键词,没有在英文输入法的情况下输入“,”,导致语法错误,命令不成功 3.问题,出现course无效解决方案:粗心导致表名称打错,实验中一定要仔细认真检查拼写,避免拼写错误 4.问题:在创建表的时候总是出现错误解决方案:对于创建表的时候出现的问题我上网查资料说分清主码与外码的关系5.问题:在所有操作结束后删除 STUDENT 表失败解决方案:删除 STUDENT 表弄清主表与从表之间的关系6.问题:对于嵌套查询不熟悉解决方案:嵌套查询虽然百度上有但我还没真正弄懂7.问题:对于删除索引不是那么清楚。解决方案:删除索引的时候要带上表名8.问题:对视图的一系列操作不熟悉解决方案:对视图的一系列操作我看了老师给我们的文件实验总结:从这次实验中,我认识了什么是交互式SQL,对数据库的书写规范有了更深刻的印象。通过对数据库进行创建,用SQL语句对数据进行更新相关操作,了解到SQL语句功能的强大之处, 简单的一句sql语句就能对数据进行定义、查询、操纵和控制。 通过此次实验,我还简单掌握了group by子句、having子句、order by子句及sum、avg、count、max、min等集合函数的用法;也对视图的创建、查询、更新有了进一步的了解。 但是,此次实验课上的练习是远远不足以保证能完全掌握对数据库的使用,若想完全熟悉用SQL对基本表和视图进行操纵,接下来必须加强练习。这次的的项目较多,花费了很长时间才全部完成。其中涉及到的有数据库语句操作,如表的创建、修改、删除,以及数据的插入、修改、删除和查询。实验课期间没有完成,之后又尝试编写出错和不会等问题。查询资料、请教同学之后顺利完成。 实验虽多,却也是课本最基本知识的练习,不足为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新疆甜菜种植与糖厂收购合同协议
- 2025年贵州社区工作者考试复习重点试题(附答案)
- 大学分层考试题目及答案
- 2025年广西忻城县卫生系统招聘考试(护理学专业知识)题含答案
- 商务谈判策略与合同签订模板
- 企业社会责任与环保意识提升互动方案
- 湖北警方考试题库及答案
- 消防国考考试试卷及答案
- 中医骨二科考试题及答案
- 软通动力 笔试题及答案
- 保安投诉管理制度
- 2025年高考江苏卷物理真题(原卷版)
- 【公开课】种子植物+第2课时课件-2024-2025学年人教版生物七年级上册
- 2024年贵州贵州贵安发展集团有限公司招聘笔试真题
- 人教部编版四年级上册语文第1单元(看拼音写词语)
- 房屋在别人名下协议书
- TSGR0005-2011移动式压力容器安全技术监察规程现行
- 智能型大型变压器企业数字化转型与智慧升级战略研究报告
- 幼儿园九一八爱国教育
- 农家乐消防知识培训课件
- 养老院突发事件应急预案演练计划
评论
0/150
提交评论