SQL 数据库设计与操作:学生管理系统示例
SQL 数据库设计与操作:学生管理系统示例
本文将介绍一个简单的学生管理系统数据库设计,包含学生、教师、班级、课程和成绩等表,并提供一些常见的SQL操作示例。
数据库表结构
假设有一张学生表(t_student),包含学号、姓名、所在班级信息;一张教师表,包括教师编号、教师名称信息;一张班级表(t_class),包含班级编号、班级名称、班主任信息;一张课程表(t_course)包含课程编号、课程名称、授课老师信息;一张成绩表(t_score),包含参加考试的学生学号、课程编号、分数。
表结构创建 SQL 语句
- 创建学生表(t_student):
CREATE TABLE t_student (
id INT AUTO_INCREMENT PRIMARY KEY,
student_id VARCHAR(10) NOT NULL,
student_name VARCHAR(20) NOT NULL,
class_id INT NOT NULL,
FOREIGN KEY (class_id) REFERENCES t_class(id)
);
- 创建教师表:
CREATE TABLE t_teacher (
id INT AUTO_INCREMENT PRIMARY KEY,
teacher_id VARCHAR(10) NOT NULL,
teacher_name VARCHAR(20) NOT NULL
);
- 创建班级表(t_class):
CREATE TABLE t_class (
id INT AUTO_INCREMENT PRIMARY KEY,
class_id VARCHAR(10) NOT NULL,
class_name VARCHAR(20) NOT NULL,
head_teacher INT NOT NULL,
FOREIGN KEY (head_teacher) REFERENCES t_teacher(id)
);
- 创建课程表(t_course):
CREATE TABLE t_course (
id INT AUTO_INCREMENT PRIMARY KEY,
course_id VARCHAR(10) NOT NULL,
course_name VARCHAR(20) NOT NULL,
teacher_id INT NOT NULL,
FOREIGN KEY (teacher_id) REFERENCES t_teacher(id)
);
- 创建成绩表(t_score):
CREATE TABLE t_score (
id INT AUTO_INCREMENT PRIMARY KEY,
student_id VARCHAR(10) NOT NULL,
course_id VARCHAR(10) NOT NULL,
score INT NOT NULL,
FOREIGN KEY (student_id) REFERENCES t_student(student_id),
FOREIGN KEY (course_id) REFERENCES t_course(course_id)
);
常用 SQL 操作示例
- 查询某个班级的所有学生:
SELECT * FROM t_student WHERE class_id = 1;
- 查询某个教师教授的所有课程:
SELECT * FROM t_course WHERE teacher_id = 1;
- 查询某个学生的所有成绩:
SELECT * FROM t_score WHERE student_id = '20190001';
- 查询某门课程的平均成绩:
SELECT AVG(score) FROM t_score WHERE course_id = 'C001';
- 查询某个班级的平均成绩:
SELECT AVG(score) FROM t_score WHERE student_id IN (SELECT student_id FROM t_student WHERE class_id = 1);
本文仅提供简单的示例,实际应用中需要根据具体的业务需求进行数据库设计和 SQL 操作。
原文地址: http://www.cveoy.top/t/topic/lX6i 著作权归作者所有。请勿转载和采集!