数据库编程设计题
网站编辑2023-05-08 16:03:40353
题目:设计一个简单的学生信息管理系统,包括学生基本信息(学号、姓名、性别、年龄、班级)、课程信息(课程编号、课程名称、学分)、成绩信息(学号、课程编号、成绩)。

| 字段名 | 数据类型 | 长度 | 是否主键 | 是否可为空 | 描述 |
| --- | --- | --- | --- | --- | --- |
| id | int | 11 | 是 | 否 | 学号 |
| name | varchar | 20 | 否 | 否 | 姓名 |
| gender | varchar | 10 | 否 | 否 | 性别 |
| age | int | 11 | 否 | 否 | 年龄 |
| class | varchar | 20 | 否 | 否 | 班级 |
| 字段名 | 数据类型 | 长度 | 是否主键 | 是否可为空 | 描述 |
| --- | --- | --- | --- | --- | --- |
| id | int | 11 | 是 | 否 | 课程编号 |
| name | varchar | 20 | 否 | 否 | 课程名称 |
| credit | int | 11 | 否 | 否 | 学分 |
| 字段名 | 数据类型 | 长度 | 是否主键 | 是否可为空 | 描述 |
| --- | --- | --- | --- | --- | --- |
| id | int | 11 | 否 | 否 | 自增主键 |
| student_id | int | 11 | 否 | 否 | 学号 |
| course_id | int | 11 | 否 | 否 | 课程编号 |
| score | int | 11 | 否 | 否 | 成绩 |
```sql
-- 插入学生信息
INSERT INTO student (id, name, gender, age, class) VALUES
(1, '张三', '男', 20, '计算机科学与技术'),
(2, '李四', '女', 21, '软件工程'),
(3, '王五', '男', 19, '信息安全');
-- 插入课程信息
INSERT INTO course (id, name, credit) VALUES
(1, '数据库', 3),
(2, '操作系统', 4),
(3, '计算机网络', 3);
-- 插入成绩信息
INSERT INTO score (student_id, course_id, score) VALUES
(1, 1, 90),
(1, 2, 85),
(1, 3, 92),
(2, 1, 88),
(2, 2, 90),
(2, 3, 87),
(3, 1, 92),
(3, 2, 85),
(3, 3, 90);
```
```sql
-- 查询所有学生信息
SELECT * FROM student;
-- 查询所有课程信息
SELECT * FROM course;
-- 查询所有成绩信息
SELECT * FROM score;
-- 查询某个学生的成绩信息
SELECT s.name, c.name, sc.score FROM student s
JOIN score sc ON s.id = sc.student_id
JOIN course c ON c.id = sc.course_id
WHERE s.id = 1;
```
```sql
-- 更新某个学生的班级信息
UPDATE student SET class = '计算机科学与技术1班' WHERE id = 1;
-- 更新某个学生的某门课程成绩
UPDATE score SET score = 95 WHERE student_id = 1 AND course_id = 1;
```
```sql
-- 删除某个学生的成绩信息
DELETE FROM score WHERE student_id = 1;
-- 删除某个课程的成绩信息
DELETE FROM score WHERE course_id = 1;
```







