MySQL完整性约束

一. 约束介绍

  约束条件与数据类型的宽度一样,都是可选参数.

  用于保证数据的完整性和一致性.

二. 约束分类

  1. primary key (pk)  表示该字段为该表的主键,可以唯一的标识记录

  2. foreign key (fk)  标识该字段为该表的外键

  3. not null  标识该字段不能为空

    默认为空, 设置不为空就必须要为字段赋值

  4. unique key (uk)  标识该字段的值是唯一的

  5. anto_increment  标识该字段的值自动增长(整数类型, 而且为主键)

  6. default  为该字段设置默认值

    默认为null, 如果设置了默认值,并且插入数据时不给该字段赋值时,使用默认值.

三 . 详细分类验证

  1. not null 和 default 

  

  

   2. unique

    ①. 单列唯一

    在mysql中称为单列唯一,即同一列内唯一

 

  

  

    将 name 字段设置为唯一, 不可以给 name 字段插入相同的值.

     ②. 联合唯一

   将id设置为单列唯一,将ip+端口设置为联合唯一,也就是ip+端口不可以相同,ip或端口相同可以.

   3. primary key

    在一个表中 : 单列可以做主键, 多列也可以做主键(复合主键)

    约束 : 字段的值不能为空而且唯一

    ①. 单列主键

  

  

    将id设置为主键, 主键唯一,而主键的值可以相同.

     ②. 复合主键  将多个字段一起设置为主键

    将ip+端口设置为联合主键,当ip+端口完全相同时,即使name字段的值不同也会报错

    而将其中一个端口修改之后,即使name字段的值相同也是可以插入表中的.

  4. auto_increment  自增长    

  

  将id设置为主键并且设置为自增长模式,插入数据时即使不插入id,表内也会自动生成数据id.并且每次 + 1 .

  也可以指定id 插入数据 :

  

  如果继续插入不指定 id 的数据, 会在之前的最后一条记录继续增长.

  

  如果将表内的数据全部删除之后再往这个表内查数据,id一样是在被删除数据的最后一条记录内的id数 + 1 :

  

  

  对应自增长来说,即使被删除的数据也拥有唯一的id.

  5. foreign key

    外键总结来说就是其他表的主键

    设置外键的目的是是某一张表的数据不要过于冗余,和编程中函数的思想相似.

    多表中,被关联的表是主表,关联表是从表.

    建表时要先建被关联表,后建关联表.    

原文地址:https://www.cnblogs.com/dong-/p/9673387.html