数据库约束六大约束语句
1、非空约束
① 就是给列赋值的时候值不允许为空
name VARCHAR(20) NOT NULL,--创建name列为非空--
2、主键约束
2.primary key约束 :
①约束唯一标识数据库表中的每条记录
②主键必须包含唯一的值
③主键列不能为空
④每个表都应该有个主键,但只能有一个主键
StudentID int not null primary key --创建学生编号为主键--
primary key(Students) --创建学生编号为主键--
primary key(StudentID,Email) --创建学生ID和Email为联合主键--
--为已存在的列创建主键--
alter table table_name add primary key(column_name)
--删除主键约束--
alter table table_name drop primary key
--删除主键约束--
alter table table_name drop constraint --主键约束名 主键约束名可以使用sp_help查询--
3、唯一值约束
3.unique 唯一性约束:
①约束唯一标识数据库表中的每条记录
②unique和primary key都为数据提供了唯一性约束
③primary key 拥有自动定义的Unique约束
④注意:每个表中只能有一个primary key约束,但是可以有多个Unique约束
name int unique
unique(column_name)
CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName) --添加多个约束--
alter table table_name add unique(column_name) --增加表中的约束--
ALTER TABLE table_name DROP CONSTRAINT 主键名 --删除约束--
4、外键约束
4.foreign key约束:
①一个表中的foreign key 指向另一个表的primary key
②foreign key约束用于预防破坏表之间连接的动作
③foreign key约束也能防止非法数据插入外键列,因为它必须是指向的那个表的值之一
foreign key (column_name) references 主表名(主键列名) --创建column_name为主表名的外键--
column_name int foreign key references 主表名(主键列名) --创建column_name为主表名的外键--
alter table table_name
add foreign key (列名) references 主表名(主键列名) --为已存在的列创建外键--
alter table table_name drop constraint 外键约束名 --删除外键约束(SQL Server oracle--
5、检查约束
5.CHECK 约束:
①.检查||限制列中输入的值
sex char(2) CHECK(Ssex='男' or Ssex='女'), --非男即女--
StudentID int not null check (StudentID>0) --大于0约束--
Email varchar(50) CHECK(Email LIKE'%@%'), --必须含有@--
PID nvarchar(18) check (len(PID) =15 or len(PID) =18 ), --身份证号 检查约束 check(len(id)=15 or len(id)=18)--
alter table table_name
add check(列名>0) --向已有的列加入check约束--
alter table table_name drop constraint check约束名 --删除约束--
6、默认值约束
6.default约束:
①.在没有输入值得单元格里插入默认值
Address varchar(100) default '不详', -- 地址默认值为不详--
outtime date default getdate() --默认值为当前时间--
alter table table_name --向已有列名中插入默认值--
add 列名 set default '数值'
alter table table_name drop constraint 约束名 --删除默认约束--