IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Oracle--完整性与约束 -> 正文阅读

[大数据]Oracle--完整性与约束

Oracle的完整性与约束

完整性

解释

数据完整性是指数据的精确性可靠性,它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的

分类

实体完整性
实体完整性要求每一个表中的字段都不能为空或者重复的值。
通过主键约束唯一约束实现实体完整性

域完整性
域完整性又称为列完整性,指定一个数据集对某一个列是否有效和确定是否允许空值
通过默认值约束非空约束check约束实现域完整性。


参照完整性
参照完整性是指通过定义一张表中外键与另一张表中主键之间的引用规则来约束这两张表之间的联系
有参照完整性的两张表,当修改一张表的外键(增删改)时,系统会自动对照另一张表中的主键,从而阻止一些不正确的数据的操作。
通过外键约束实现。


自定义完整性
解释
自定义完整性则是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。这一约束机制一般不应由应用程序提供,而应由关系模型提供定义并检验,用户定义完整性主要包括字段有效性约束和记录有效性。

自定义完整性通过存储过程触发器实现。

约束

定义

指定表中一列或多列可以接受的数值格式

分类

非空约束
not null–防止null值进入指定的列,在单列基础上,默认情况下,Oracle允许在任何列中有NULL值


检查约束
检查在约束中指定的条件是否得到了满足。


唯一约束
保证在指定的列中没有重复值。在该表中每一个值或每一组值都是唯一的。


主键约束
用来唯一的标识出表的每一行,并且防止出现NULL值,一个表只能有一个主键约束。


外键约束
通过使用公共列在表之间建立父子关系,在表中定义的外键可以指向另一个表的主键或唯一键。

约束的建立

主键约束

方法一
create table tablename(
name varchar2(20) primary key
);
方法二
create table tablename(
name varchar2(20) ,
constraint pri_name primary key(name)
);
方法三
alter table tablename add constraint pri_name primary key(name);

使用constraint可以指定约束名,不使用,系统自动创建约束名。

外键约束

方法一
create table tablename(
name varchar2(20) references tablename2(name2)
);
方法二
create table tablename(
name varchar2(20) ,
foreign key(name) references tablename2(name2)
);
方法三
alter table tablename add constraint name_pk foreign key(name) references tablename2(name2);

使用constraint可以指定约束名,不使用,系统自动创建约束名。

唯一约束

方法一
create table tablename(
name varchar2(20) unique not null
);

方法二
create table tablename(
name varchar2(20) ,

constraint name_uq unique(name)
);
方法三
alter table tablename add unique(name);

唯一键可以是多个字段组合,联合字段中可以包含空值。不加constraint,系统会起一个默认名。

检查约束

方法一
create table tablename(
name varchar2(20) not null check(name in (‘男’,‘女’))
);

方法二
create table tablename(
name varchar2(20) ,
check(name in (‘nan’,‘nv’))
);

方法三
alter table tablename add check(name in (‘data1’,‘dart’));

同样的constraint可以给约束起名。
规定只能是某些值可以用col in(‘data’,number……)

在某数值之间between num1 and num2 左开右开

必须是大写 col=upper(col)

必须有字母或者数字 col like ‘%[0-9]%’ or col like '%[a-z]%

不小于某个数值col<>2

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-08 13:53:00  更:2021-12-08 13:54:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:46:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码