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数据库管理(8)——完整性约束 -> 正文阅读

[大数据]Oracle数据库管理(8)——完整性约束

数据的完整性就正确性、准确型,包括三种:实体完整性、参照完整性和用户自定义完整性。
实体完整性就是某一列的数据应该在正确的取值范围内,例如学生表中的学号就不能为负数。
参照完整性就是外键的取值范围应该在关联表对应的列的取值范围内,例如学生表中的班级编号就应该在班级表的班级编号范围内。
用户自定义完整性就是某些列的取值应该在依据其他表或列的取值范围进行计算后的范围内,例如学生表中的出生日期应该比入学日期小。

Oracle中主要通过约束、触发器、过程函数实现数据的完整性。
维护数据的完整性主要有“not null”、“unique”、“check”、“primary key”、“foreign key”五种。
not null:非空,只能在列内定义。
unique:唯一,不能重复,但可以为空,但只能有一个空值。一个表可以有多个列为“unique”。即可以在列中定义,也能在表中定义
primary key:主键,不能重复也不能为空。一个表只能有一列是“primary key”。即可以在列中定义,也能在表中定义
foreign key:外键。
check:可以按照用户要求自动检查。

SQL> create table t3(bianhao number(5) not null check (bianhao > 0 and bianhao < 100));
表已创建。
//查看表的约束
select * from user_constraints where table_name = 'T3';
//查看表的约束对应的列
select * from user_cons_columns where table_name = 'T3';
//两列联合唯一。如一个班里一个学生号只能有一个学生,班级编号可以重复、不同班级里可以有相同编号的学生
create table t4(class_id number(3) not null,student_id number(3) not null,student_name varchar2(10),unique(class_id,student_id));
//设置列的默认值
create table t5(id number(5),name varchar2(5),gongzi number(8,2) default 1000);
//给带默认值的列赋值的两种方式
insert into t5 values(1,'Tom',default);
insert into t5(id,name) values(2,'Jim');
//创建主键
create table student2(id number(5) primary key,name varchar2(5));
//创建外键,关联另一个表的主键
create table address2(id number(5),address varchar2(20),foreign key(id) references student2(id));
//创建主键的5种方式.第一种:在列中定义
create table user1(userid number(10) primary key,username varchar2(20));
//第二种:在列中定义,同时定义约束名
create table user2(userid number(10) constraint pk_01 primary key,username varchar2(20));
//第三种:在列定义后定义
create table user3(userid number(10),username varchar2(20),primary key(userid));
//第四种:在列定义后定义,同时定义约束名
create table user4(userid number(10),username varchar2(20),constraints pk_02 primary key(userid));
//第五种:先创建表,再添加主键
create table user5(userid number(10),username varchar2(20));
alter table user5 add constraints pk_03 primary key(userid);
//删除约束
alter table user2 drop constraint pk_01;
//删除主键
alter table user1 drop primary key;
//如果出错:ORA-02273:此唯一/主键以被某外键引用,可以
alter table user1 drop primary key cascade;
//删除主键被引用的表
drop table user1 cascade constraints;
//暂时禁用主键。禁用主键后可以在该列插入重复的值。
alter table user3 disable primary key;
//恢复主键。若在禁用主键期间插入了重复值,恢复主键时会报错:“违反主键”
alter table user3 enable primary key;

查看表约束
查看表约束对应的列

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-24 10:37:42  更:2021-09-24 10:39:29 
 
开发: 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/23 22:50:06-

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