首页 > 代码库 > MySQL 约束
MySQL 约束
空值与非空: NULL #字段值为空, NOT NULL #字段值非空.
自动编号: AUTO_INCREMENT
1)、必须与主键组合使用.
2)、默认情况下,起始值为1,增量为1.
主键: PRIMARY KEY
1)、主键约束
2)、每张数据表只能存在一个主键
3)、主键保证记录的唯一性
4)、主键自动为NOT NULL
唯一: UNIQUE KEY
1)、唯一约束
2)、唯一约束可以保证记录的唯一性
3)、唯一约束的字段可以为空值(NULL)
4)、每张数据表可以存在多个唯一约束
默认值:DEFAULT
1)、默认值
2)、当插入记录时,如果没有明确为字段赋值,则自动赋予默认值
约束
1)、约束保证数据的完整性和一致性
2)、约束分为表级数据和列级约束
3)、约束类型包括: NOT NULL(非空约束) PRIMARY KEY(主键约束) UNIQUE KEY(唯一约束) DEFAULT(默认约束) FOREIGN KEY(外键约束)
外键: FOREIGN KEY
1)、保证数据一致性,完整性
2)、实现一对一或一对多关系
外键约束的要求
1)、父表和子表必须使用相同的存储引擎,而禁止使用临时表
2)、数据表的存储引擎只能为InnoDB(因为其他引擎不支持)
3)、外键列和参照列必须具有相似的数据类型,其中数字的长度或是有符号必须相同(无符号:UNSIGNED),而字符的长度则可以不同
4)、外键列和参照列必须创建索引,如果外键列不存在索引,MySQL将自动创建索引
外键约束的参照操作
1)、CASCADE: 从父表删除或更新且自动删除或更新子表中匹配的行
2)、SET NULL: 从父表删除或更新行,并设置子表中的外键列为NULL,如果使用该选项,必须保证子表列中没有指定为NOT NULL
3)、RESTRICT: 拒绝对父表的删除或更新操作
4)、NO ACTION: 标准SQL关键字,在MySQL中与RESTRICT相同
表级约束与列级约束
1)、对一个数据列建立的约束,称为列级约束
2)、对多个数据列建立的约束,称为表级约束
3)、列级约束既可以在列定义时声明,也可以在列定义后声明
4)、表级约束只能在列定义后声明
MySQL 约束