天天看点

oracle约束-constraint

五种常见约束

1.not null

2.unique

3.primary key

4.foreign key

5.check 强制行数据必须满足的条件 如必须大于5小于100;

建一张purchase表

  • customerId 是外键
  • price 必须大于0
  • email 不能重复
  • sex 只能是男女,默认男
  • 购买数量nums 必须是1到30
create table purchase(goodsId char()) primary key,
customerId char() references customer(customerId),  
 price  number(,) check (price>) ,
 email varchar2() unique,
sex char() default '男' check (sex in('男','女') ),
 nums number() check(nums between  and )) ;
           

表建立之后增加约束

not null 使用 modify 其他约束增加使用 add

alter table  表名  modify sex not null;
alter table 表名 add constraint  约束名称 unique(约束字段);
           

删除约束

若两张表有主从关系 主键 或者外键 使用cascade 级联删除

查询约束

数据字典视图 user_constraints 显示当前用户的所有约束信息

select constraint_name,constraint_type,status,validated from 

user_constraints where 

constraint_name='约束名称';
           

显示约束列

select column_name,position from
user_cons_columns where 
constraint_name='约束名称';
           

列级定义

在建字段的时候将约束也一起建立

create table user(id number(),
cardId varchar2() constraint cardunique unique);
           

表级定义

在定义完所有字段之后 再建立约束

但 not null 只能在列级定义

create table user(id number(),cardId varchar2(),
constraint pk_userId primary key(id),
constraint cardunique unique(cardId));