Oracle数据库设计——定义约束 Unique约束

Unique约束

Unique约束可应用于一列或多列字段上。如果字段值存在,必须为唯一的,可以取null值
1、一张表只能有一个PK约束但可以有多个Unique约束
2、作为PK的字段不能为null,但作为Unique的字段可以为null,但不为null的行必须是Unique的
3、当创建一个PK时,创建一个Index,创建一个Unique时也创建一个Index
4、PK和Unique约束字段可以作为FK的父亲。FK约束字段引用PK约束,也引用Unique约束

创建语句:
  CREATE TABLE temp (pk NUMBER PRIMARY KEY, a NUMBER, b NUMBER);
     ALTER TABLE temp ADD CONSTRAINT uk_temp_a_b UNIQUE (a, b);

Example:
CREATE TABLE students
 (student_id    VARCHAR2(10) NOT NULL,
  student_name  VARCHAR2(30) NOT NULL,
  college_major VARCHAR2(15) NOT NULL,
  status        VARCHAR2(15) NOT NULL,
  state         VARCHAR2(2),
  license_no    VARCHAR2(30)) TABLESPACE student_data;

ALTER TABLE students
  ADD CONSTRAINT pk_students PRIMARY KEY (student_id)
  USING INDEX TABLESPACE student_index;

ALTER TABLE students
  ADD CONSTRAINT uk_students_license
  UNIQUE (state, license_no)
  USING INDEX TABLESPACE student_index;

ALTER TABLE students
   ADD CONSTRAINT ck_students_st_lic
   CHECK ((state IS NULL AND license_no IS NULL) OR
          (state IS NOT NULL AND license_no is NOT NULL));

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值