Oracle数据库表的约束

2025-10-10 03:13:29

1、主键约束;

在数据库的表中,从理论上说,任何表都应该有一个主键约束;

特点:

1、 非空;

2、 唯一;

种类;

1、 自然主键;整数或字符串类型充当;

2、 业务主键;自增的整数或特定格式字符串;

在Oracle中,用自增整数做为主键,用序列(sequence)对象充当;

Oracle数据库表的约束

Oracle数据库表的约束

Oracle数据库表的约束

2、唯一性约束(Unique);

这也是单表约束中的一种,是单表约束中最简单的;在唯一性方面与主键相同,只有一点不同,唯一性约束列,支持可空(当然最多只能有一行);

Oracle数据库表的约束

Oracle数据库表的约束

3、继续向表中添加毛巾商品;因为商品名称已经存在,所以会出现如下异常情况;

在表的约束中,主键约束有且只能有一个,而其他类型的约束设置,则根据具体需要,不限;

Oracle数据库表的约束

Oracle数据库表的约束

4、默认约束(default);

默认约束也是用来限制列数据,以保证安全性的;在向表中添加记录时,如果没有显式提供数据,则在行记录中以默认的值(建表时设置好的或建表后追加的)填充;如果显式提供了有效值,则以提供的值为主,此时默认值无效;

Oracle数据库表的约束

Oracle数据库表的约束

5、检查约束(check)

用在表某列上,用于限制列数的有效性,数据范围;

数据范围有两种情况;

1、 可用区间表示的范围;

建students表,学生年龄限制在[16,30]之间,在年龄列设置检查约束;

Oracle数据库表的约束

Oracle数据库表的约束

6、单表约束;

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(‘男’,’女’);

Oracle数据库表的约束

Oracle数据库表的约束

Oracle数据库表的约束

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢