数据库SQL实验报告交互式查询连接查询及嵌套查询Word下载.docx

上传人:b****3 文档编号:7768100 上传时间:2023-05-09 格式:DOCX 页数:14 大小:196.95KB
下载 相关 举报
数据库SQL实验报告交互式查询连接查询及嵌套查询Word下载.docx_第1页
第1页 / 共14页
数据库SQL实验报告交互式查询连接查询及嵌套查询Word下载.docx_第2页
第2页 / 共14页
数据库SQL实验报告交互式查询连接查询及嵌套查询Word下载.docx_第3页
第3页 / 共14页
数据库SQL实验报告交互式查询连接查询及嵌套查询Word下载.docx_第4页
第4页 / 共14页
数据库SQL实验报告交互式查询连接查询及嵌套查询Word下载.docx_第5页
第5页 / 共14页
数据库SQL实验报告交互式查询连接查询及嵌套查询Word下载.docx_第6页
第6页 / 共14页
数据库SQL实验报告交互式查询连接查询及嵌套查询Word下载.docx_第7页
第7页 / 共14页
数据库SQL实验报告交互式查询连接查询及嵌套查询Word下载.docx_第8页
第8页 / 共14页
数据库SQL实验报告交互式查询连接查询及嵌套查询Word下载.docx_第9页
第9页 / 共14页
数据库SQL实验报告交互式查询连接查询及嵌套查询Word下载.docx_第10页
第10页 / 共14页
数据库SQL实验报告交互式查询连接查询及嵌套查询Word下载.docx_第11页
第11页 / 共14页
数据库SQL实验报告交互式查询连接查询及嵌套查询Word下载.docx_第12页
第12页 / 共14页
数据库SQL实验报告交互式查询连接查询及嵌套查询Word下载.docx_第13页
第13页 / 共14页
数据库SQL实验报告交互式查询连接查询及嵌套查询Word下载.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据库SQL实验报告交互式查询连接查询及嵌套查询Word下载.docx

《数据库SQL实验报告交互式查询连接查询及嵌套查询Word下载.docx》由会员分享,可在线阅读,更多相关《数据库SQL实验报告交互式查询连接查询及嵌套查询Word下载.docx(14页珍藏版)》请在冰点文库上搜索。

数据库SQL实验报告交互式查询连接查询及嵌套查询Word下载.docx

外连接查询

复合条件连接查询

实验主要任务:

在实验2建立的数据库中,用SQL语句完成下列查询任务

1.查询所有学生的选课情况,列出学号、姓名、课程号、课程名、成绩、学分。

2.查询所有低于60分的学生成绩记录,并按学号排序列表,列出学号、姓名、课程号、课程名、成绩。

3.查询选修2号课程且成绩在90分以上的所有学生的学号、姓名、成绩。

4.查询“计算机系”职称为“教授”的老师的记录。

5.查询由“计算机系”的开课的课程。

6.查询“数据结构”的先行课名称。

7.查询同时选修了课程号为“1”和“2”的学生学号。

8.查询计算机系全体学生的“数据结构”成绩,列出学号、姓名、课程名、成绩,并按成绩降序列表。

9.查询其他系中比信息系所有学生年龄都小的学生姓名及年龄。

10.查询没有选修1号课程的学生。

11.查询选修了全部课程的学生姓名。

12.查询学校中与老师同名的学生姓名

13.查询每一门课的间接先修课(即先修课的先修课)。

14.查询每个学生及其选修课程的情况包括没有选修课程的学生,列出学号、姓名、课程号、课程名、成绩、学分,没有选修课程的学生只列出学号、姓名。

(提示:

用外连接)。

以下内容填写请依照查询1逐题自己复制或插入新行,再将题目粘贴到适当位置,然后在执行代码成功后,截取屏幕上的运行代码及结果,贴到合适位置,并填写结果是否正确,最后对所采用的方法进行分析。

每题格式相同,请参照下面的查询1。

查询1:

查询所有学生的选课情况,列出学号、姓名、课程号、课程名、成绩、学分

代码及执行结果:

select学生.学号,学生.姓名,选课.课程号,课程.课程名,选课.成绩,课程.学分

from学生,选课,课程

where学生.学号=选课.学号and选课.课程号=课程.课程号

结果是否正确:

正确

方法分析:

三个表的连接

查询2:

查询所有低于80分的学生成绩记录,并按学号排序列表,列出学号、姓名、课程号、课程名、成绩。

代码及执行结果:

select学生.学号,学生.姓名,课程.课程号,课程.课程名,选课.成绩

from学生,选课,课程

where选课.课程号=课程.课程号and学生.学号=选课.学号and选课.成绩<

80

orderby学生.学号

方法分析:

orderby排序,默认为升序

 

查询3:

查询选修0002号课程且成绩在90分以上的所有学生的学号、姓名、成绩

select学生.学号,学生.姓名,选课.成绩

from学生,选课

where学生.学号=选课.学号and选课.课程号='

0002'

and成绩>

90

两个表的连接

查询4:

查询“计算机系”职称为“教授”的老师的记录

select教师.*from系,教师

where系.系名='

计算机'

and教师.职称='

教授'

and系.系编号=教师.系编号

两个表的等值连接

查询5:

查询由“计算机系”的开课的课程

select选课.课程号,课程.课程名,系.系名as所在系

from选课,系,课程

and课程.系编号=系.系编号and课程.课程号=选课.课程号

查询6:

查询“数据结构”的先行课名称

selecta.课程名,b.课程名as先行课from课程a,课程b

wherea.先行课=b.课程号anda.课程名='

数据结构'

给表重命名,然后两个新表连接查询

查询7:

查询同时选修了课程号为“0001”和“0002”的学生学号

代码及执行结果

select学号as选修了1和2号课程的学生的学号from选课

where学号in(select学号from选课where课程号='

0001'

and课程号='

嵌套查询

查询8:

查询计算机系全体学生的“数据结构”成绩,列出学号、姓名、课程名、成绩,并按成绩降序列表

select选课.学号,学生.姓名,课程.课程名,选课.成绩from学生,课程,选课,系

and课程.课程名='

and课程.课程号=选课.课程号

and系.系编号=课程.系编号and学生.学号=选课.学号

orderby选课.成绩DESC

四个表的等值连接

orderby排序,默认为升序,可以使用ASC,降序可以使用DESC

查询9:

查询其他系中比信管系所有学生年龄都小的学生姓名及年龄

select学生.姓名,year(getdate())-year(出生日期)as年龄

from学生,系

where学生.系编号=系.系编号and系.系名<

>

'

信管'

and

year(getdate())-year(出生日期)<

all(selectyear(getdate())-year(出生日期)

from学生,系where系.系编号=学生.系编号and系.系名='

使用了嵌套查询

使用了all,表示所有的都需要满足

查询10:

查询没有选修0001号课程的学生

selectdistinct学生.学号,学生.姓名

where学生.学号=选课.学号and

学生.学号notin(selectdistinct学生.学号from学生,选课where课程号='

and学生.学号=选课.学号)

嵌套查询,distinct删除重复的

查询11:

查询选修了全部课程的学生姓名

select学生.姓名

from学生

where学号in(select学号from选课groupby学号havingcount(*)=(selectcount(*)from课程))

使用选课数目相同查询

也可以使用exists关键字查询

查询12:

查询学校中与老师同名的学生姓名

select学生.姓名

from学生,教师

where学生.姓名=教师.姓名

查询13:

查询每一门课的间接先修课(即先修课的先修课)

selecta.课程名,b.课程名直接先行课,c.课程名间接先行课

from课程a,课程b,课程c

wherea.先行课=b.课程号andb.先行课=c.课程号

给同一个表重命名

用三个新表连接查询

查询14:

查询每个学生及其选修课程的情况包括没有选修课程的学生,列出学号、姓名、课程号、课程名、成绩、学分,没有选修课程的学生只列出学号、姓名。

用外连接)

from(学生leftouterjoin选课on选课.学号=学生.学号)leftouterjoin课程on课程.课程号=选课.课程号

使用左外连接

使用左外连接的结果再与第三个表左外连接

总结你在完成查询任务1-14的过程中遇到的主要问题及解决的方法:

不在表内查询

所以查询时候提示对象名无效

使用语句:

use+数据库名

这样就可以查询了

总结本次实验涉及到的基本原理:

(语法等)

多表连接

左外连接

表内连接

关键字:

all,DESC,exists等

本次实验小结:

exists的用法还是不太熟悉

要求:

1.报告格式和内容要求:

a.内容和格式整齐。

大标题采用黑体四号字加粗,小标题采用小四号字加粗。

正文采用五号宋体,单倍行距。

b.贴图时请剪裁到适当大小,要保证打印时可以看清,但也不要太大以免“越界”。

c.不要在报告中写与实验无关的话,内容要有条理、完整、并能突出重点,要将遇到的主要问题说明。

2.提交方式和时间:

一周内完成。

可以将文件包发到我邮箱******@。

注明主题:

“交SQL作业”。

3.提交文件格式要求:

a.将实验成果放入一个文件夹中,文件夹的内容包括:

本实验报告、分离后的数据库、如有查询代码(.sql文件)和其它文件也一并放入。

b.文件夹以“学号姓名班级_S5”为文件名。

注意:

你的学号放在姓名前。

c.注意:

所有文件保存后关闭,然后再打包成RAR文件,以免提交的内容丢失或打不开。

4.主动查阅资料,坚持自己亲手完成实验,弄清每个步骤和相关原理。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2