Oracle 11g学习笔记--约束(constraint )的使用

Oracle 11g学习笔记–约束(constraint )的使用

该关键词是为了添加约束条件

约束条件

  1. not null 使得数据库的字段值不能为空
  2. unique 使得所有行中不存在相同值,当时允许同时为空
  3. primary key 主键约束,不能为空,且字段值不能相同
  4. foreign key 必须在相应的表中存在该字段且存在对应的值
  5. check 满足check中的条件
  6. ref

看到这里有的童鞋可能会问,为什么要使用constraint?当没有这个关键词时,依然可以添加这些约束。那我们想来看看他的使用方法,然后再说这;

添加约束

1.创建表的时候:

create table table_name (
    gender varchar2(4) constraint gender_error 
    check(gender in ('男','女'))
);

2.修改表的时候

--方法1:
alter table table_name 
    modify gender constraint gender_error
    check(gender in('男','女'));
--方法2:
alter table table_name 
    add constraint gender_error
    check(gender in('男','女'));

删除,禁用,启用约束

--删除约束
alter table table_name drop constraint gender_error;
--禁用约束1
alter table table_name 
add constraint error uniqe(column_name) disable;
--禁用约束2
alter table table_name
disable constraint error ;
--启用约束
alter table table_name
enable constraint error ;
--这时,如果在禁用的过程中插入了不满足要求的数据,可以使用enable novalidate可以选择只对新数据应用这个约束
alter table table_name
enable novalidate constraint error ;

获取约束相关

通过查询user_constraints视图可以获取有关约束的信息

select 
    owner,             --约束的所有者
    constraint_name,   --约束名
    constraint_type,   --约束类型(P,R,C,U,V,O)(主键,外键,check,unique....)
    status,            --约束的状态(enable,disable)
    deferrable,        --是否为可延迟
    deferred           --是立即执行,还是延迟执行
from 
    user_constraints
where
    table_name = 'table_name';

使用优点

当没有使用constraint时,插入错误数据回提示:

ORA-00001: 违反唯一约束条件 (STORE.SYS_C007081)

而使用了之后:

ORA-00001: 违反唯一约束条件 (STORE.UNIQUE_ERROR)

这样很容易从后面括号中找到错误

注:关于删除和添加操作可能写的不太全面,可点击这里查看更多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值