MySQL 约束

Posted 星小梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 约束的主要内容,如果未能解决你的问题,请参考以下文章

在mysql中如何建立性别约束

「MySQL」- 约束详解

mysql-约束概览

Linux学习-MySQL约束

Linux学习-MySQL约束

Mysql六大约束