今天给大家分享一下数据库里面的五种约束。

首先我们要知道这五种约束是哪五种,咳咳估计很多人猜不到,我来告诉你们。

分别是:主键约束,唯一约束,非空约束,默认值约束和外键约束。就是这五种约束,接下来我会一个个说,文章有点长。但肯定是干货,而且记起来容易。

主键约束

特点:唯一且为空

主键可以是一个字段组成的 也可以是多个字段组成的

如果主键可以由一个字段组成既可以添加到列级也可以添加到表集

如果多个字段组成只能添加到表级

(1)如何在在字段的列级添加约束
create table 表名(
字段名 字段类型 primary key
)
(2)如何在表级上添加主键约束
create table 表名(
字段名1 字段类型1,
字段名2 字段类型2,
..........
字段名n 字段类型n,
[constraint 主键约束名] primary key
)
(3)多个字段作为组件,只能添加到表数
create table 表名(
字段名1 字段类型1,
字段名2 字段类型2,
..........
字段名n 字段类型n,
[constraint 主键约束名] primary key(字段名1,字段名2)
)
如何给已有表添加主键
语法:alter table 表名 drop primary key;
如何删除主键约束
语法:alter table 表名 drop primary key;
唯一约束
唯一约束
指:表中字段的值不能重复
(1) 列表添加唯一约束
语法:create table 表名(
字段名1 字段类型1 unique,
字段名2 字段类型2,
..........
字段名n 字段类型n,
[constraint 主键约束名] primary key
)

如何在表级添加唯一约束:

语法: create table 表名(

字段名1 字段类型1 unique,

字段名2 字段类型2,

..........

字段名n 字段类型n,

[constraint 唯一约束名] unique(字段1,字段2....))

如何给已有表添加唯一约束:

alter table 表名 add [constrint 唯一约束名] unique(字段名1,字段名2......)

如何删除唯一约束:

alter table 表名 drop index 唯一约束名

注意:如果单个字段没有指定唯一约束名,则默认的唯一约束名为字段名。

如果是多个字段组合为唯一约束时候,默认值的唯一约束名为第一个字段的名称

如果指定了约束名则删除的时候写约束名。

非空约束

非空 not null

某张表中的某个字段的值不能为空

注意:1.只能使用列级添加

2.空字符串" " 或者0 都不是null

列表添加非空字符串

create table 表名(
字段名 字段类型 not null
)

给已有表添加非空约束

alter table 表名 modify 字段名 字段类型 not null

删除分空约束

alter table 表名 modify 字段名 字段类型 not null

外键约束

创建外键约束

注意:虽然MySQL提供了列级添加外键约束,但是添加完后不会生效,所以使用表集级添加外键约束。

语法: create table 表名 add foreige key(字段名) references 表(字段名)

如何在已有表添加外键约束

语法:alter table 表名 add foreige key(字段名) references 表(字段名)

如何删除外键约束

语法:alter table 表名 drop foreige key 外键约束名

如何在有关系的表进行删除(两种方法)

(1).先删除有外键约束的表,再删除主表

(2).先删除外键约束再删除表

默认值约束

指在没有对某字段插入具体值时候会去默认的值

注意:1.只能使用列表约束

2.对于使用默认值约束,如果插入的数据为“null”,则不会使用默认值,只有没有插入数据的时候,才会使用默认值。

如何在列表添加默认值约束:

语法:create table 表名(
字段名 字段类型 default value
)

如何给已有表添加默认值约束:

alter table 表名 modify 字段类型 defanlt value;

如何删除默认值约束:

alter table 表名 modify 字段名 字段类型;

今天就分享到这,如何不清楚这五个约束是干什么的,有什么作用,可以直接百度或者问我都可以。