数据库实验二35874_第1页
数据库实验二35874_第2页
数据库实验二35874_第3页
数据库实验二35874_第4页
数据库实验二35874_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

. 计算机科学系实验报告 (首页)课程名称 数据库系统概论 班 级 网络工程2班 实验名称 数据库中数据的查询 指导教师 索剑 姓名 李文森 学 号 1214080613213 日 期 2014年 5月12日 一、实验目的学会使用SQL语言进行各种类型的查询,理解各种查询的异同及相互之间的转换。二、实验设备与环境SQL SERVER 2000、XP系统三、实验内容、程序清单及运行结果实验内容:练习单表查询、嵌套查询、连接查询及集合查询操作步骤:1) 打开实验1建立的数据库2) 在查询分析器中完成以下单表查询语句查询全体学生的姓名及其出生年份查询年龄不在2023岁之间的学生姓名、系别和年龄查询既不是IS、MA,也不是CS系学生的姓名和性别查询所有姓刘的学生的姓名、学号和性别查询选修了3号课程的学生的学号及其成绩,结果按分数的降序排列计算1号课程的学生平均成绩查询选修了3门以上课程的学生学号3) 在查询分析器中完成以下连接查询语句查询每个学生及其选修课程的情况(使用自然连接、外连接分别完成)查询每一门课的间接先修课查询选修2号课程且成绩在90分以上的所有学生查询每个学生的学号、姓名、选修的课程名及成绩4) 在查询分析器中完成以下嵌套查询语句查询与“刘晨”在同一个系学习的学生(使用嵌套查询、自身连接、比较运算符分别完成)查询选修了课程名为“信息系统”的学生学号和姓名(使用嵌套查询、自然连接分别完成)查询其他系中比信息系某一学生年龄小的学生姓名和年龄(使用ANY谓词、集函数分别完成)查询所有选修了1号课程的学生(使用比较运算符、IN、EXISTS分别完成)查询没有选修1号课程的学生的姓名查询选修全部课程的学生姓名查询至少选修了学生95002选修的全部课程的学生号码5) 在查询分析器中完成以下集合查询语句查询计算机科学系的学生及年龄不大于19岁的学生并按学号排序(使用单表查询、集合查询分别完成)查询计算机科学系的学生及年龄不大于19岁的学生的差集6) 在企业管理器可视化环境下重新完成2-5步骤的内容程序清单及运行结果第一:查询7) 打开实验1建立的数据库8) 在查询分析器中完成以下单表查询语句查询全体学生的姓名及其出生年份SELECT Sname,2014-Sage AS years FROM Student;查询选修了课程的学生学号(去掉重复行)SELECT DISTINCT Sno FROM SC;查询年龄不在2023岁之间的学生姓名、系别和年龄SELECT Sname,Sdept,Sage FROM Student where Sage not between 20 and 23;查询既不是IS、MA,也不是CS系学生的姓名和性别SELECT Sname,Sdept FROM Student WHERE Sdept not in(IS,MA,CS);查询所有姓刘的学生的姓名、学号和性别SELECT Sname,Sno,Sage FROM Student WHERE Sname LIKE 刘%;查询选修了3号课程的学生的学号及其成绩,结果按分数的降序排列SELECT Sno,Grade FROM SC WHERE Cno=3 ORDER BY Grade DESC;计算1号课程的学生平均成绩SELECT AVG(Grade) FROM SC WHERE Cno=1 ;查询选修了3门以上课程的学生学号SELECT Sno from SC GROUP BY Sno HAVING COUNT(Cno)3;9) 在查询分析器中完成以下连接查询语句查询每个学生及其选修课程的情况(使用自然连接、外连接分别完成)SELECT Student.*,SC.Cno FROM Student,SC WHERE Student.Sno=SC.Sno;SELECT Student.*,Cno FROM Student JOIN SC ON(Student.Sno=SC.Sno);查询每一门课的间接先修课SELECT first.Cno,second.Cpno from Course first,Course second WHERE first.Cpno=second.Cno;查询选修2号课程且成绩在90分以上的所有学生SELECT Sname FROM Student a,SC b WHERE a.Sno=b.Sno AND Cno=2 AND Grade90;查询每个学生的学号、姓名、选修的课程名及成绩SELECT a.Sno,Sname,c.Cname,Grade FROM Student a,SC b,Course c WHERE a.Sno=b.Sno AND b.Cno=c.Cno ;10) 在查询分析器中完成以下嵌套查询语句查询与“刘晨”在同一个系学习的学生(使用嵌套查询、自身连接、比较运算符分别完成)1.嵌套查询SELECT * FROM Student a WHERE Sdept IN(SELECT Sdept FROM Student b WHERE b.Sname=刘晨 ); 2.自身连接SELECT a.* FROM Student a,Student b WHERE b.Sname=刘晨 AND a.Sdept=b.Sdept ; 3.比较查询SELECT * FROM Student a WHERE Sdept=(SELECT Sdept FROM Student b WHERE b.Sname=刘晨 );查询选修了课程名为“信息系统”的学生学号和姓名(使用嵌套查询、自然连接分别完成)1.嵌套查询SELECT Sno,Sname FROM Student WHERE Sno IN(SELECT Sno FROM SC WHERE Cno IN(SELECT Cno FROM Course WHERE Cname=信息系统 ) ) ;2.自然连接SELECT a.Sno,Sname FROM Student a,SC b ,Course c WHERE a.Sno=b.Sno AND b.Cno=c.Cno AND Cname=信息系统;查询其他系中比信息系某一学生年龄小的学生姓名和年龄(使用ANY谓词、集函数分别完成)1.ANY谓词SELECT Sname,Sage FROM Student WHERE SageANY( SELECT Sage FROM Student WHERE Sdept=IS ) AND SdeptIS;2.聚集函数SELECT Sname,Sage FROM Student WHERE Sage(SELECT MAX(Sage) FROM Student WHERE Sdept=IS )AND SdeptIS;查询所有选修了1号课程的学生(使用比较运算符、IN、EXISTS分别完成)1.比较运算符2.INSELECT Sname FROM Student WHERE Sno IN(SELECT Sno FROM SC WHERE Cno=1 );3.EXISTSSELECT Sname FROM Student WHERE EXISTS(SELECT * FROM SC WHERE Sno=Student.Sno AND Cno=1 );查询没有选修1号课程的学生的姓名查询选修全部课程的学生姓名SELECT Sname FROM Student WHERE NOT EXISTS(SELECT * FROM Course WHERE NOT EXISTS(SELECT * FROM SC WHERE Sno=Student.Sno AND Cno=Course.Cno) );查询至少选修了学生95002选修的全部课程的学生号码SELECT DISTINCT Sno FROM SC a WHERE NOT EXISTS(SELECT * FROM SC b WHERE b.Sno=95002 AND NOT EXISTS(SELECT * FROM SC c WHERE c.Sno=a.Sno AND c.Cno=b.Cno);11) 在查询分析器中完成以下集合查询语句查询计算机科学系的学生及年龄不大于19岁的学生并按学号排序(使用单表查询、集合查询分别完成)单表查询:SELECT * FROM Student WHERE Sdept=CS OR Sage=19 ORDER BY Sno;集合查询:SELECT * FROM Student WHERE Sdept=CS UNION SELECT * FROM Student WHERE Sage19;第二:可视化实现结果1. 查询全体学生的姓名及其出生年份2.查询选修了课程的学生学号(去掉重复行)3.查询年龄不在2023岁之间的学生姓名、系别和年龄4.查询既不是IS、MA,也不是CS系学生的姓名和性别5.查询所有姓刘的学生的姓名、学号和性别6.查询选修了3号课程的学生的学号及其成绩,结果按分数的降序排列7.计算1号课程的学生平均成绩8.查询选修了3门以上课程的学生学号9.在查询分析器中完成以下连接查询语句查询每个学生及其选修课程的情况(使用自然连接、外连接分别完成)10.查询每一门课的间接先修课11查询选修2号课程且成绩在90分以上的所有学生12查询每个学生的学号、姓名、选修的课程名及成绩13在查询分析器中完成以下嵌套查询语句查询与“刘晨”在同一个系学习的学生(使用嵌套查询、自身连接、比较运算符分别完成)1.嵌套查询 2.自身连接 3.比较查询查询选修了课程名为“信息系统”的学生学号和姓名(使用嵌套查询、自然连接分别完成)1.嵌套查询2.自然连接14查询其他系中比信息系某一学生年龄小的学生姓名和年龄(使用ANY谓词、集函数分别完成)1.ANY谓词2.聚集函数15.查询所有选修了1号课程的学生(使用比较运算符、IN、EXISTS分别完成)1.比较运算符2.IN3.EXISTS查询没有选修1号课程的学生的姓名查询选修全部课程的学生姓名SELECT Sname FROM Student WHERE NOT EXISTS(SELECT * FROM Course WHERE NOT EXISTS(SELECT * FROM SC WHERE Sno=Student.Sno AND Cno=Course.Cno) );查询至少选修了学生95002选修的全部课程的学生号码在查询分析器中完成以下集合查询语句查询计算机科学系的学生及年龄不大于19岁的学生并按学号排序(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论