Oracle数据库对象-约束

为什么需要约束:
因为一张表只能存在一个主键,外键和字段可存在多个,但可能会存在不为空的情况!所以在创建一个表的时候肯定要对表进行重重约束,使得表更规范!但在使用没有约束语句的sql语句创建的表是无法区分主外键和判断是否可空的问题,所以在创建表的sql语句上加入约束语句来直接给表与表的列进行非空性约束,唯一性约束,主键约束,外键约束,判断性约束,使得表更规范,用起来也不容易出现漏洞!

not null 约束
作用:只能定义在列级,并且保证列值不能为空

unique约束
作用:唯一约束,允许出现多个空值:null。
使用范围:可以定义在表级或列级

primary key约束
作用:约束外键
使用范围:可以定义在表级或列级

foreign key约束
作用:使用foreign key在表级指定子表中的外键列,在使用references标示在父表中的主键列
on delete cascade(级联删除): 当父表中的列被删除时,子表中相对应的列也被删除
on delete set null(级联置空): 子表中相应的列置空
使用范围:可以定义在表级或列级

check约束
作用:定义每一行必须满足的条件
使用范围:可以定义在表级或列级

注意:只有unique约束不仅可以直接在声明列的后面进行约束,还可以在声明完所有列后再使用约束语句进行约束
例子:在这里插入图片描述

add添加约束
使用 alter table 语句:
添加或删除约束,但是不能修改约束,仅能对约束进行有效化或无效化起到修改的作用
添加not null约束要使用 modify语句
例子:在这里插入图片描述
drop constraint删除约束
alter table employees
drop constraint emp_manager_fk;
例子:
在这里插入图片描述

disable constraint无效化约束
在alter table 语句中使用 disable子句将约束无效化。
例子:
在这里插入图片描述
enable constraint激活约束
enable 子句可将当前无效的约束激活
当定义或激活unique或 primary key约束时系统会自动创建unique或 primary key索引
例子:
在这里插入图片描述
查询约束
查询约束具体信息:可使用数据字典视图 user_constraints
查询定义约束的列:可使用数据字典视图 user_cons_columns
例子:
在这里插入图片描述
重点难点:
not null 约束是只定义在列级的约束,
unique约束,primary key约束,foreign key约束,check约束既可以定义在列级,也可以定义在表级

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值