oracle数据库对象管理——约束

约束

定义: 强加在表上的规则或条件,可以确保表中的数据满足业务规则,保证数据完整性。

5种类型

  1. 主键约束(primary key):用于唯一地标识表中的每一行,主键列不能重复且不能为空。
  2. 外键约束(foreign key):用于定义主表和从表之间的约束关系,外键约束定义在从表(被约束的列称为外键),主表则必须具有主键约束和唯一约束。外键约束要求外键列数据必须在主表的主键列存在或者为空。删除主表的记录时,同时删除从表的相关记录,或者约束列设置为空,或者限制删除主表被引用的记录。
  3. 唯一约束(unique):用于保证列上的数据不重复,在一个数据表中可以定义多个唯一约束。
  4. 检查约束(check):用于为列上的数据增加限制条件,在一个列上可以定义多个检查约束。
  5. 非空约束(not null):用于保证列上的数据不能为空值(null)

定义约束

约束可以在create table_name时创建,也可以通过alter table_name时创建。

//在创建表时创建约束
create table tb_s(
	sno char(6),
	sname char(10),
	sex char(1) check(sex in ('M','F')),
	birthday date,
	mail char(60),
	classNo char(6)
)
//通过修改表的形式创建约束
 alter table phone add constraint CK_tbs_mail check(mail like %@%);                                                        

添加约束

//格式
alter table table_name add constraint constraint_name constraint_type(content);
//为sno列添加主键约束
alter table tb_s add constraint PK_tbs_sno primary key(sno);
//为classNo列添加参照约束,参照tb_sc表中的classNo
alter table tb_s add constraint FK_tbs_classNo foreign key (classNo) references tb_sc(classNo);
//为mail列添加唯一约束
alter table tb_s mail add constraint Unique_tbs_mail unique(mail);
//为mail添加非空约束
alter table tb_s modify mail not null;
//为mail添加检查约束
 alter table phone add constraint CK_tbs_mail check(mail like %@%);   

删除约束

alter table table_name drop constraint constraint_name;

关于外键约束

表与表刚创建的时候没有联系,所以需要后期添加外键。

alter table 主表名 add constraint 外键约束名称 foreign key (主表字段) references 从表名(从表字段);
例:
alter table tb_s add constraint FK_tbs_classNo foreign key (classNo) references tb_sc(classNo);
解释:给表tb_s的classNo字段添加了一个外键约束,参照为tb_sc表的classNo字段。
即:当tb_s.classNo插入一个tb_sc.classNo中没有的数据时,会报“违反完整约束条件”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值