sql主键和唯一键和外键

mysql数据库中对字段的约束里存在主键约束,也存在唯一键约束,这两种约束很容易出现混淆的情况,这里讲一下两个的区别:

主键和唯一键的对比:

约束保证唯一性是否为空一个表中有多少个是否允许组合
主键至多一个是(但不推荐)
唯一键可以为多个是(但不推荐)

这里顺便说一下外键几点注意:

1、要求在从表设置外键关系

2、从表的外键列的类型和主表的关联列的类型要求一致或兼容,名称无要求

3、主表中的关联列必须是一个key(一般是主键,或者是唯一键)

4、插入数据时先插入主表,再插入从表,删除数据时,先删除从表,再删除主表

 

修改表时添加约束

1、添加列级约束

alter table 表名 modify column 字段名 字段类型  新约束;

2、添加表级约束

alter table 表名 add 【constarint 约束名】约束类型(字段名)【外键的引用 references  table (要关联的主表字段)】

修改表时删除约束

1、删除列级约束

alter table 表名 modify column 字段名 (去掉要删除的约束,剩下的保留即可)

2、删除表级约束

alter table 表名 drop 约束名

 

总结:列级约束和表级约束的不同

约束名位置支持的约束类型是否可以起约束名
列级约束:列的后面语法都支持,但是外键没有效果不可以
表级约束:所有列的下面默认和非空不支持,其他直持可以,主键没有效果
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值