用sql语句设置一个、学生成绩管理系统 系统功能基本要求 学生信息,学号、姓名、性别、专业、年级等;学生成绩信息,包括学号、课程编号、课程名称、分数等。课程信息,包括课程编号、课程名称、任课教师等。对学生成绩的查询(不能任意修改)、统计,并将结果输出
时间: 2023-10-20 22:20:21 浏览: 41
首先创建三个表,分别为students(学生信息表)、courses(课程信息表)和scores(学生成绩信息表):
```
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(20),
gender VARCHAR(10),
major VARCHAR(50),
grade VARCHAR(10)
);
CREATE TABLE courses (
id INT PRIMARY KEY,
name VARCHAR(50),
teacher VARCHAR(20)
);
CREATE TABLE scores (
id INT PRIMARY KEY,
student_id INT,
course_id INT,
score INT,
FOREIGN KEY (student_id) REFERENCES students(id),
FOREIGN KEY (course_id) REFERENCES courses(id)
);
```
接下来插入一些示例数据,以便测试查询和统计功能:
```
INSERT INTO students VALUES (1, '张三', '男', '计算机科学与技术', '2017');
INSERT INTO students VALUES (2, '李四', '女', '金融学', '2018');
INSERT INTO students VALUES (3, '王五', '男', '英语', '2019');
INSERT INTO courses VALUES (1, '计算机网络', '张老师');
INSERT INTO courses VALUES (2, '金融学概论', '李老师');
INSERT INTO courses VALUES (3, '英语口语', '王老师');
INSERT INTO scores VALUES (1, 1, 1, 80);
INSERT INTO scores VALUES (2, 1, 2, 90);
INSERT INTO scores VALUES (3, 2, 2, 85);
INSERT INTO scores VALUES (4, 3, 3, 95);
INSERT INTO scores VALUES (5, 3, 1, 75);
```
查询学生成绩可以使用以下SQL语句:
```
SELECT students.name, courses.name, scores.score
FROM scores
INNER JOIN students ON scores.student_id = students.id
INNER JOIN courses ON scores.course_id = courses.id;
```
以上SQL语句会返回一个包含学生姓名、课程名称和分数的结果集,例如:
```
+--------+---------------+-------+
| name | name | score |
+--------+---------------+-------+
| 张三 | 计算机网络 | 80 |
| 张三 | 金融学概论 | 90 |
| 李四 | 金融学概论 | 85 |
| 王五 | 英语口语 | 95 |
| 王五 | 计算机网络 | 75 |
+--------+---------------+-------+
```
统计学生平均成绩可以使用以下SQL语句:
```
SELECT students.name, AVG(scores.score) AS avg_score
FROM scores
INNER JOIN students ON scores.student_id = students.id
GROUP BY students.id;
```
以上SQL语句会返回一个包含学生姓名和平均分数的结果集,例如:
```
+--------+----------+
| name | avg_score|
+--------+----------+
| 张三 | 85 |
| 李四 | 85 |
| 王五 | 85 |
+--------+----------+
```
注意:以上SQL语句仅为示例,实际应用中需要根据具体需求进行调整。