MySQL数据库的主外键

1、主外键的定义

主关键字(primary key ): 简称主键,它是表中的一个字段,它的值用于唯一地标识表中的某一条记录。

外关键字(foreign key) : 简称外键,是用于建立或加强两个表数据之间的链接的一列。

如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。
以另一个关系的外键作主关键字的表被称为主表(父表)具有此外键的表被称为主表的从表(子表)
外键又称作外关键字

2、主外键的区别

主键:
定义:唯一标识一条记录,不能有重复的,不允许为空。
作用:用来保证数据完整性
个数:只有一个

外键:
定义:表的外键是另一个表的主键,外键可以有重复的,可以是空值。
作用:用来和其他表建立联系。
个数:一个表可以有许多外键。

3、创建主外键

3.1、创建主键

# 创建学生表加主键方法一
create table student(
	sid char(4) primary key,# 设置主键
	sname char(20),
	sage int,
	ssex char(2)
);
# 创建课程表加主键方法二
create table course(
	cid char(4),
	cname char(8),
	primary key(cid)
);

3.2、创建外键

# 创建成绩表设置外键
create table score(
	sid char(4),
	cid char(4),
	score int(3),
	foreign key(sid)references student(sid),
	foreign key(cid)references course(cid),
)

4、增删主外键

4.1、增删主键

alter table 表名 drop primary key;# 删除主键
alter table 表名 add primary key (列名);# 现有列上添加主键

4.2、增删外键

alter table 子表名 add [constraint fk_son]foreign key(子表的外键名称)references 父表名(父表的主键名称); #添加外键约束。fk_sno为外键ID名,若不添加,系统会自动配一个。
alter table 子表名 drop foreign key fk_sno; #删除外键约束。fk_sno为外键ID名, 若不知,可查询建表明细(show create table 表名)。
  • 0
    点赞
  • 0
    评论
  • 2
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:书香水墨 设计师:CSDN官方博客 返回首页

打赏作者

渔火愁眠_

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值