数据库实验二
更新时间:2024-05-28 01:48:01 阅读量: 综合文库 文档下载
计算机科学系实验报告 (首页) 课程名称 数据库系统概论 班 级 网络工程2班 实验名称 数据库中数据的查询 指导教师 索剑 姓名 李文森 学 号 1214080613213 日 期 2014年 5月12日
一、实验目的
学会使用SQL语言进行各种类型的查询,理解各种查询的异同及相互之间的转换。
二、实验设备与环境
三、实验内容、程序清单及运行结果
实验内容:
练习单表查询、嵌套查询、连接查询及集合查询
操作步骤:
1) 打开实验1建立的数据库
2) 在查询分析器中完成以下单表查询语句 查询全体学生的姓名及其出生年份
查询年龄不在20~23岁之间的学生姓名、系别和年龄 查询既不是IS、MA,也不是CS系学生的姓名和性别 查询所有姓刘的学生的姓名、学号和性别
查询选修了3号课程的学生的学号及其成绩,结果按分数的降序排列
SQL SERVER 2000、XP系统
计算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;
查询年龄不在20~23岁之间的学生姓名、系别和年龄
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 Grade>90;
查询每个学生的学号、姓名、选修的课程名及成绩
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 Sage'IS';
2.聚集函数
SELECT Sname,Sage FROM Student WHERE Sage<(SELECT MAX(Sage) FROM Student WHERE Sdept='IS' )AND Sdept<>'IS';
查询所有选修了1号课程的学生(使用比较运算符、IN、EXISTS分别完成) 1.比较运算符 2.IN
SELECT Sname FROM Student WHERE Sno IN(SELECT Sno FROM SC WHERE Cno='1' );
3.EXISTS
SELECT 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 Sage<=19 ORDER BY Sno;
查询计算机科学系的学生及年龄不大于19岁的学生的差集 SELECT * FROM Student WHERE Sdept='CS' AND Sage>19;
第二:可视化实现结果
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.IN
3.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岁的学生并按学号排序(使用单表查询、集合查询分别完成)
单表查询:SELECT * FROM Student WHERE Sdept='CS' OR Sage<=19 ORDER BY Sno;
集合查询:
SELECT * FROM Student WHERE Sdept='CS' UNION SELECT * FROM Student WHERE Sage<=19 ORDER BY Sno;
查询计算机科学系的学生及年龄不大于19岁的学生的差集
SELECT * FROM Student WHERE Sdept='CS' AND Sage>19;
四、实验体会
数据库的逻辑关系很强,通过做实验,让我更容易的知道其中的奥秘,通过不断的实验来锻炼自己逻辑分析能力也是一个不错的选择。
正在阅读:
数据库实验二05-28
针刺配合旋转手法治疗肩周炎的临床观察06-04
财务管理论文--浅析格力电器股利发放政策04-29
窃读作文500字02-05
转子接地保护的相关规程规定11-18
小学数学教学中小组合作学习实践与反思02-01
XX包装纸业有限公司安全风险评估报告08-08
zemax优化浅谈10-28
游将军馆作文500字07-02
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 实验
- 数据库
- 区社会组织学习实践活动整改落实工作总结二
- 三年级语文下册第二单元三维目标教案
- 六年级上期品社第三单元复习题1
- 谈判文件格式
- 推荐下载 2019党支部每月工作计划-最新
- 给想要学习软件测试同学们的建议
- 分析化学实验常见问题
- 光纤通信系统中的色散问题及其补偿研究
- 2015高考试题 - 英语(天津卷)详细解析word版
- B、放射科绩效二次分配方案文本
- 牛津英语 9A Chapter1 知识点总结
- GPON毕业设计
- LTE-FDD常见告警处理指导
- 中国电信GPON设备技术要求 - V1.2修订1 - 201011
- 2016燃气公司个人工作总结范文精选
- (冲刺提分)新高二物理第一学期期中试题(无答案)(1)
- 辽宁省朝阳市中考数学试题(word版)
- 认证中心分公司质量手册 D版 - 图文
- 实习报告苏嵌
- 最高院建设工程施工合同司法解释第二十五条 总承包人发包人施工