oracle 约束

约束
① not null 用于指定某列的值不为空,即不可以为null
② unique 用于指定某列唯一,可以多个null
③ primary key 用于指定某列为主键,唯一且不为null,一个表只有一个主键,且建议设计主键。主键建好后会自动创建索引。
④ check 用于强制限制数据需要满足的条件
⑤ references/foreign key 用于定义主表和从表之间的关系,外键约束要定义在从表上,主表则必须具有主键约束或是unique 约束,在添加从表数据时外键指向主表的数据必须存在,或者将从表的外键列置null。建表时需要先建主表再建从表。

修改约束

添加非空

alter table 表名 modify 列名 not null;

添加其他约束

alter table 表名 add constraint 约束名 约束(列名)

举例:

alter table  customer add constraint un_id unique(cardId); -- 唯一
alter table customer add constraint ch_address check(address in ('山东''成都'));

删除约束

alter table 表名  drop constraint 约束名称 [cascade]

举例:
删除主键,删除主键比较特殊,可直接使用 primary key 因为一张表里只有一个主键,可不用是使用主键名称。其他约束

alter table customer  drop constraint primary  key;

列级定义和表级定义
列级定义为我们常用的约束定义方式,即在定义字段的同时定义约束。
形式如下:

create table 表名(
列名1 类型 约束,
列名2 类型 约束
...
);

表级定义则是我们在定义完字段名和类型后再统一定义约束,定义复合主键时必须使用表级定义。避免使用复合主键。
形式如下:

create table 表名(
列名1  类型,
列名2  类型,
....
constraint  约束名  约束(列名)
);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值