码迷,mamicode.com
首页 > 其他好文 > 详细

表与表的关联关系

时间:2019-12-07 12:41:41      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:student   sid   create   span   外键   style   dep   部门   约束   

一、一对多 :外键创在多的一方 ,先创一的一方,多的一方的外键要依赖一的一方的主键 。

    多对一  : 本质也一样 反过来即可 。

create table dept(
id int PRIMARY KEY AUTO_INCREMENT COMMENT ‘部门id‘,
dept_name VARCHAR(30) NOT NULL COMMENT ‘部门名称‘
)

CREATE TABLE emp(
eid int PRIMARY key auto_increment COMMENT ‘员工id‘,
emp_name VARCHAR(30) NOT NULL  COMMENT ‘员工姓名‘ ,
did int ,
FOREIGN KEY(did) REFERENCES dept (id) 
)

二、一对一:

 2.1第一种方式:  就是在一对多的基础上 在多的一方的外键后加上唯一约束 unique 

create table wife (
wid int PRIMARY key  auto_increment ,
wname VARCHAR(30) NOT NULL 
)

create table husband (
hid int PRIMARY key  auto_increment ,
hname VARCHAR(30) NOT NULL ,
wid int UNIQUE,
FOREIGN key(wid)  REFERENCES wife(wid)
)

2.2第二种方式: 让一张表的主键同时作为另一张表的主键  同时这一张表的主键 不能自增 ,

因为是外键  可以重复 ,但是又是主键 便又不能重复 这样也就成为一对一。

create table person (
pid int PRIMARY key auto_increment,
pname VARCHAR(30) NOT NULL 
)

CREATE TABLE card (
cid int PRIMARY key ,
num VARCHAR(18),
FOREIGN key(cid) REFERENCES person(pid)
)

三 、多对多表的创建 :   作为联合主键 使这一对 不会出现重复的一对,

create table teacher (
tid int PRIMARY key auto_increment,
tname VARCHAR(30) NOT NULL 
)

create table teacher_student(
tid int ,
sid int ,
PRIMARY key (tid,sid) COMMENT‘联合主键‘ , 
FOREIGN key (tid) REFERENCES teacher(tid),
FOREIGN key (sid) REFERENCES student(sid)
)

create table student (
sid int PRIMARY key auto_increment,
sname VARCHAR(30) NOT NULL 
)

 

表与表的关联关系

标签:student   sid   create   span   外键   style   dep   部门   约束   

原文地址:https://www.cnblogs.com/ych961107/p/12000928.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!