图1.7 查询所有选了“数据库原理及其应用”课程的学生编号和姓名
(12)求出选择了同一个课程的学生对。
图1.8 选择了同一个课程的学生
(13)求出至少被两名学生选修的课程编号。
select qdd_Cno from Qidd_Reports group by qdd_Cno
having(COUNT (qdd_Cno))>=2
(14)查询选修了编号S26的学生所选的某个课程的学生编号。
select distinct qdd_Sno,qdd_Cno from Qidd_Reports where qdd_Cno in
(select qdd_Cno from Qidd_Reports where qdd_Sno='S26')
group by qdd_Cno,qdd_Sno
(15)查询学生的基本信息及选修课程编号和成绩。
Select
Qidd_Students.qdd_Sno,qdd_Sname,qdd_Semail,qdd_Scredit,qdd_Ssex,qdd_Cno,qdd_Score from Qidd_Students,Qidd_Reports
where Qidd_Students.qdd_Sno=Qidd_Reports.qdd_Sno
(16)查询学号S52的学生的姓名和选修的课程名称及成绩。
图1.9查询学号S52的学生的姓名和选修的课程名称及成绩
(17)查询和学号S52的学生同性别的所有学生资料。
图1.10 查询和学号S52的学生同性别的所有学生资料
(18)查询所有选课的学生的详细信息。
Select *
from Qidd_Students where qdd_Sno in
(select qdd_Sno from Qidd_Students)
(19)查询没有学生选的课程的编号和名称
图1.11 查询没有学生选的课程的编号和名称
(20)查询选修了课程名为C++的学生学号和姓名。
select qdd_Sno,qdd_Sname from Qidd_Students where qdd_Sno in (select qdd_Sno from Qidd_Reports where qdd_Cno in
(select qdd_Cno from Qidd_Courses where qdd_Cname='C++'))
(21)找出选修课程UML或者课程C++的学生学号和姓名
select qdd_Sno,qdd_Sname from Qidd_Students where qdd_Sno in (select qdd_Sno from Qidd_Reports where qdd_Cno in (select qdd_Cno
from Qidd_Courses
where qdd_Cname='C++' or qdd_Cname='UML'))
(22)找出和课程UML或课程C++的学分一样课程名称
select qdd_Cname from Qidd_Courses where qdd_Ccredit in (select qdd_Ccredit from Qidd_Courses
where qdd_Cname='C++' or qdd_Cname='UML')
(23)查询所有选修编号C01的课程的学生的姓名
select qdd_Sname from Qidd_Students where qdd_Sno in (select qdd_Sno from Qidd_Reports where qdd_Cno='C01')
(24)查询选修了所有课程的学生姓名
图1.12 查询选修了所有课程的学生姓名
(25)利用集合查询方式,查询选修课程C++或选择课程JAVA的学生的编号、姓名和积分
select qdd_Sno,qdd_Sname,qdd_Scredit from Qidd_Students where qdd_Sno in (select qdd_Sno from Qidd_Reports where qdd_Cno in
(select qdd_Cno from Qidd_Courses where qdd_Cname='C++')) union
select qdd_Sno,qdd_Sname,qdd_Scredit from Qidd_Students where qdd_Sno in (select qdd_Sno from Qidd_Reports where qdd_Cno in
(select qdd_Cno from Qidd_Courses where qdd_Cname='JAVA'))
(26)实现集合交运算,查询既选修课程C++又选修课程JAVA的学生的编号、姓
名和积分
select qdd_Sno,qdd_Sname,qdd_Scredit from Qidd_Students where qdd_Sno in (select qdd_Sno from Qidd_Reports where qdd_Cno in
(select qdd_Cno from Qidd_Courses where qdd_Cname='C++')) intersect
select qdd_Sno,qdd_Sname,qdd_Scredit from Qidd_Students where qdd_Sno in (select qdd_Sno from Qidd_Reports where qdd_Cno in
(select qdd_Cno from Qidd_Courses where qdd_Cname='JAVA'))
(27)实现集合减运算,查询选修课程C++而没有选修课程JAVA的学生的编号。
select qdd_Sno from Qidd_Reports where qdd_Cno in
(select qdd_Cno from Qidd_Courses where qdd_Cname='C++') except
select qdd_Sno from Qidd_Reports where qdd_Cno in
(select qdd_Cno from Qidd_Courses where qdd_Cname='JAVA')
2.5 实验体会
做了实验一之后,做实验二就得心应手多了,虽然还会有很多细小的语法,逻辑错误,但相比于实验一来说就好多了。在实验二里,我学到了很多查询的方法,如简单的条件查询,连接查询,嵌套查询,集合查询等,其中用得最多的是前三个。在编写SQL的数据查询语句中,我发现要有较强的逻辑性,清晰的思路才能写出语句来,而且还需要很仔细的推敲,注意很多细节,才能成功的查询所需数据。做实验二期间,我遇到了好多问题,但与室友一起讨论之后,我们解决了问题,这也让我受益匪浅!希望再接再厉,在之后的实验中获取更多的知识!
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库sql 实验二报告(2)在线全文阅读。
相关推荐: