上海大学数据库上机作业上机练习5作业

时间:2022-12-25 17:07:11 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
上大学数据库上机作业

*************************************************************************************************

第五部分、SQL高级应用

一、做书上第十章的例题

二、利用上次上机的学生_课程数据库 1. 求选修了高等数学的学生学号和姓名。

USE 学生课程

SELECT 学生.学号,姓名,选课.课程号 FROM 学生,选课,课程

WHERE 学生.学号=选课.学号 AND 课程.课程号=选课.课程号AND 课程名='高等数学'

2. C1课程的成绩高于张三的学生学号和成绩。

USE 学生课程

SELECT x.学号,x.成绩 FROM 选课 x,选课 y

WHERE x.课程号='C1' AND x.成绩>y.成绩 AND y.学号='S4' AND y.课程号='C1' ORDER BY x.学号 DESC

第二种:

USE 学生课程

SELECT 学号,成绩 FROM 选课

WHERE 课程号='C1' AND 成绩>(SELECT 成绩 FROM 选课,学生 WHERE 课程号='C1' AND 姓名='张三'AND 选课.学号=学生.学号)

3. 求其他系中比自动化学院某一学生年龄小的学生。

USE 学生课程

SELECT 学号,姓名,年龄,单位 FROM 学生

WHERE 年龄<(SELECT MAX(年龄) FROM 学生 WHERE 单位='自动化学') AND 单位!='自动化学' ORDER BY 学号 DESC

4. 求其他系中比自动化学院学生年龄都小的学生。

USE 学生课程

SELECT 学号,姓名,年龄,单位 FROM 学生

WHERE 年龄<(SELECT MIN(年龄) FROM 学生

WHERE 单位='自动化学') AND 单位!='自动化学' ORDER BY 学号 DESC

5. 求选修了C2课程的学生的姓名。

USE 学生课程 SELECT 姓名 FROM 学生,选课

WHERE 学生.学号=选课.学号 AND 课程号='C2'

6. 求没有选修C2课程的学生的姓名。

USE 学生课程

SELECT DISTINCT 姓名 FROM 学生,选课

WHERE 学生.学号=选课.学号 AND 姓名 not in (SELECT 姓名

FROM 学生,选课 WHERE 学生.学号=选课.学号 AND 选课.课程号='C2')



1


7. 查询选修了C1C2C3C7全部四门课程的学生的姓名。

USE 学生课程 SELECT 姓名 FROM 学生

WHERE 学号 in(SELECT 学号 FROM 选课 WHERE 课程号='C1') AND 学号 in(SELECT 学号 FROM 选课 WHERE 课程号='C2') AND 学号 in(SELECT 学号 FROM 选课 WHERE 课程号='C3') AND 学号 in(SELECT 学号 FROM 选课 WHERE 课程号='C7')

第二种:

USE 学生课程 SELECT 姓名 FROM 学生,选课

WHERE 学生.学号=选课.学号 AND 课程号 in('C1','C2','C3','C7') GROUP BY 姓名

HAVING COUNT(*)=4

8. 求至少选修了学号为S2的学生所选修的全部课程的学生的学号和姓名。

USE 学生课程

SELECT 学生.学号,姓名 FROM 学生,选课

WHERE 学生.学号=选课.学号 AND 选课.课程号 in(SELECT 课程号 FROM 选课 WHERE 学号='S2') AND 选课.学号!='S2'

GROUP BY 学生.学号,姓名 HAVING COUNT(选课.学号)

>=(SELECT COUNT(*)FROM 选课 WHERE 学号='S2') 9. 选修了C1课程,同时也选修C2课程的学生学号。

USE 学生课程 SELECT 学号 FROM 选课

WHERE 课程号='C1' AND 学号 in(SELECT 学号 FROM 选课 WHERE 课程号='C2')

10. 求学生总人数。

USE 学生课程

SELECT COUNT(学号)AS 总人数 FROM 学生

11. 求课程和选修该课程的人数。

USE 学生课程

SELECT 选课.课程号,课程名,COUNT(学号)AS 选修该课程人数 FROM 选课,课程

WHERE 选课.课程号=课程.课程号 GROUP BY 选课.课程号,课程名

12. 求选修课超过3门的学生学号。

USE 学生课程

SELECT 学号,COUNT(课程号)AS 选课数 FROM 选课

GROUP BY 学号

HAVING COUNT(课程号)>3

2


本文来源:https://www.wddqw.com/doc/5230af1d640e52ea551810a6f524ccbff121ca22.html