sql 根据实验2创建的s、c和sc表完成如下查询: s(sno,sname,age,sex,sdept,major c(cno,cname,cpno,teacher,credit) sc(sno,cno,grade) 1查询学生选课表中的全部数据。 2 查询计算机系学生的姓名,年龄。 3查询成绩在70-80分之间的学生的学号课程号和成绩。 4 查询计算机系年龄在18-20之间且性别为“男”的学生的姓名和年龄。 5 查询课程号为“C01”的课程的最高分数。 6查询计算机系学生的最大年龄和最小年龄。 7统计每个系的学生人数。 8统计每门课程的选课人数和考试最高分。 9查询每个学生的选课门数和考试总成绩,并报 数的升序显示结果。 写笔记 10查询总成绩超过200分的学生,要求列出学号,总成绩。 11查询选修了“C02”的学生的姓名和所在系。 12 查询成绩在80分以上的学生的姓名,课程号和成绩并按成绩的降序排列。 13 查询哪些课程没有人选修,要求列出课程号和课程名。14 查询缺少了成绩的学生的学号和课程号。 15查询数学系学生的学号和姓名。 16 查询选修了课程的学生学号 17 查询选修了数学课的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。 18查询选修数学课其且成绩在80-90之间的学生学号和成绩,并将成绩乘以系数0.8输出。 19 查询数学系或计算机系姓刘的学生的信息。
时间: 2023-11-16 12:09:19 浏览: 588
1. 查询学生选课表中的全部数据。
```
SELECT * FROM sc;
```
2. 查询计算机系学生的姓名,年龄。
```
SELECT s.sname, s.age FROM s WHERE s.sdept = '计算机系';
```
3. 查询成绩在70-80分之间的学生的学号课程号和成绩。
```
SELECT sc.sno, sc.cno, sc.grade FROM sc WHERE sc.grade BETWEEN 70 AND 80;
```
4. 查询计算机系年龄在18-20之间且性别为“男”的学生的姓名和年龄。
```
SELECT s.sname, s.age FROM s WHERE s.sdept = '计算机系' AND s.age BETWEEN 18 AND 20 AND s.sex = '男';
```
5. 查询课程号为“C01”的课程的最高分数。
```
SELECT MAX(sc.grade) FROM sc WHERE sc.cno = 'C01';
```
6. 查询计算机系学生的最大年龄和最小年龄。
```
SELECT MAX(s.age), MIN(s.age) FROM s WHERE s.sdept = '计算机系';
```
7. 统计每个系的学生人数。
```
SELECT s.sdept, COUNT(*) FROM s GROUP BY s.sdept;
```
8. 统计每门课程的选课人数和考试最高分。
```
SELECT sc.cno, COUNT(*), MAX(sc.grade) FROM sc GROUP BY sc.cno;
```
9. 查询每个学生的选课门数和考试总成绩,并按升序显示结果。
```
SELECT sc.sno, COUNT(sc.cno), SUM(sc.grade) FROM sc GROUP BY sc.sno ORDER BY SUM(sc.grade) ASC;
```
10. 查询总成绩超过200分的学生,要求列出学号,总成绩。
```
SELECT sc.sno, SUM(sc.grade) FROM sc GROUP BY sc.sno HAVING SUM(sc.grade) > 200;
```
11. 查询选修了“C02”的学生的姓名和所在系。
```
SELECT s.sname, s.sdept FROM s, sc WHERE s.sno = sc.sno AND sc.cno = 'C02';
```
12. 查询成绩在80分以上的学生的姓名,课程号和成绩并按成绩的降序排列。
```
SELECT s.sname, sc.cno, sc.grade FROM s, sc WHERE s.sno = sc.sno AND sc.grade > 80 ORDER BY sc.grade DESC;
```
13. 查询哪些课程没有人选修,要求列出课程号和课程名。
```
SELECT c.cno, c.cname FROM c WHERE NOT EXISTS (SELECT * FROM sc WHERE c.cno = sc.cno);
```
14. 查询缺少了成绩的学生的学号和课程号。
```
SELECT sc.sno, sc.cno FROM sc WHERE sc.grade IS NULL;
```
15. 查询数学系学生的学号和姓名。
```
SELECT s.sno, s.sname FROM s WHERE s.sdept = '数学系';
```
16. 查询选修了课程的学生学号。
```
SELECT DISTINCT sc.sno FROM sc;
```
17. 查询选修了数学课的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
```
SELECT sc.sno, sc.grade FROM sc, c WHERE sc.cno = c.cno AND c.cname = '数学' ORDER BY sc.grade DESC, sc.sno ASC;
```
18. 查询选修数学课其且成绩在80-90之间的学生学号和成绩,并将成绩乘以系数0.8输出。
```
SELECT sc.sno, sc.grade * 0.8 FROM sc, c WHERE sc.cno = c.cno AND c.cname = '数学' AND sc.grade BETWEEN 80 AND 90;
```
19. 查询数学系或计算机系姓刘的学生的信息。
```
SELECT * FROM s WHERE s.sdept IN ('数学系', '计算机系') AND s.sname LIKE '刘%';
```
阅读全文