This Domain(Admin5.com) is for Sale:

SQLServer数据库实用技术(45)

时间:2007-12-23  来源:不详  作者:迈克DB

order_idchar(8),
p_idchar(8),
p_namechar(10),
constraintpk_order_idprimarykey(order_id),
foreignkey(p_id,p_name)referencesproducts(p_id,p_name)
)on[primary]
注重:临时表不能指定外要害字约束。
7.2.3惟一性约束
惟一性约束指定一个或多个列的组合的值具有惟一性,以防止在列中输入重复的值。惟一性约束指定的列可以有NULL属性。由于主要害字值是具有惟一性的,因此主要害字列不能再设定惟一性约束。惟一性约束最多由16个列组成。
定义惟一性约束的语法如下:
CONSTRAINTconstraint_name
UNIQUE[CLUSTERED|NONCLUSTERED]
(column_name1[,column_name2,…,column_name16])
例7-5:定义一个员工信息表,其中员工的身份证号具有惟一性。
createtableemployees(
emp_idchar(8),
emp_namechar(10),
emp_cardidchar(18),
constraintpk_emp_idprimarykey(emp_id),
constraintuk_emp_cardidunique(emp_cardid)
)on[primary]
7.2.4检查约束
检查约束对输入列或整个表中的值设置检查条件,以限制输入值,保证数据库的数据完整性。可以对每个列设置符合检查。
定义检查约束的语法如下:
CONSTRAINTconstraint_name 内容来自dedecms
CHECK[NOTFORREPLICATION]
(logical_expression)
各参数说明如下:
NOTFORREPLICATION
指定检查约束在把从其它表中复制的数据插入到表中时不发生作用。
logical_expression
指定逻辑条件表达式返回值为TRUE或FALSE。
例7-6:创建一个订货表其中定货量必须不小于10。
createtableorders(
order_idchar(8),
p_idchar(8),
p_namechar(10),
quantitysmallint,
constraintpk_order_idprimarykey(order_id),
constraintchk_quantitycheck(quantity>=10),
)on[primary]
注重:对计算列不能作除检查约束外的任何约束。
7.2.5缺省约束
缺省约束通过定义列的缺省值或使用数据库的缺省值对象绑定表的列,来指定列的缺省值。SQLServer推荐使用缺省约束,而不使用定义缺省值的方式来指定列的缺省值。有关绑定缺省约束的方法请参见“数据完整性”章节。
定义缺省约束的语法如下:
CONSTRAINTconstraint_name
DEFAULTconstant_expression[FORcolumn_name]
例7-7:
constraintde_order_quantitydefault100fororder_quantity
注重:不能在创建表时定义缺省约束,只能向已经创建好的表中添加缺省约束。

7.2.6列约束和表约束
dedecms.com

对于数据库来说,约束又分为列约束(ColumnConstraint)和表约束(TableConstraint)。
列约束作为列定义的一部分只作用于此列本身。表约束作为表定义的一部分,可以作用于
多个列。
下面举例说明列约束与表约束的区别。
例7-8:
createtableproducts(
p_idchar(8),
p_namechar(10),
pricemoneydefault0.01,
quantitysmallintcheck(quantity>=10),/*列约束*/
constraintpk_p_idprimarykey(p_id,p_name)/*表约束*/



看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息