mysql主外键引⽤关系_MYSQL主外键关系
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1,主外键的定义
主关键字(primary key ): 是表中的⼀个或多个字段,它的值⽤于唯⼀地标识表中的某⼀条记录。
外关键字(foreign key): 是⽤于建⽴或加强两个表数据之间的链接的⼀列或多列。
如果公共关键字在⼀个关系中是主关键字,那么这个公共关键字被称为另⼀个关系的外键。由此可见,外键表⽰了两个关系之间的相关联系。以另⼀个关系的外键作主关键字的表被称为主表(⽗表),具有此外键的表被称为主表的从表(⼦表)。外键⼜称作外关键字。
3,创建主外键
创建学⽣表(⽗表或主表):
create table student
( sno char(4) primary key, --设置主键(单字段主键)
sname char(10),
sage int,
ssex char(10)
);
创建课程表(⽗表或主表):
create table course
( cno char(4) ,
cname char(8),
ccredit int,
primary key (cno) --设置主键的第⼆种⽅法
);
创建成绩表(⼦表或从表):
foreign key references用法create table sc
( sno char(4),
[constraint fk_sno] foreign key(sno)references student(sno), --加外键约束,以表student的主键sno为外键
cno char(4) ,
[constraint fk_cno] foreign key(cno)references course(cno), --加外键约束,以表student的主键sno为外键
score int,
pimary key(sno,cno), --设置sno和cno的属性组为主键(即多字段主键,或联合主键)
)
注释:[constraint fk_sno],[constraint fk_cno],其中fk_sno、fk_cno分别为外键ID名,可不添加,系
统会⾃动配⼀个。
4,增删主外键
增删主键:
alter table 表名 modify 主键列名 新列类型(不含auto_increment); --删除⾃增,才能删除主键
alter table 表名 drop primary key; --删除主键
alter table 表名 add primary key(列名); --添加主键
增删外键:
alter table ⼦表名 add [constraint fk_sno] foreign key(⼦表的外键名称) references ⽗表名(⽗表的主键名称); --添加外键约束。fk_sno为外键ID名,若不添加,系统会⾃动配⼀个。
alter table ⼦表名 drop foreign key fk_sno;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。