SQL约束constraints,通常用于限制加入表的数据类型。
一般包含
NOT NULL 不为空约束;不接受空值null。
UNIQUE 唯一约束;
PRIMRAY KEY主键约束;不能包含空值null,每个表只能有一个。拥有自动定义的unique约束。
FOREIGN KEY 外键约束;指向另一个用来做连接的表。
CHECK 范围约束;
DEFAULT 默认约束;每个表可以有多个unique约束,但是primary key 只能有一个。
创建表和列的同时创建约束如以下:
create table 表名(
列名1 int not null,
列名2 varchar(255) default 'dayide',
列名3 float unique,
列名4 varchar(255)check(列名4='adddde'),
列名5 int not null primary key,
列名6 int foreign key references 表2(列名6)
)
已经存在相应表以及列的情况下创建、删除约束如下:
添加或删除unique约束:
alter table 表名 add unique(列名)
alter table 表名 add constraint 约束名 unique(列名1,列名2) 定义约束名并设置多行约束。
alter table 表名 drop constraint 约束名
添加或删除primary key约束:
alter table 表名 add primary key(列名)
alter table 表名 add constraint 约束名 primary key(列名1,列名2) 定义约束名并设置多行约束。
alter table 表名 drop constraint 约束名
添加或删除foreign key约束:
alter table 表名1 add foreign key(列名1)references 表名2(列名1)
alter table 表名 add constraint 约束名 foreign key(列名1) references 表名2(列名1) 定义约束名并设置多行约束。
alter table 表名 drop constraint 约束名
添加或删除check约束:
alter table 表名1 add check (列名1>0)
alter table 表名 add constraint 约束名 check(列名1>0 and 列名2="lala") 定义约束名并设置多行约束。
alter table 表名 drop constraint 约束名
添加或删除default约束:
alter table 表名 alter column 列名 set default ('设置的默认值')
alter table 表名 add constraint 约束名 unique(列名1,列名2) 定义约束名并设置多行约束。
alter table 表名 alter column 列名 drop default