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

本文介绍了数据库中的各种约束类型及其管理方式,包括非空约束、唯一约束、主键约束、检查约束和外键约束,并探讨了如何在Oracle中创建、查看及修改这些约束。

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

–约束的创建与管理
–非空约束
–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 约束名称

资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 华为移动服务(Huawei Mobile Services,简称 HMS)是一个全面开放的移动服务生态系统,为企业和开发者提供了丰富的工具和 API,助力他们构建、运营和推广应用。其中,HMS Scankit 是华为推出的一款扫描服务 SDK,支持快速集成到安卓应用中,能够提供高效且稳定的二维码和条形码扫描功能,适用于商品扫码、支付验证、信息获取等多种场景。 集成 HMS Scankit SDK 主要包括以下步骤:首先,在项目的 build.gradle 文件中添加 HMS Core 库和 Scankit 依赖;其次,在 AndroidManifest.xml 文件中添加相机访问和互联网访问权限;然后,在应用程序的 onCreate 方法中调用 HmsClient 进行初始化;接着,可以选择自定义扫描界面或使用 Scankit 提供的默认扫描界面;最后,实现 ScanCallback 接口以处理扫描成功和失败的回调。 HMS Scankit 内部集成了开源的 Zxing(Zebra Crossing)库,这是一个功能强大的条码和二维码处理库,提供了解码、生成、解析等多种功能,既可以单独使用,也可以其他扫描框架结合使用。在 HMS Scankit 中,Zxing 经过优化,以更好地适应华为设备,从而提升扫描性能。 通常,ScanKitDemoGuide 包含了集成 HMS Scankit 的示例代码,涵盖扫描界面的布局、扫描操作的启动和停止以及扫描结果的处理等内容。开发者可以参考这些代码,快速掌握在自己的应用中实现扫码功能的方法。例如,启动扫描的方法如下: 处理扫描结果的回调如下: HMS Scankit 支持所有安卓手机,但在华为设备上能够提供最佳性能和体验,因为它针对华为硬件进行了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值