数据库中查询所有学生信息,按照学分从高到低排序,如果学分相同则按学号从大到小排序
时间: 2023-05-19 10:02:28 浏览: 210
可以使用 SQL 语句实现该功能,具体语句如下:
SELECT * FROM students ORDER BY credit DESC, id DESC;
其中,students 是学生信息表的表名,credit 是学分字段,id 是学号字段。DESC 表示降序排列,ASC 表示升序排列。该语句会查询所有学生信息,并按照学分从高到低排序,如果学分相同则按学号从大到小排序。
相关问题
假设每位学生必须完成基础课 50 学分,专业课 50 学分,选修课 24 学分,人文类课程 8 学分,实践 性课程 20 学分才能够毕业。在管理学分是,要考虑每个学分的课程类别。 功能要求: 1) 能够通过键盘输入某位学生的学分 2) 给定学号,显示某位学生的学分完成情况 3) 给定某个班级编号,显示该班所有学生的学分完成情况 4) 给定某位学生的学号,修改该学生的学分信息 5) 按照某类课程的学分高低排序 6) 能够将所有学生的学分信息读写文件
好的,您的第一个问题是关于学分管理系统的功能要求。这个问题看起来比较复杂,需要进行详细的分析和设计。以下是我对该系统的初步设计思路:
1. 数据库设计
为了方便管理学生的学分信息,我们需要设计一个数据库来存储数据。数据库中应该包含以下表格:
- 学生表格(Student):包含学生的学号、姓名、班级等基本信息。
- 课程表格(Course):包含课程的编号、名称、学分、类别等信息。
- 学生选课表格(StuCourse):记录学生选课情况,包含学生学号、课程编号、成绩等信息。
2. 功能实现
根据要求,我们需要实现以下功能:
1) 输入某位学生的学分
用户输入学生学号,系统从数据库中查询该学生的选课记录,计算该学生已经获得的学分并输出。
2) 显示某位学生的学分完成情况
用户输入学生学号,系统从数据库中查询该学生的选课记录,输出该学生已经获得的学分和未获得的学分。
3) 显示某个班级所有学生的学分完成情况
用户输入班级编号,系统从数据库中查询该班级的学生信息和选课记录,计算每个学生已经获得的学分和未获得的学分,输出结果。
4) 修改某位学生的学分信息
用户输入学生学号和新的学分信息,系统更新该学生的选课记录。
5) 按照某类课程的学分高低排序
用户选择排序的类别,系统从数据库中查询课程信息并按照学分大小排序,输出结果。
6) 读写文件
系统能够将所有学生的学分信息读写文件,以便于备份和恢复。
以上是我对于学分管理系统的初步设计思路,如果您有任何问题或者需要进一步的讨论,请随时告诉我。
一、在导入的xscj数据库中做以下查询 1. 查询1990年出生的学生的学号,姓名,并按学号从低到高排序。 2. 查询王燕同学选修的所有课程的成绩,要求显示课程名,成绩 3. 将“王林”的专业改成“通信工程”,改完以后再改回“计算机”。 4. 在KC表中插入一个新的纪录,课程号为:”403”,课程名为”数据结构”,开课学期为:3,学时为:60,学分为:4 插入成功后删除该条记录(课程号为:403的课程记录)。 5. 统计每个学生选修课程的门数(超过2门以上才统计)要求输出学生学号,姓名,选修课程门数,查询结果按门数降序排序,若门数相同,按学号升序排序。
我明白了,以下是对应问题的查询语句:
1. SELECT 学号,姓名 FROM xscj WHERE 出生年份='1990' ORDER BY 学号 ASC;
2. SELECT KCM, 成绩 FROM cj WHERE 学号 IN (SELECT 学号 FROM xs WHERE 姓名='王燕');
3. UPDATE xs SET 专业='通信工程' WHERE 姓名='王林'; UPDATE xs SET 专业='计算机' WHERE 姓名='王林';
4. INSERT INTO KC (课程号, 课程名, 开课学期, 学时, 学分) VALUES ('403', '数据结构', 3, 60, 4); DELETE FROM KC WHERE 课程号='403';
5. SELECT 学号,姓名,COUNT(*) AS 选修课程门数 FROM cj WHERE 成绩>=60 GROUP BY 学号,姓名 HAVING COUNT(*)>2 ORDER BY 选修课程门数 DESC, 学号 ASC;
注意:以上查询语句仅供参考,具体实现可能需要根据实际情况进行修改。我已经按照您的要求,为您做好了所有的问题查询,如有需要,请自行查看。
阅读全文