MySQL实战:创建学校数据库及学生、教师、分数表的关联关系
★想要掌握MySQL数据库的创建和表之间的关联?这篇文章带你一步步实现!
”
在数据库学习和开发中,创建一个完整的数据库并建立表之间的关联关系是非常重要的技能。今天,我们将一起创建一个名为school
的数据库,并在其中创建学生表
、教师表
和分数表
,同时建立三张表之间的关联关系。
📌 一、创建数据库 school
首先,我们需要创建一个名为school
的数据库。
SQL语句:
CREATE DATABASE school;
使用数据库:
USE school;
📌 二、创建学生表 student
学生表用于存储学生的基本信息。
表结构设计:
student_id
:学生ID,主键,自增name
:姓名,VARCHAR(50)age
:年龄,INTgender
:性别,ENUM('男', '女')class_id
:班级ID,外键
SQL语句:
CREATE TABLE student (
student_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT,
gender ENUM('男', '女'),
class_id INT
);
📌 三、创建教师表 teacher
教师表用于存储教师的基本信息。
表结构设计:
teacher_id
:教师ID,主键,自增name
:姓名,VARCHAR(50)subject
:教授科目,VARCHAR(50)
SQL语句:
CREATE TABLE teacher (
teacher_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
subject VARCHAR(50)
);
📌 四、创建分数表 score
分数表用于记录学生的考试成绩。
表结构设计:
score_id
:分数ID,主键,自增student_id
:学生ID,外键subject
:科目,VARCHAR(50)score
:成绩,DECIMAL(5,2)teacher_id
:教师ID,外键
SQL语句:
CREATE TABLE score (
score_id INT AUTO_INCREMENT PRIMARY KEY,
student_id INT,
subject VARCHAR(50),
score DECIMAL(5,2),
teacher_id INT
);
📌 五、建立表之间的关联关系
1. 学生表与分数表的关系
关系类型:一对多 说明:一个学生可以有多条分数记录 操作:在 score
表中,student_id
作为外键引用student
表的student_id
SQL语句:
ALTER TABLE score
ADD CONSTRAINT fk_student
FOREIGN KEY (student_id)
REFERENCES student(student_id)
ON DELETE CASCADE
ON UPDATE CASCADE;
2. 教师表与分数表的关系
关系类型:一对多 说明:一个教师可以给多个学生评分 操作:在 score
表中,teacher_id
作为外键引用teacher
表的teacher_id
SQL语句:
ALTER TABLE score
ADD CONSTRAINT fk_teacher
FOREIGN KEY (teacher_id)
REFERENCES teacher(teacher_id)
ON DELETE SET NULL
ON UPDATE CASCADE;
📌 六、完整SQL脚本
为了方便大家实践,下面提供完整的SQL脚本,一键创建数据库和表,并建立关联关系。
-- 创建数据库
CREATE DATABASE school;
USE school;
-- 创建学生表
CREATE TABLE student (
student_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT,
gender ENUM('男', '女'),
class_id INT
);
-- 创建教师表
CREATE TABLE teacher (
teacher_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
subject VARCHAR(50)
);
-- 创建分数表
CREATE TABLE score (
score_id INT AUTO_INCREMENT PRIMARY KEY,
student_id INT,
subject VARCHAR(50),
score DECIMAL(5,2),
teacher_id INT
);
-- 添加外键约束:score.student_id -> student.student_id
ALTER TABLE score
ADD CONSTRAINT fk_student
FOREIGN KEY (student_id)
REFERENCES student(student_id)
ON DELETE CASCADE
ON UPDATE CASCADE;
-- 添加外键约束:score.teacher_id -> teacher.teacher_id
ALTER TABLE score
ADD CONSTRAINT fk_teacher
FOREIGN KEY (teacher_id)
REFERENCES teacher(teacher_id)
ON DELETE SET NULL
ON UPDATE CASCADE;
📌 七、验证关联关系
插入一些数据,验证表之间的关联是否正确。
插入学生数据:
INSERT INTO student (name, age, gender) VALUES
('张三', 18, '男'),
('李四', 17, '女');
插入教师数据:
INSERT INTO teacher (name, subject) VALUES
('王老师', '数学'),
('李老师', '英语');
插入分数数据:
INSERT INTO score (student_id, subject, score, teacher_id) VALUES
(1, '数学', 95.5, 1),
(2, '英语', 88.0, 2);
查询分数表,查看关联数据:
SELECT s.score_id, stu.name AS student_name, s.subject, s.score, t.name AS teacher_name
FROM score s
JOIN student stu ON s.student_id = stu.student_id
JOIN teacher t ON s.teacher_id = t.teacher_id;
🎯 总结
通过以上步骤,我们成功创建了school
数据库,并建立了student
、teacher
、score
三张表,以及它们之间的关联关系。现在,你已经掌握了在MySQL中创建数据库和关联表的基本方法。
赶快动手实践一下吧,巩固你的学习成果!
★如果你觉得这篇文章对你有帮助,欢迎点赞、分享,让更多人受益!
”


文章转载自一如老师,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




