查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩的降序排列结果。 2.查询哪些学生的年龄相同,要求列出年龄相同的学生的姓名和年龄
时间: 2023-11-16 21:21:13 浏览: 33
好的,这是两个不同的问题,我分别回答。
1. 查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩的降序排列结果。
假设你使用的是MySQL数据库,那么可以使用如下SQL语句:
```
SELECT s.name, c.course_id, sc.score
FROM student s, course c, score sc
WHERE s.student_id = sc.student_id AND c.course_id = sc.course_id AND sc.score >= 80
ORDER BY sc.score DESC;
```
这条SQL语句使用了三个表:student(学生表)、course(课程表)和score(成绩表)。首先使用WHERE子句将这三个表连接起来,并筛选出成绩大于等于80分的记录。然后使用ORDER BY子句按照成绩的降序排列结果。
2. 查询哪些学生的年龄相同,要求列出年龄相同的学生的姓名和年龄。
这个问题可以使用如下SQL语句:
```
SELECT s1.name, s1.age, s2.name, s2.age
FROM student s1, student s2
WHERE s1.student_id < s2.student_id AND s1.age = s2.age
ORDER BY s1.age;
```
这条SQL语句使用了两个student表的自连接。首先使用WHERE子句将这两个表连接起来,要求s1的学生ID小于s2的学生ID(避免重复记录),并且两个学生的年龄相同。然后使用ORDER BY子句按照年龄排序结果。这条SQL语句会返回每一对年龄相同的学生的姓名和年龄,例如:
```
+--------+-----+--------+-----+
| name | age | name | age |
+--------+-----+--------+-----+
| Alice | 18 | Bob | 18 |
| David | 20 | Frank | 20 |
| Emily | 22 | George | 22 |
+--------+-----+--------+-----+
```
希望这些回答能够帮到你!