mysql语句实验题目7 假设毕业要求为修够80学分,请统计计算机学院内学生距离毕业要求还差多少学分,并按所差分数的升序排列。、
时间: 2024-03-26 07:38:31 浏览: 11
可以使用以下MySQL语句来实现该功能:
```
SELECT student_name, 80 - SUM(credit) AS credits_left
FROM student
WHERE department = '计算机学院'
GROUP BY student_name
HAVING credits_left > 0
ORDER BY credits_left ASC;
```
解释一下这个语句:
首先,我们从 `student` 表中选择学生姓名和已修学分,计算出距离毕业还差多少学分,即 `80 - SUM(credit)`。
然后,我们使用 `WHERE` 子句来筛选出计算机学院的学生。
接着,我们使用 `GROUP BY` 子句按照学生姓名对结果进行分组。
接下来,我们使用 `HAVING` 子句来筛选出还差学分数大于0的学生。
最后,我们使用 `ORDER BY` 子句按照所差学分数的升序排列结果。
注意,在这个语句中,我们假设 `student` 表包含以下列:`student_name`(学生姓名)、`department`(学生所在院系)和 `credit`(学生已修学分)。如果你的表结构不同,请相应地修改语句中的列名。
相关问题
mysql语句 查询所选课程总学分最高的学生信息,显示学号、姓名和学分
好的,你可以使用以下 MySQL 语句查询所选课程总学分最高的学生信息,显示学号、姓名和学分:
```
SELECT s.id, s.name, SUM(c.credit) as total_credit
FROM student s
JOIN sc ON s.id = sc.sid
JOIN course c ON sc.cid = c.id
GROUP BY s.id, s.name
ORDER BY total_credit DESC
LIMIT 1;
```
这个查询语句中,我们使用了 `JOIN` 连接了 `student` 表、`sc` 表和 `course` 表,通过 `GROUP BY` 分组计算出每个学生所选课程的总学分,然后通过 `ORDER BY DESC` 按照总学分降序排列,最后通过 `LIMIT 1` 返回总学分最高的学生信息。
用mysql语句查询如何将课程Java的学分修改为3
可以使用以下SQL语句将课程名为Java的学分修改为3:
```
UPDATE courses SET credits = 3 WHERE name = 'Java';
```
其中,`courses`是表名,`credits`是学分列名,`name`是课程名列名,`Java`是要修改学分的课程名。请注意,执行此操作需要具有修改表数据的权限。