查询选修了“数据库原理与应用”课程的学生姓名。
时间: 2023-11-24 09:52:32 浏览: 149
以下是查询选修了“数据库原理与应用”课程的学生姓名的SQL语句:
```
SELECT s.sname AS '姓名'
FROM student AS s, student_course AS sc, course_class AS cc, course AS c
WHERE s.sno = sc.sno AND sc.ccno = cc.ccno AND cc.cno = c.cno AND c.cname = '数据库原理与应用'
```
相关问题
3)查询所有姓“王”的学生的信息。 4)统计每门课程的选课人数和最高分。 5)查询选修了2门及2门以上课程的学生的学号。 6)查询选修“C03”课程的学生的平均年龄。 7)查询选修课程名为“数据库原理及应用”的学生的学号和姓名。 8)查询同时选修了“C02”和“C03”课程的学生的学号。 9)查询成绩比该课程平均成绩高的学生的学号及成绩。 10)把“钱军”老师所讲授课程的选课记录全部删除。
3)查询所有姓“王”的学生的信息。
```
SELECT * FROM student WHERE stuName LIKE '王%';
```
4)统计每门课程的选课人数和最高分。
```
SELECT course.couName, COUNT(*) AS 选课人数, MAX(score.score) AS 最高分 FROM course, score WHERE course.couID = score.couID GROUP BY course.couName;
```
5)查询选修了2门及2门以上课程的学生的学号。
```
SELECT stuID FROM score GROUP BY stuID HAVING COUNT(DISTINCT couID) >= 2;
```
6)查询选修“C03”课程的学生的平均年龄。
```
SELECT AVG(age) AS 平均年龄 FROM student WHERE stuID IN (SELECT stuID FROM score WHERE couID = 'C03');
```
7)查询选修课程名为“数据库原理及应用”的学生的学号和姓名。
```
SELECT student.stuID, student.stuName FROM student, course, score WHERE student.stuID = score.stuID AND course.couID = score.couID AND course.couName = '数据库原理及应用';
```
8)查询同时选修了“C02”和“C03”课程的学生的学号。
```
SELECT stuID FROM score WHERE couID = 'C02' INTERSECT SELECT stuID FROM score WHERE couID = 'C03';
```
9)查询成绩比该课程平均成绩高的学生的学号及成绩。
```
SELECT score.stuID, score.score FROM score, (SELECT couID, AVG(score) AS avgScore FROM score GROUP BY couID) AS avgTable WHERE score.couID = avgTable.couID AND score.score > avgTable.avgScore;
```
10)把“钱军”老师所讲授课程的选课记录全部删除。
```
DELETE FROM score WHERE couID IN (SELECT couID FROM course WHERE teaName = '钱军');
```
4.嵌套查询 利用T-SQL语句在JXGL数据库中实现其嵌套查询操作: (1)查询选修了“离散数学”的学生的学号和姓名。 (2)查询课程号为C2的课程的成绩高于张林的学生的学号和成绩。 (3)查询其他系中年龄小于计算机科学系(CS)中年龄最大者的学生。 (4)查询其他系中比计算机科学系(CS)的学生年龄都小的学生。 (5)查询和“王洪敏”的“数据库原理及应用”课程分数相同的学生的学号。 (6)查询没有选修C2课程的学生的姓名。 5.组合查询和统计查询 利用T-SQL语句在JXGL数据库中实现其数据组合查询和统计查询操作: (1)查找选修“计算机基础”课程的学生成绩比此课程的平均成绩高的学生的学号和成绩。 (2)查询选修“计算机基础”课程的学生的平均成绩。 (3)查询年龄大于女同学平均年龄的男同学的姓名和年龄。 (4)列出各系学生的总人数,并按人数进行降序排列。 (5)统计各系各门课程的平均成绩。 (6)查询选修“计算机基础”和“离散数学”的学生的学号和平均成绩。
先前提醒一下,由于我并不知道你的数据库表结构和数据,以下的语句只是一个参考,需要根据实际情况进行修改和调整。
4. 嵌套查询:
(1) 查询选修了“离散数学”的学生的学号和姓名。
```sql
SELECT 学号, 姓名
FROM 学生
WHERE 学号 IN (SELECT 学号 FROM 成绩 WHERE 课程号 = 'C1');
```
(2) 查询课程号为C2的课程的成绩高于张林的学生的学号和成绩。
```sql
SELECT 学号, 成绩
FROM 成绩
WHERE 课程号 = 'C2' AND 成绩 > (SELECT 成绩 FROM 成绩 WHERE 学号 = '张林' AND 课程号 = 'C2');
```
(3) 查询其他系中年龄小于计算机科学系(CS)中年龄最大者的学生。
```sql
SELECT 学号, 姓名, 年龄, 所在系
FROM 学生
WHERE 年龄 < (SELECT MAX(年龄) FROM 学生 WHERE 所在系 = 'CS') AND 所在系 <> 'CS';
```
(4) 查询其他系中比计算机科学系(CS)的学生年龄都小的学生。
```sql
SELECT 学号, 姓名, 年龄, 所在系
FROM 学生
WHERE 年龄 < (SELECT MIN(年龄) FROM 学生 WHERE 所在系 = 'CS') AND 所在系 <> 'CS';
```
(5) 查询和“王洪敏”的“数据库原理及应用”课程分数相同的学生的学号。
```sql
SELECT 学号
FROM 成绩
WHERE 成绩 = (SELECT 成绩 FROM 成绩 WHERE 学号 = '王洪敏' AND 课程号 = 'C3') AND 课程号 = 'C3' AND 学号 <> '王洪敏';
```
(6) 查询没有选修C2课程的学生的姓名。
```sql
SELECT 姓名
FROM 学生
WHERE 学号 NOT IN (SELECT 学号 FROM 成绩 WHERE 课程号 = 'C2');
```
5. 组合查询和统计查询:
(1) 查找选修“计算机基础”课程的学生成绩比此课程的平均成绩高的学生的学号和成绩。
```sql
SELECT 学号, 成绩
FROM 成绩
WHERE 课程号 = 'C1' AND 成绩 > (SELECT AVG(成绩) FROM 成绩 WHERE 课程号 = 'C1');
```
(2) 查询选修“计算机基础”课程的学生的平均成绩。
```sql
SELECT AVG(成绩)
FROM 成绩
WHERE 课程号 = 'C1';
```
(3) 查询年龄大于女同学平均年龄的男同学的姓名和年龄。
```sql
SELECT 姓名, 年龄
FROM 学生
WHERE 性别 = '男' AND 年龄 > (SELECT AVG(年龄) FROM 学生 WHERE 性别 = '女');
```
(4) 列出各系学生的总人数,并按人数进行降序排列。
```sql
SELECT 所在系, COUNT(*) AS 总人数
FROM 学生
GROUP BY 所在系
ORDER BY 总人数 DESC;
```
(5) 统计各系各门课程的平均成绩。
```sql
SELECT 所在系, 课程号, AVG(成绩) AS 平均成绩
FROM 成绩
JOIN 学生 ON 成绩.学号 = 学生.学号
GROUP BY 所在系, 课程号;
```
(6) 查询选修“计算机基础”和“离散数学”的学生的学号和平均成绩。
```sql
SELECT 学号, AVG(成绩) AS 平均成绩
FROM 成绩
WHERE 课程号 IN ('C1', 'C2')
GROUP BY 学号
HAVING COUNT(*) = 2;
```
阅读全文