当前位置:   article > 正文

<MySQL> 数据库约束 -- 空值约束(not null)、唯一值约束(unique)、默认值约束(default)、主键约束(primary key)、外键约束(foreign key)_not null unique

not null unique

目录

一、数据库约束的概念

二、空值约束(not null)

2.1 语法及演示

三、唯一值约束(unique)

3.1 语法及演示

四、默认值约束(default)

4.1 语法及演示

五、主键约束(primary key)

5.1 主键约束的基本用法

5.2 配合 auto_increment 使用

5.3 以字符串形式保证主键唯一性

六、外键约束(foreign key)

6.1 外键约束的基本用法

6.2 索引

6.3 父表与子表是相互约束的


一、数据库约束的概念

        创建数据表时,为表指定规则,后续的增改删操作,都需要遵循指定的规则。

        数据库的约束,是为了更严格的校验数据,保证数据的正确性,引入了更多的检查操作,但同时也增加了系统开销。

约束类型简介

not null

指定某列不能为 null 
unique指定某列中的值必须都为该列中的唯一
default指定某列在没有赋值时的默认值
primary key指定某列或多列的结合,有且只有唯一标识
foreign key保证一个表中的数据匹配另一个表中的对应数据
check保证列中的值符合指定条件,MySQL中无该功能(不做介绍)

二、空值约束(not null)

2.1 语法及演示

语法

create table 表名(列名 类型 not null, ......);

解释创建表,表中某列或多列数据增加空值约束;


三、唯一值约束(unique

3.1 语法及演示

语法

create table 表名(列名 类型 unique, ......);

解释创建表,表中某列或多列数据增加唯一值约束;


四、默认值约束(default

4.1 语法及演示

语法

create table 表名(列名 类型 default 默认值, ......);

解释

创建表,表中某列或多列数据增加默认值约束;

(如果没有指定默认值,则当数据为空时,系统将默认返回 null )


五、主键约束(primary key

5.1 主键约束的基本用法

概念被主键约束的列是非空且唯一的,它集合了 not null 和 unique 的特点。
作用主键的使用是为了确保某列或多列的结合有唯一身份标识,有助于便捷地找到表中地对应记录。
特点一个表只能有一个主键。
语法

create table 表名(列名 类型 primary key, ......);

解释

创建表,表中某列数据或多列数据的结合增加主键约束;

5.2 配合 auto_increment 使用

关键字auto_increment
作用自动增量,自增主键。
适用情况适用于整型数据。适用于数据储存于单个数据库服务器的情况。
语法

create table 表名(列名 类型 primary key auto_increment, ......);

解释

创建表,表中某列数据或多列数据的结合增加主键约束,主键根据最大值自动增量

5.3 以字符串形式保证主键唯一性

        当数据分散储存在多个服务器时,主键自增将无法生效(每台服务器的主键将各自自增,无法关联)。

        在多服务器情况下,通常使用字符串形式生成主键的方式,确保主键唯一性,方法如下:

时间戳+服务器编号+随机因子
在不同时刻将生成不同的字符串不同的主机将生成各自的字符串随机生成的字符串

六、外键约束(foreign key

6.1 外键约束的基本用法

作用用于关联其他表的主键或唯一键,以达到表格互相约束的目的。
概念

子表:被约束的表叫做子表。

父表:约束其他表的表称为父表。

语法

create table 表名(列名 类型 , ...... , foreign key(本表约束列名) references 父表名(父表约束列名));

解释

创建表,表中某列数据作为约束和父表约束列相关联。

6.2 索引

        子表在数据行创建时,会检查数据行的外键约束列是否为父表关联列的合法数值,从而确定子表数据行是否插入成功。这里使用的检查方式,就是通过查询索引完成的。

        只有在表创建时,指定了主键约束,索引才能创建成功。因此,如果一个数据表需要作为父表,那么这个表就必须指定主键约束。 

6.3 父表与子表是相互约束的

         从上文可以看到,父表对子表插入的数据行是存在约束的,只有子表数据行的外键约束列数值为父表关联列的合法数值时,数据行才能插入成功。

        同样的,子表对父表也存在约束。在父表删除数据行时,如果关联列对应的子表外键约束仍存在数据,那么父表对应的数据行不能被删除。

沿用上表:


阅读指针 -> 《MySQL表数据的 CRUD 进阶操作 -- 聚合查询》

<MySQL> 查询数据进阶操作 -- 聚合查询-CSDN博客文章浏览阅读51次。聚合查询:使用聚合函数,使用分组查询group by,和分组查询后的条件筛选 havinghttps://blog.csdn.net/zzy734437202/article/details/134411369 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/297103
推荐阅读
相关标签
  

闽ICP备14008679号