目录
约束的概念和分类
1.约束的概念
·约束是作用于表中列上的规则,用于限制入表的数据。
·约束的存在保证了数据库中数据的正确性.有效性和完整性
2.约束的分类
约束名称 | 描述 | 关键字 |
非空约束 | 保证列中所有数据不能有null值 | not null |
唯一约束 | 保证列中所有数据各不同 | unique |
主健约束 | 主键是一行数据的唯一示识,要求非空且唯一 | primary key |
检查约束 | 保证列中的值满足某一条件 | check |
默认约束 | 保存数据时,未指定值则采用默认值 | default |
外健约束 | 外健用来让两个表的数据之间建立链接,保证数据的一致性和完整性 | foreign key |
Tips : MySQL不支持检查约束
非空约束
1.概念
非空约束用于保证列中所有数据不能有NULL值
2.语法
(1)添加约柬
--创建表时添加非空约束
create table 表名(
列名 数据类型 not null,
...
);
--建完表后添加非空约束
alter table 表名 modify 字段名 数据类型 not null ;
(2)删险约束
alter table 表名 modify 字段名 数据类型;
唯━约束
1.概念
·唯一约束用于保证列中所有数居各不相同
2.语法
(1〕添加约束
--创建表时添加唯—约束
create table 表名(
列名 数据类型 unique [auto_increment],
-- auto_increment:当不指定值时自动增长
...
);
create table 表名(
列名 数据类型,
[constration] [约束名称] unique(列名)
);
--建完表后添加唯一的束
alter table 表名 modify 字段名 数据类型 unique;
(2)删除约束
alter table 表名 drop index 字段名;(特殊)
主键约束
1.概念
·主建是一行数据的唯一标识,要求非空且唯一
·一张表只能有一个主键
2.语法
(1〕添加约束
--创建表时添加主键约束
create table 表名(
列名数据类型 primary key [auto_increment],
...
);
create table 表名(
列名 数据类型,
[constration] [约束名称 primary key(列名)
);
--建完表后添加主键约末
alter table 表名 add primary key(字段名);
(2)删除约束
alter table 表名 drop primary key;
默认约束
1.概念
·保存数据时,未指定值则采用默认值
2.语法
(1)添加约束
--创建表时添加默认约束
create table 表名(
列名 数据类型 default 默认值,
);
--建完表后添加默认约束
alter table 表名 alter 列名 set drfault 默认值;
(2)删除约束
alter table 表名 alter 列名 drop default;
外键约束
1.概念
·外键用来让两个表的数据之间建立链接。保证数据的一致性和完整性
2.语法
(1)添加约束
--创建表时添加外键约束
create table 表名(
列名 数据类型,
...
[constration] [外键名称] foreign key(外键列名) references 主表(主表列名));
);
--建完表后添加外键约束
alter table 表名add constration 外键名称 foreign key (外键字段名称) references 主表名称(主表列名称);
(2)删除约束
alter table 表名 drop foreign key 外键名称;
给一张已经存在的表,添加、删除约束
列级约束
添加:
alter table 表名 modify 列名 列类型 约束类型;
删除:
alter table 表名 modify 列名 列类型;
表级约束
添加:
alter table 表名 add [constraint 约束名字] 约束类型(类名);
删除:
alter table 表名 drop constraint 约束的名字;
列级约束与表级约束的语法区别:
1.书写位置不同
2.定义列数不同
3.是否能够给约束起名字
4.not null 只能起列级约束