上大学数据库上机作业
《数据库系统与应用》上机习题****************************************
******************************************************
***
第五部分、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 姓名
评论0