现有关系数据库如下: 学生(学号,姓名,性别,专业)课程(课程号,课程名,学分) 学习(学号,课程号,分数) 请用 SQL 语句实现下列 5 个小题。 ( 1) 检索所有选修了课程号为 'C112"的课程 的学生的学号和分数; ( 2 ) 检 索“英语” 专业学生所学课程的信息, 包括学号、姓名、课程名和分数; ( 3 ) 检 索“数 据 库 原理''课程绩成高千 90 分的所有学生的学号、姓名、专业和分数; ( 4) 检索没学课程号为"C13乎课程的学生信息,包 括学号,姓 名 和专业; ( 5) 检索至少学过课程号为HC135"和' C219"的课程的学生的信息,包 括学号、姓名和专业。 XL课程 号='C135 AND X2课 程号=iC219')
时间: 2024-03-22 13:40:32 浏览: 204
查询数据库中所有有成绩的学生的学号和课程号
4星 · 用户满意度95%
1. 检索所有选修了课程号为 'C112' 的课程的学生的学号和分数:
```
SELECT 学号, 分数
FROM 学习
WHERE 课程号 = 'C112';
```
2. 检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数:
```
SELECT 学生.学号, 学生.姓名, 课程.课程名, 学习.分数
FROM 学生, 课程, 学习
WHERE 学生.专业 = '英语' AND 学生.学号 = 学习.学号 AND 课程.课程号 = 学习.课程号;
```
3. 检索“数据库原理”课程绩成高于 90 分的所有学生的学号、姓名、专业和分数:
```
SELECT 学生.学号, 学生.姓名, 学生.专业, 学习.分数
FROM 学生, 学习
WHERE 学生.学号 = 学习.学号 AND 学习.课程号 = 'C123' AND 学习.分数 > 90;
```
4. 检索没学课程号为 "C13" 的课程的学生信息,包括学号、姓名和专业:
```
SELECT 学生.学号, 学生.姓名, 学生.专业
FROM 学生
WHERE 学生.学号 NOT IN (SELECT 学号 FROM 学习 WHERE 课程号 = 'C13');
```
5. 检索至少学过课程号为 "C135" 和 "C219" 的课程的学生的信息,包括学号、姓名和专业:
```
SELECT 学生.学号, 学生.姓名, 学生.专业
FROM 学生, 学习
WHERE 学生.学号 = 学习.学号 AND 学习.课程号 IN ('C135', 'C219')
GROUP BY 学生.学号, 学生.姓名, 学生.专业
HAVING COUNT(DISTINCT 学习.课程号) = 2;
```
以上 SQL 语句分别实现了给定的五个问题的查询操作。其中,第 1 题使用了一个简单的 WHERE 子句,第 2 题使用了多个表之间的 JOIN 操作,第 3 题使用了 WHERE 子句和比较运算符,第 4 题使用了子查询和 NOT IN 运算符,第 5 题使用了 GROUP BY 和 HAVING 子句来实现条件的筛选。
阅读全文