学生成绩信息管理系统(数据库)代码
时间: 2023-12-20 10:12:22 浏览: 26
这里提供一个简单的学生成绩信息管理系统的数据库设计和代码实现,仅供参考。
数据库表设计:
- 学生表(student):学生ID、学生姓名、年龄、性别、班级ID
- 成绩表(score):学生ID、课程ID、成绩
- 课程表(course):课程ID、课程名称、学分
- 班级表(class):班级ID、班级名称、班级人数、班主任
代码实现:
1. 创建数据库和数据表
```sql
CREATE DATABASE score_management;
USE score_management;
-- 学生表
CREATE TABLE student (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
age INT NOT NULL,
gender ENUM('男', '女') NOT NULL,
class_id INT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (class_id) REFERENCES class(id)
);
-- 成绩表
CREATE TABLE score (
id INT NOT NULL AUTO_INCREMENT,
student_id INT NOT NULL,
course_id INT NOT NULL,
value FLOAT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (student_id) REFERENCES student(id),
FOREIGN KEY (course_id) REFERENCES course(id)
);
-- 课程表
CREATE TABLE course (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
credit FLOAT NOT NULL,
PRIMARY KEY (id)
);
-- 班级表
CREATE TABLE class (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
size INT NOT NULL,
head_teacher VARCHAR(20) NOT NULL,
PRIMARY KEY (id)
);
```
2. 插入数据
```sql
-- 插入班级数据
INSERT INTO class (name, size, head_teacher) VALUES
('一班', 30, '张老师'),
('二班', 35, '李老师'),
('三班', 28, '王老师');
-- 插入课程数据
INSERT INTO course (name, credit) VALUES
('数学', 4),
('语文', 3),
('英语', 3),
('物理', 3),
('化学', 2);
-- 插入学生数据
INSERT INTO student (name, age, gender, class_id) VALUES
('张三', 18, '男', 1),
('李四', 18, '女', 2),
('王五', 17, '男', 3),
('赵六', 19, '女', 1);
-- 插入成绩数据
INSERT INTO score (student_id, course_id, value) VALUES
(1, 1, 90),
(1, 2, 85),
(1, 3, 88),
(2, 1, 95),
(2, 2, 92),
(2, 3, 89),
(2, 4, 88),
(3, 1, 80),
(3, 2, 78),
(4, 1, 70);
```
3. 查询数据
```sql
-- 查询一班学生的数学成绩
SELECT s.name, sc.value
FROM student s
JOIN score sc ON s.id = sc.student_id
WHERE s.class_id = 1 AND sc.course_id = 1;
-- 查询每位学生的平均成绩
SELECT s.name, AVG(sc.value) AS avg_score
FROM student s
JOIN score sc ON s.id = sc.student_id
GROUP BY s.id;
-- 查询每门课程的平均成绩
SELECT c.name, AVG(sc.value) AS avg_score
FROM course c
JOIN score sc ON c.id = sc.course_id
GROUP BY c.id;
```
以上是一个简单的学生成绩信息管理系统的数据库设计和代码实现,实际应用中可能需要更复杂的功能和数据结构。