约束:

  1. 作用于列表表上的规则,用于限制加入表中的数据
  2. 约束的存在保证了数据库中数据的正确性、有效性和完整性

分类:

  1.  非空约束:not null    保证列中数据不能有null值

   ♦  建表前添加:create table 表名(

            列名 数据类型 not null,

            ......

          );

   ♦  建表后添加:alter table 表名 modify 列名 数据类型 not null;

   ♦  删除:alter table 表名 modify 列名 数据类型;

  2.  唯一约束:unique    保证列中所有数据各不相同

   ♦  建表前添加:create table 表名(

            列名 数据类型 unique [auto_increment],

            ......

          );

   ♦  建表前添加:create table 表名(

            列名 数据类型,

            ......

            [constraint] [约束名称] unique(列名)

          );

   ♦  建表后添加:alter table 表名 modify 列名 数据类型 unique;

   ♦  删除:alter table 表名 drop index 列名;

  3.  主键约束:primary key  主键是一行数据的唯一标识,要求非空且唯一,一张表只能有一个主键

    ♦  建表前添加:create table 表名(

             列名 数据类型 primary key [auto_increment],

             ......

            );

    ♦  建表前添加:create table 表名(

             列名 数据类型,

             ......

             [constraint] [约束名称] primary key(列名)

            );

    ♦  建表后添加:alter table 表名 add primary key(列名);

    ♦  删除:alter table 表名 drop primary key;

  4.  默认约束:default[value]  保存数据时,未指定值则采用默认值

    ♦  建表前添加:create table 表名(

             列名 数据类型 default 默认值,

             ......

            );

    ♦  建表后添加:alter table 表名 alter 列名 set default 默认值;

    ♦  删除:alter table 表名 alter 列名 drop default;

  5.  检查约束:check      保值列中的值满足某一条件    注:MySQL不支持检查约束

  6.  外键约束:foreign key  外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性

    ♦  建表前添加:create table 表名(

              列名 数据类型,

              ......

              [constraint] [外键名称] foreign key(外键列名) references 主表(主表列名)

           );

    ♦  建表后添加:alter table 表名 add constraint 外键名称 foreign key(外键列名) references 主表(主表列名);

    ♦  删除:alter table 表名 drop foreign key 外键名称;

  *.  如果列的值是数字类型且有唯一约束时,可以在约束后添加auto_increment让值自动增长