MySQL关系模型

主键

主键:
能够通过主键唯一区分出不同的记录,不能使用业务相关的字段作为主键,所以一般把这个字段命名为id

这张表中,如果用name作为主键,就没法存储同名同学,因为主键不能重复。

在这里插入图片描述

联合主键:尽量不用
通过多个字段唯一标识记录,两个或更多的字段设置为主键,这种主键称为联合主键。
在这里插入图片描述

外键

在这里插入图片描述

在students表中,通过class_id的字段,可以把数据与另一张表关联起来,这种列称为外键

外键约束
将class_id作为外键约束,那么就可以保证无法插入无效的数据(如果classes表不存在id=99的记录,students表就无法插入class_id=99的记录)。

外键约束会降低数据库的性能,大部分互联网应用程序为了追求速度,并不设置外键约束,而是仅靠应用程序自身来保证逻辑的正确性。

定义外键约束:
不定义的话,class_id仅仅是一个普通的列,只是它起到了外键的作用
ALTER TABLE students
ADD CONSTRAINT fk_class_id
FOREIGN KEY (class_id)
REFERENCES classes (id);

索引

作用:索引是关系数据库中对某一列或多个列的值进行预排序的数据结构。可以直接定位到符合条件的记录,加快查询速度(对用户和应用程序的使用没有区别,有索引时数据库系统就会自动使用索引来提高效率)。

效率:该列的值越互不相同,那么索引效率越高。主键索引效率最高,因为主键绝对唯一。

唯一索引:通过UNIQUE关键字我们就添加了一个唯一索引,保证某列的值具有唯一性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值