今天给大家分享一下数据库里面的五种约束。
首先我们要知道这五种约束是哪五种,咳咳估计很多人猜不到,我来告诉你们。
分别是:主键约束,唯一约束,非空约束,默认值约束和外键约束。就是这五种约束,接下来我会一个个说,文章有点长。但肯定是干货,而且记起来容易。
主键约束
特点:唯一且为空
主键可以是一个字段组成的 也可以是多个字段组成的
如果主键可以由一个字段组成既可以添加到列级也可以添加到表集
如果多个字段组成只能添加到表级
(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 字段名 字段类型;
今天就分享到这,如何不清楚这五个约束是干什么的,有什么作用,可以直接百度或者问我都可以。