Oracle学习日记:约束的创建与管理

–约束的创建与管理
–非空约束
–name varchar2(20)notnull;

–唯一约束:数据列的内容不允许重复
–emaile varchat2(30)unique;
–空值不会收到唯一约束的限制 null
–在Oracle中,约束也是对象,使用数据字典查看
–select * from user_constraints;
–比较麻烦

–建立约束的时候给约束设置一个名字,格式:约束类型简写_字段 unique约束:uk_email;
constraint uk_email unique(email)–表示在email字段上设置了约束

–主键约束:唯一 + 非空:primary key
constraint pk_mid primarykey(mid);
–一般只在一张表设置一个主键,也可以设置多个:复合主键
constraint pk_mid_name primarykey(mid ,name);
–设置了复合主键,只有在两列的内容都相同是表示重复,但极少使用

–检查约束:在数据更新操作前设置一些过滤条件,只有满足条件
–才可以更新,使用check 简称ck
–例子,设置年龄时需要一个基本范围,性别只能是男或女
constraint ck_age check(age between 0 and 250);
–设置过多检查约束会影响性能,因此一般由程序进行检查
–在实际工作中较少使用

–查看约束对象,但这个数据字典只能告诉用户哪个表上有约束

–使用user_cons_columns表可以知道约束对象对应的列
col owner for A20;
col constraint_name for A20;
col table_name for A20;
col column_name for A20;
select* from user_cons_columns;

–外键约束foreign key 简称fk
–作用在两张数据表上的约束,使字表的数据受到父表的数据的约束
–模拟一个人有多本书的表
–限制1:在删除父表之前必须删除字表
–强制删除(比如A表有B表的外键,B表有A表的外键)
drop table memeber cascade constraint;–不到万不得已,不使用

–限制一:父表中的设为外键的关联字段,必须设置为主键约束或者
–唯一约束

–限制三:默认情况下,如果父表记录中有对应的子表记录,那么父表
–记录无法被删除,要想删除要先删子表记录

–数据的级联操作:
1级联删除,当父表记录删除,子表对应的数据也被删除
constraint fk_mid foreignkey(mid)preferences memeber(mid)
on delete cascade;
2级联更新,当父表记录删除,子表对应的内容设置为null
on delete set null

约束修改(在开发实践中,一般不修改约束)
1为表中增加约束:
alter table 表名称 add constraint 约束名称 约束类型(字段)
–此语法不能用在非空约束上,要想增加非空约束,只能修改表结构
alter table member modify(name varchar2(20) not null)

2删除约束
alter table 表名称 drop constraint 约束名称

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值