ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

数据库学习(二)——SQL查询语句

2022-04-26 21:00:38  阅读:343  来源: 互联网

标签:语句 SNO 数据库 Student SQL SC CNO WHERE SELECT


数据库实验课课后习题的SQL语句,题目如下: 用到的表的结构如下: 各题具体代码如下: 1.查询成绩在 80~90分之间的记录。
/*第一问*/
SELECT * FROM SC
	WHERE SCORE>80 AND SCORE<90
GO

2.查询至少有 4 个同学选修的课程名。

/*第二问*/
select CN from Course
where CNO in (select CNO from SC
group by CNO having count(SNO)>=4)
go

3.查询其他系中比“信息系”所有学生年龄都大的学生名单及年龄, 并按年龄降序输出。

/*第三问*/
SELECT SNO,SN,AGE from Student
WHERE SNO IN(SELECT SNO FROM Student
WHERE  AGE >  (SELECT MAX (AGE) FROM Student GROUP BY DEPT HAVING DEPT='信息系'))
ORDER BY AGE DESC
GO

4.查询与学生张建国同岁的所有学生的学号、姓名和系别。

/*第四问*/
select SNO,SN,DEPT from Student
WHERE AGE IN (SELECT AGE from Student where SN='张建国')
go

5.查询选修了两门以上课程的学生名单。

/*第五问*/
SELECT * FROM Student
WHERE SNO IN
(SELECT SNO FROM SC GROUP BY SNO HAVING COUNT(CNO)>2)
GO

6.查询至少有一门课程与“张建国”选课相同的学生的姓名、课程名和系别。

/*第六问*/
SELECT CN,SN,DEPT FROM Course,Student
WHERE CNO IN (
SELECT CNO FROM SC
WHERE
SNO IN (SELECT SNO FROM Student WHERE SN='张建国'))
GO

7.查询成绩比该课程平均成绩高的学生的成绩表。

/*第七问*/
SELECT SNO,CNO,SCORE
FROM SC x
WHERE SCORE>(SELECT AVG(SCORE)FROM SC y WHERE y.CNO=x.CNO)
GO

8.查询选修了课号为 01001 的课程且成绩高于课程号为 01002 的课程的学生的姓名、此两门课程的课程名和成绩。

/*第八问*/
SELECT SN,CN,SCORE FROM Student,Course,SC
WHERE Student.SNO =
(SELECT A.SNO FROM SC A,SC B 
 WHERE A.CNO='01001' AND B.CNO='01001' AND A.SCORE >B.SCORE AND A.SNO=B.SNO)
AND SC.Sno=Student.Sno
AND Course.Cno=SC.Cno
GO

 9.查询所有末修 01001 号课程的学生名单。

/*第九问*/
SELECT * FROM Student 
WHERE SNO NOT IN (SELECT SNO FROM SC WHERE CNO='01001')

10. 查询每个学生各门课程的平均成绩和最高成绩,按降序排列输出姓名、平均成绩和最高成绩。

/*第十问*/
SELECT SN,AVG(SCORE) AS 平均成绩, MAX(SCORE) AS 最高成绩 FROM Student ,SC
WHERE Student.SNO=SC.SNO
GROUP BY SN
ORDER BY SN DESC
GO

11.查询所有学生都选修了的课程的课程号和课程名。

/*第十一问*/
SELECT
	Course.CNO,
	Course.CN 
FROM
	Course
WHERE
	NOT EXISTS (
	SELECT
		* 
	FROM
		Student
	WHERE
	NOT EXISTS ( SELECT * FROM SC WHERE SC.SNO= Student.SNO AND CNO=course.CNO)
	)
GO

12.查询选修了 991102 号学生选修了的课程的学生的学号和姓名。

/*第十二问*/
SELECT SN
FROM Student
WHERE NOT EXISTS 
    (SELECT * 
    FROM SC AS sc_1
    WHERE SNO='S2' AND NOT EXISTS
    (SELECT * 
    FROM SC AS sc_2
    WHERE sc_2.SNO=Student.SNO AND sc_2.CNO=sc_1.CNO))

 

标签:语句,SNO,数据库,Student,SQL,SC,CNO,WHERE,SELECT
来源: https://www.cnblogs.com/tangjielin/p/16196431.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有