列级约束与表级约束
列级约束与表级约束
在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为的表级约束
(未完,全文共3196字,当前显示1050字)
(请认真阅读下面的提示信息)