用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用必须满足的语义要求。 完整性约束的类型 可分为三种类型:与表有关的约束、域(Domain)约束、断言(Assertion) 1) 与表有关的约束:是表中定义的一种约束。可在列定义时定义该约束,此时称为列约束,也可以在表定义时定义约束,此时称为表约束。 2) 域(Domain)约束:在域定义中被定义的一种约束,它与在特定域中定义的任何列都有关系。 3) 断言(Assertion):在断言定义时定义的一种约束,它可以与一个或多个表进行关联。 约束 与表有关的约束 包括列约束(表约束+NOT NULL)和表约束(PRIMARY KEY、foreign key、check、UNIQUE) 。 (1) not null(非空)约束: 只用于定义列约束。 语法如下: Colunm_name datatype | domain not null 实例: create table Employee ( emp_id int not null, emp_name varchar(10) not null, address varchar(40) , ) 创建之后,如果往表Employee表中非空约束中插入空值,insert into Employee values(1,null,'neimeng')将会出错。如下: Msg 515, Level 16, State 2, Line 1 Cannot insert the value NULL into column 'emp_name', table 'Student.dbo.Employee'; column does not allow nulls. INSERT fails. The statement has been terminated. (2) unique(惟一)约束:用于指明创建惟一约束的列上的取值必须惟一。 语法如下: Colunm_name datatype | domain unique 实例: create table EmployeeInfo ( emp_id int not null, emp_name varchar(10) not null, phone char(11) unique, address varchar(40) ,