mysql约束

约束

常见的约束

        非空约束,not null

        唯一约束,unique

        主键约束,primary key

        外键约束,foreign key

自定义检查约束,check

在创建表的语句后加 

非空约束

        非空约束,针对某个字段设置其值不为空,如:学生的姓名不能为空

student_name varchar(20) not null

唯一约束

        唯一性约束修饰的字段具有唯一性,不能重复。但可以为null。

如:email不能重复

email   varchar(30)  unique,

主键约束

        每个表应该具有主键,主键可以标识记录的唯一性,主键分为单一主键和复合(联合)主键,单一主键是由一个字段构成的,复合(联合)主键是由多个字段构成的。

如 学生Id 为主键

student_id   int(10)  primary key

主键的特点:不能为null,也不能重复。

主键相关的术语
      主键约束 :primary key
      主键字段 : id字段添加primary key之后,id叫做主键字段
      主键值 :id字段中的每一个值都是主键值

主键有什么作用

1.根据主键字段的字段数量来划分:
      单一主键 (推荐的,常用的。)
      复合主键(多个字段联合起来添加一个主键约束) (复合主键不建议使用,因为复合主键违背三范式。)
 2.根据主键性质来划分:
       自然主键 :主键值最好就是一个和业务没有任何关系的自然数。(这种方式是推荐的)
      业务主键 : 主键值和系统的业务挂钩,例如:拿着银行卡的卡号做主键、拿着身份证号做为主键。(不推荐使用)最好不要拿着和业务挂钩的字段做为主键。因为以后的业务一旦发生改变的时候,主键也可能需要随着发生变化,但有的时候没有办法变化,因为变化可能会导致主键重复。

一张表的主键约束只能有1个

外键约束

        外键主要是维护表之间的关系的,主要是为了保证参照完整性,如果表中的某个字段为外键字段,那么该字段的值必须来源于参照的表的主键

如 在t_student中加入外键约束

constraint  fk_classes_id foreign key(classes_id) references t_classes(classes_id)

外键可以为null

被引用的字段不一定是主键,但至少是具有unique约束,具有唯一性,不可重复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值