单表约束;
a) 非空和可空约束;not null/null;不涉及列内容的有效性,只是说必须填写或不需要填写;
b) 主键约束;Primary key;
i. 在数据库中,理论上任何表都应该有主键约束;
ii. 主键分类;
1. 自然主键;抽象出来的列中,某列或某几列可以设置为主键;其余列与主键列有依赖关系;
2. 业务主键;其他列与主键列没有直接关联关系;规律性自增的整数及特定字符串;
iii. 主键列的要求:
1. 非空;
2. 唯一;
iv. 表中有且只有一个主键;
c) 唯一性约束;unique;
i. 抽象出来的列,不重复,只支持一行中的该为空值;
ii. 要求:唯一;
d) 默认约束;default;
i. 没有显式提供数据插入时,以默认值填充;当显式提供数据时,以提供数据为主,此时默认值无效;
ii. 默认值的分类;
1. 静态固定值;如“男”,“女”等;
2. 动态变化值;如sys_guid(),sysdate等;
iii. 与其他约束不同的是,在向表中追加默认约束,不是简单的add,而是通过modify完成;
e) 检查约束;check;
i. 在所有单表约束是最复杂的一个,它是用来限制列数据的有效范围,以最大限度的保证列数据的有效;
ii. 两种情况;
1. 可用数学区间表示的范围;闭区间:[a,b]= age>=a and age<=b = between a and b;
2. 多个可选值处于平等地位,不能用区间表示;in子句:in(‘男’,’女’);