Oracle学习(五)约束

本文详细介绍了SQL中的各种约束,包括非空约束、主键约束、外键约束、唯一约束及检查约束等。每种约束都提供了在创建表时及修改表时的使用方法,并附带了具体的SQL语法示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、非空约束(NOT NULL)

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;

二、主键约束(PRIMARY KEY)

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

CREATE TABLE table_name(
Column_name datatype PRIMARY KEY,);

2.联合主键

CONSTRAINT constraint_name
PRIMARY KEY(column_name1);

3.在修改表时添加主键约束

ADD CONSTRAINT constraint_name
PRIMARY KEY(column_name1,);

4.更改约束的名称

RENAME CONSTRAINT old_name
TO new_name;

5.将字段的主键约束进行禁用;

DISABLE|ENABLE CONSTRAINT constraint_name;

6.删除主键约束

DROP CONSTAINT constraint_name;
DROP PRIMARY KEY[CASCADE];

三、外键约束(REFERENCES)

1.在创建表时添加外键约束(上)

CREATE TABLE table1
(column_name datatype REFERENCES
table2(column_name,…);

2.在创建表时设置外键约束(下)

CONSTRAINT(关键字) constraint_name(外键约束的名字) FOREIGN
KEY(关键字)(column_name)REFERENCES
Table_name(column_name)[ON DELETE CASCADE]

3.在修改表时添加外键约束

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

四、唯一约束(UNIQUE)

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

  • 列级创建
CREATE TABLE table_name
(column_name datatype UNIQUE,…)
  • 表级创建
CONSTRAINT constraint_name
UNIQUE(column_name)

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

ADD CONATRAINT constraint_name
UNIQUE(column_name)

3.删除唯一约束

  • 暂时的禁用唯一约束
DISABLE|ENABLE CONSTRAINT constraint_name
  • 删除唯一约束
DROP CONSTRAINT constraint_name 

五、检查约束(CHECK)

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

六、约束总结

  • 非空约束:每张表只能有一个,可以由多个字段组成
  • 主键约束:涉及两个表之间的关系

1.在创建表时设置约束,既可以设置列级也可以设置表级

  • 只有非空约束,没有名字,并且只能在列级设置,并不能在表级设置。

2.在修改表时添加约束

  • 只有非空约束不同,代码如下:
ALTER TABLE table_name
MODIFY column_name datatype NOT NULL;

3.更改约束的名称(非空约束没名字)

RENAME CONSTRAINT old_name TO new_name

注意:数据字典(user_constraints)可以从这查名字

4.删除约束

  • 非空约束特殊

ALTER TABLE table_name
MODIFY column_name datatype NULL;
  • 其余约束
DISABLE|ENABLE CONSTRAINT constraint_name 			禁用|启用

DROP CONSTRAINT constraint_name

DROP PRIMARY KEY(删除主键约束)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值