具体代码用MySql实现
时间: 2024-02-21 15:58:05 浏览: 20
以下是一个使用 MySQL 实现的学生成绩管理系统的示例代码,包括数据库的创建和数据表的定义:
```
-- 创建学生成绩管理系统数据库
CREATE DATABASE IF NOT EXISTS student_score_management;
-- 使用学生成绩管理系统数据库
USE student_score_management;
-- 创建学生信息表
CREATE TABLE IF NOT EXISTS student (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
gender ENUM('男', '女') NOT NULL,
class_id INT NOT NULL,
FOREIGN KEY (class_id) REFERENCES class(id)
);
-- 创建课程信息表
CREATE TABLE IF NOT EXISTS course (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
teacher_id INT NOT NULL,
FOREIGN KEY (teacher_id) REFERENCES teacher(id)
);
-- 创建成绩信息表
CREATE TABLE IF NOT EXISTS score (
id INT AUTO_INCREMENT PRIMARY KEY,
student_id INT NOT NULL,
course_id INT NOT NULL,
score INT NOT NULL,
FOREIGN KEY (student_id) REFERENCES student(id),
FOREIGN KEY (course_id) REFERENCES course(id)
);
-- 创建班级信息表
CREATE TABLE IF NOT EXISTS class (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
major VARCHAR(50) NOT NULL,
grade INT NOT NULL
);
-- 创建教师信息表
CREATE TABLE IF NOT EXISTS teacher (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
gender ENUM('男', '女') NOT NULL,
title_id INT NOT NULL,
FOREIGN KEY (title_id) REFERENCES title(id)
);
-- 创建选课信息表
CREATE TABLE IF NOT EXISTS select_course (
id INT AUTO_INCREMENT PRIMARY KEY,
student_id INT NOT NULL,
course_id INT NOT NULL,
FOREIGN KEY (student_id) REFERENCES student(id),
FOREIGN KEY (course_id) REFERENCES course(id)
);
-- 创建学院信息表
CREATE TABLE IF NOT EXISTS college (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
dean VARCHAR(50) NOT NULL
);
-- 创建学科信息表
CREATE TABLE IF NOT EXISTS subject (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
introduction TEXT
);
-- 创建教师授课表
CREATE TABLE IF NOT EXISTS teach_course (
id INT AUTO_INCREMENT PRIMARY KEY,
teacher_id INT NOT NULL,
course_id INT NOT NULL,
FOREIGN KEY (teacher_id) REFERENCES teacher(id),
FOREIGN KEY (course_id) REFERENCES course(id)
);
-- 创建职称信息表
CREATE TABLE IF NOT EXISTS title (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
level ENUM('初级', '中级', '高级') NOT NULL
);
-- 创建学生选课情况表
CREATE VIEW IF NOT EXISTS student_course AS
SELECT s.name AS student_name, c.name AS course_name, sc.score
FROM student s
JOIN select_course sc ON s.id = sc.student_id
JOIN course c ON sc.course_id = c.id
JOIN score s2 ON s.id = s2.student_id AND c.id = s2.course_id;
-- 创建教师授课情况表
CREATE VIEW IF NOT EXISTS teacher_course AS
SELECT t.name AS teacher_name, c.name AS course_name, COUNT(s.id) AS student_num
FROM teacher t
JOIN teach_course tc ON t.id = tc.teacher_id
JOIN course c ON tc.course_id = c.id
JOIN select_course sc ON c.id = sc.course_id
JOIN student s ON sc.student_id = s.id
GROUP BY t.id, c.id;
```
在上面的代码中,首先创建了名为 student_score_management 的数据库,并在之后的代码中使用了该数据库。接着,定义了学生信息表、课程信息表、成绩信息表、班级信息表、教师信息表、选课信息表、学院信息表、学科信息表、教师授课表、职称信息表等10个数据表,并定义了两个视图(学生选课情况表和教师授课情况表)。
这些数据表和视图的定义可以根据实际需求进行修改和调整。同时,还需要针对每个数据表定义相应的增删改查操作,以及各个数据表之间的关系和约束。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)