列级约束与表级约束在SQLServer中有5种约束:主键约束(primarykeyconstraint)唯一性约束(uniqueconstraint)检查约束(checkconstraint)缺省约束(defaultconstraint)外部键约束(foreignkeyconstraint)在SQLSERVER中,(1)对于基本表的约束分为列约束和表约束约束是限制用户输入到表中的数据的值的范围,一般分为列级约束与表级约束。列级约束有六种:主键Primarykey、外键foreignkey、唯一unique、检查checck、默认default、非空/空值notnull/null表级约束有四种:主键、外键、唯一、检查列约束是对某一个特定列的约束,包含在列定义中,直接跟在该列的其他定义之后,用空格分隔,不必指定列名;表约束与列定义相互独立,不包括在列定义中,通常用于对多个列一起进行约束,与列定义用’,’分隔,定义表约束时必须指出要约束的那些列的名称。完整性约束的基本语法格式为:[CONSTRAINT<约束名>]<约束类型>约束名:约束不指定名称时,系统会给定一个名称。(2)列级约束与表级约束的区别如果完整性约束涉及到该表的多个属性列,必须定义在表级上,否则既可以定义在列级也可以定义在表级。简而言之:列级约束:列级约束是行定义的一部分,只能应用于一列上。表级约束:表级约束是独立于列的定义,可以应用在一个表中的多列上。(3)列级约束与表级约束在SQL中的用法(即如何在SQL中定义约束)在创建表时定义约束:CREATETABLEtable_name({-------列级约束定义|column_nameAScomputed_column_expression-------计算列定义|------表级约束定义}[,….n])一个约束定义为列级约束还是表级约束???根据实际需要和设计者思路确定。如primarykey,当只涉及到一列时,定义为列级约束;当涉及到多列时,则定义为表级约束。Prinmarykey定义为列级约束时,相应SQL语句:Stu_id上建立的主键pk_1为列级约束CREATETABLEstudent(Stu_idintconstraintpk_1primarykey,Stu_namevarchar(8),….)当定义为表级约束时,相应SQL语句:CREATETABLEstudent(Stu_idintNOTNULL,Stu_id上建立的主键pk_1为的表级约束Stu_namevarchar(8),Constraintpk_1primarykey(Stu_id),….)各约束具体说明:1.主键约束PRIMARYKEY约束PRIMARYKEY约束用于定义基本表的主键,起唯一标识作用,其值不能为NULL,也不能重复,以此来保证实体的完整性。PRIMARYKEY与UNIQUE约束类似,通过建立唯一索引来保证基本表在主键列取值的唯一性,但它们之间存在着很大的区别:①在一个基本表中只能定义一个PRIMARYKEY约束,但可定义多个UNIQUE约束;②对于指定为PRIMARYKEY的一个列或多个列的组合,其中任何一个列都不能出现空值,而对于UNIQUE所约束的唯一键,则允许为空。注意:不能为同一个列或一组列既定义UNIQUE约束,又定义PRIMARYKEY约束。PRIMARYKEY既可用于列约束,也可用于表约束。PRIMARYKEY用于定义列约束时,其语法格式如下:CONSTRAINT<约束名>PRIMARYKEYPRIMARYKEY用于定义表约束时,即将某些列的组合定义为主键,其语法格式如下:[CONSTRAINT<约束名>]SPRIMARYKEY(<列名>[{<列名>}])2.唯一性(UNIQUE)约束UNIQUE约束用于指明基本表在某一列或多个列的组合上的取值必须唯一。定义了UNIQUE约束的那些列称为唯一键,系统自动为唯一键建立唯一索引,从而保证了唯一键的唯一性。唯一键允许为空,但系统为保证其唯一性,最多只可以出现一个NULL值。UNIQUE既可用于列约束,也可用于表约束。UNIQUE用于定义列约束时,其语法格式如下:[CONSTRAINT<约束名>]UNIQUE唯一性约束用于指定一个或者多个列的组合的值具有唯一性,以防止在列中输入重复的值当使用唯一性约束时,需要考虑以下几个因素:①使用唯一性约束的字段允许为空值。②一个表中可以允许有多个唯一性约束。③可以把唯一性约束定义在多个字段上。④唯一性约束用于强制在指定字段上创建一个唯一性索引。⑤缺省情况下,创建的索引类型为非聚簇索引。unique约束是用来确保不受主键约束列上的数据的唯一性.unique与primarykey的区别在于:(1)unique约束主要用于非主键的一列或多列上要求数据唯一.(2)unique约束允许该列上存在NULL值,...