温馨提示:本文最后更新于2022年10月4日,已超过 30 天没有更新,某些文章具有时效性,若有错误或已失效,请在下方留言!
一、实体完整性
1. 主键约束(primary key)
唯一,不重复,不能为空 ,一个表中有且只有一个主键约束
主键中的字段可以设置 自动增长(auto_increment)
1-1. 创建表的同时创建主键约束
格式一:
create table 表名(
列名1 数据类型 primary key,
列名2 数据类型
);
create table stu(sno int(10) primary key auto_increment);
格式二:主键约束名字的写法:PK_列名
create table 表名(
列名1 数据类型,
列名2 数据类型,
constraint 主键约束的名字
);
create table stu(
sno int(10),
sname varchar(10),
constraint PK_name primary key(sname)
);
格式三:
create table 表名(
列名1 数据类型,
列名2 数据类型,
primary key (列名1)
);
create table stu(sno int(10),primary key(sno));
1-2. 针对已经存在的表,添加主键约束
格式一:
alter table 表名 modity 列名 数据类型 primary key;
格式二:
alter table 表名 add primary key(列名);
格式三:
alter table 表名 add constraint 主键约束的名字 primary key(列名);
2. 唯一约束(unique)
不允许有重复的值,保证数据的唯一性。
可以有空值
在一个表中,可以有多个唯一约束
默认情况下,唯一约束的名字和列名保持—致
添加唯一约束的列,系统也会默认给这个列添加一个唯一索引
索引:等同于书本的目录,将来能够加快数据的查询速度。
2-1. 创建表的同时创建唯—约束(UN_列名)
create table表名(
列名1 数据类型 unique,
列名2 数据类型 unique,
列名3 数据类型
);
create table stu(sno int(10) unique,sname varchar(20) unique,ssex varchar(10));
2-2. 针对已经存在的表,添加唯一约束
alter table 表名 add unique(列名1[,列名2]);
2-3. 删除唯一约束
alter table 表名 drop index 唯一约束的名字;
二、域完整性
1. 默认约束(default)
保证在表中不会输入无效的数据
当默认约束来修饰某个列的时候,修饰的列即使不写数据也会默认一个值的
1-1. 创建表的同时创建默认约束
create table 表名(
列名1 数据类型 default '字符串类型或者日期类型的默认值',
列名2 数据类型 default 数值,
列名3 数据类型
);
create table student(ssex varchar(10) default '男',record int(10) default '70');
1-2. 针对已经存在的约束,添加默认约束
alter table 表名 modify 列名 数据类型 default '数值';
alter table student modify record int(10) default '80';
1-3. 删除默认约束
alter table 表名 drop 列名 数据类型;
alter table student drop ssex varchar(10);
2. 非空约束(not null) 当前列必须有值
2-1. 创建表的同时创建非空约束
create table 表名(
列名1 数据类型 not null,
列名2 数据类型
);
create table student(sno int(10),sname varchar(20) not null);
2-2. 针对已经存在的约束,添加非空约束
alter table 表名 modify 列名 数据类型 not null;
alter table student modify ssex varchar(10) not null;
2-3. 删除非空约束
alter table 表名 drop 列名 数据类型;
alter table student drop ssex varchar(10);
三、参照完整性
外键约束(foreign key)
外键约束是建立在从表;
当从表的列参照主表的列,列名可以不一样,但是列里面的数据类型和内容要保持一致;
从表引用主表的列,要求主表的列必须有主键约束或者唯一约束;
当主表的数据,被从表引用,主表的数据是不能进行删除;
当从表中的数据想做操作的时候,先询问主表的意见,主表有的,允许从表操作,主表没有,拒绝从表操作。
创建表的同时创建外键约束
create table 表名(
列名1 数据类型,
列名2 数据类型,
constraint 外键约束的名字 foreign key(从表的列名1) references 主表表名(主表的列名1)
);
针对已经存在的表,添加外键约束
alter table 从表表名 add constraint 外键约束的名字 foreign key(从表列名1) references 主表表名(主表列名);
删除外键约束
alter table 表名 drop foreign key 外键约束的名字;
Comments | NOTHING