数据库表与表的关系

关系主要有三种,一对一,一对多(多对一),多对多

一对一

例如
有一张保存账号密码的表,还有一张保存个人信息的表,他们通过wid关联,只是一对一关系

create table Wechat(
   wid int PRIMARY key,
	 wpassword varchar(20)
);

create table Wechat_person(
   wid int PRIMARY key,
	 wname varchar(20),
	 sex enum('男','女')
);
ALTER table Wechat_person add CONSTRAINT yueshu1 FOREIGN key(wid)
REFERENCES Wechat(wid);

一对多

一个学生表包含学生编号和学生姓名
一个成绩表包含学生编号,课程编号,课程成绩,因为有多个成绩,所以会有多个编号,
(ps:学生编号和课程编号可以组成联合主键)

现在学生表的学生编号,对成绩表的学生编号就是一对多

create table student(
   sid varchar(10) PRIMARY key,
	 sname varchar(20)
);
CREATE TABLE score(
    sid varchar(10),
	courseid INT,
	score DOUBLE
);
ALTER TABLE score ADD CONSTRAINT yueshu2 FOREIGN KEY(sid) REFERENCES student(sid);

多对多

一张学生表,包含学生编号和学生名字
一张老师表,包含老师编号和老师名字
一个学生对应多个老师,多个老师对应一个学生,所以相当于多个学生对应多个老师
一张表,包含学生编号和老师编号

create table teacher(
   tid int PRIMARY key,
	 tname varchar(20)
);
create table student2(
   sid int PRIMARY key,
	 sname varchar(20)
);
create table tea_stu2(
   tid int,
	 sid int
);
ALTER TABLE tea_stu2 ADD CONSTRAINT 2_tid FOREIGN KEY(tid) REFERENCES teacher(tid);	
ALTER TABLE tea_stu2 ADD CONSTRAINT 2_sid FOREIGN KEY(sid) REFERENCES student2(sid);

猜你喜欢

转载自blog.csdn.net/weixin_43722571/article/details/99082743
今日推荐