那如果我要查询显示按数据库这课的成绩由高到低显示所有同学姓名的SQL
时间: 2023-08-23 12:05:59 浏览: 49
假设你的数据库表包括学生表 `student`(包含学生的姓名和学号)和选修表 `sc`(包含学生的学号、课程编号和成绩),课程表 `course`(包含课程编号和课程名称),你可以使用以下 SQL 语句来查询按照数据库这门课程成绩由高到低显示所有同学姓名的结果:
```sql
SELECT s.name, sc.score
FROM student s
JOIN sc ON s.sno = sc.sno
JOIN course c ON sc.cno = c.cno
WHERE c.cname = '数据库'
ORDER BY sc.score DESC;
```
以上 SQL 语句中,我们使用 `JOIN` 将学生表、选修表和课程表关联起来,然后使用 `WHERE` 子句筛选出课程名称为“数据库”的记录。最后使用 `ORDER BY` 子句将查询结果按照成绩由高到低排序。
相关问题
数据库SQL语句查询所有学生的学号、姓名、课程号及成绩。(没有选课的同学的选课信息显示为空)
好的,您的问题是如何查询所有学生的学号、姓名、课程号及成绩,没有选课的同学的选课信息显示为空。
可以使用以下 SQL 语句进行查询:
SELECT S.student_id, S.student_name, C.course_id, SC.score
FROM student S
LEFT JOIN student_course SC ON S.student_id = SC.student_id
LEFT JOIN course C ON SC.course_id = C.course_id;
这个查询语句将会查询出所有学生的学号、姓名、课程号及成绩,如果学生没有选课,则该学生的选课信息显示为空。该查询使用了 LEFT JOIN 来连接 student, student_course 和 course 三张表,来获取所有学生的选课信息。
数据库查询所有课程成绩少于60分的同学学号姓名
可以使用以下SQL语句查询所有课程成绩少于60分的同学学号和姓名:
```
SELECT student.sno, student.sname
FROM student, score
WHERE student.sno = score.sno AND score.score < 60;
```
其中,student表示学生表,score表示成绩表,sno表示学号,sname表示姓名,score表示分数。通过连接两个表,筛选出成绩小于60分的学生的学号和姓名。