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 约束名

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

约束名 位置 支持的约束类型 是否可以起约束名
列级约束: 列的后面 语法都支持,但是外键没有效果 不可以
表级约束: 所有列的下面 默认和非空不支持,其他直持 可以,主键没有效果

猜你喜欢

转载自blog.csdn.net/weixin_42575020/article/details/113525579