Oracle约束:非空约束、主键约束、外键约束、唯一约束和检查约束

一、非空约束(只能在列级设置,不能在表级设置)

1、在创建表时设置非空约束

CREATE TABLE table_name(
column_name datatype NOT NULL,……
);

 

 

2、在修改表时添加非空约束

ALTER TABLE table_name
MODIFY column_name datatype NOT NULL;

 

 

 

3、在修改表时去除非空约束

ALTER TABLE table_name
MODIFY column_name datatype NULL;

 

二、主键约束

作用:确保表当中每一行数据的唯一性    非空    唯一

一张表只能设计一个主键约束

主键约束可以由多个字段构成(联合主键或复合主键)

1、在创建表时设置主键约束

在列级设置主键约束

CREATE TABLE table_name(
    column_name datatype PRIMARY KEY,……
);

 

在表级设置主键约束

CONSTRAINT constraint_name
PRIMARY KEY(column_name1,……)

 

使用desc user_constraints可以查看约束的名字等信息

 

 

2、在修改表时添加主键约束

ADD CONSTRAINT constraint_name
PRIMARY KEY(column_name1,……);

 

3、更改约束的名称

RENAME CONSTRAINT old_name TO new_name;

 

4、删除主键约束

禁用主键约束:

DISABLE|ENABLE CONSTRAINT constraint_name;

 

彻底删除主键约束:

DROP CONSTRAINT constraint_name;

 

DROP PRIMARY KEY[CASCADE]

 

三、外键约束(涉及两个表之间的关系)

1、在创建表时设置外键约束

  • 设置外键约束时,主表的字段必须是主键
  • 主从表中相应的字段必须是同一个数据类型
  • 从表中外键字段的值必须来自主表中的相应字段的值,或者为null值
CREATE TABLE table1
(column_name datatype REFERENCES
table2(column_name),……);

table1位从表,table2位主表

 

在表级设置外键约束

CONSTRAINT constraint_name FOREIGN
KEY(column_name)REFERENCES
table_name(column_name)[ON DELETE CASCADE];

 

2、在修改表时添加外键约束

ADD CONSTRAINT constraint_name FOREIGN
KEY(column_name) REFERENCES 
table_name(column_name)[ON DELETE CASCADE];

 

3、删除外键约束

禁用外键约束:

DISABLE|ENABLE CONSTRAINT constraint_name;

 

 

彻底删除外键约束:

DROP CONSTRAINT constraint_name;

 

四、唯一约束

唯一约束和主键约束的区别

  • 主键字段值必须是非空的,唯一约束允许有一个空值
  • 主键在每张表中只能有一个,唯一约束在每张表中可以有多个
  • 唯一约束要求每个字段不能有重复值,可以有空值,但是空值只能有一个

1、在创建表时设置唯一约束

在列级设置唯一约束

CREATE TABLE table_name
(column_name datatype QUNIQUE,……);

 

在表级设置唯一约束

CONSTRAINT constraint_name
UNIQUE(column_name);

 

2、在修改表时添加唯一约束

ADD CONSTRAINT constraint_name
UNIQUE(column_name);

 

3、删除唯一约束 

DISABLE|ENABLE CONSTRAINT constraint_name;

禁用唯一约束

彻底删除唯一约束

DROP CONSTRAINT constraint_name;

 

五、检查约束

1、在创建表时设置检查约束

在列级设置检查约束:

CREATE TABLE table_name(
column_name datatype CHECK(expressions),……);

 

表级设置检查约束:

CONSTRAINT constraint_name CHECK(expressions);

 

2、在修改表时添加检查约束

ADD CONSTRAINT constraint_name
CHECK(expressions);

 

3、删除检查约束

禁用检查约束:

DISABLE|ENABLE CONSTRAINT constraint_name;

 

彻底删除检查约束:

DROP CONSTRAINT constraint_name;

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值