oracle之完整性约束

 数据库中的完整性约束有:

  1.主键约束(Primary)
  2.唯一约束(unique)
  3.检查约束(check)
  4.非空约束(not null)   --属于检查约束
  5.外键约束(foreign key)

首先先建一个学生表:

create table t_student_con(f_id int,f_name varchar2(30),f_sex char(2),f_age int,f_birth date default sysdate
);

--添加一个字段
alter table t_student_con
add f_email varchar2(30);

 1、主键约束:添加了主键约束的字段不能为null,且会自动添加唯一约束。

--添加一个主键约束
alter table t_student_con
add constraint pk_std_id primary key (f_id);

 2、唯一约束:添加了唯一约束的字段的值是唯一的,不能有重复。

--添加一个唯一约束
alter table t_student_con
add constraint uq_std_name unique(f_name);

3、检查约束:可以自定义数据的完整性,保证字段的数据不存在约束条件之外的数据。

--添加检查约束
alter table t_student_con
add constraint ck_std_sex check(f_sex='M' or f_sex='F')

4、非空约束:有非空约束的字段,值不能为空或者插入null值。

--非空约束是检查约束的一种,这种添加方法不是很常用
alter table t_student_con
add constraint nnull_std_email check( f_email is not null);

--我们一般会以修改表字段的方法来添加非空约束
alter table t_student_con modify(f_email varchar2(30) not null);

5、外键约束:若表之间存在联系,则建立外键约束可保证数据的完整性和规范性。

首先建立一个考试信息表:

create table t_student_exam(e_id int,--主键e_subject varchar2(30),--科目e_score number(5,2),--分数f_id int--学员信息的外键
);

下面为该表添加主键和外键:

--添加主键
alter table t_student_exam add constraint pk_exam_id primary key(e_id);
--添加外键
alter table t_student_exam add constraint fk_exam_student_id foreign key (f_id)
references t_student_con(f_id)
on delete cascade; --在删除学生信息的时候,级联删除从表的成绩信息

注意:添加了外键约束的表,若主表有对应的从表记录,需在添加外键约束时加上 on delete cascade 关键字,才可直接删除,此关键字表示级联删除。否则不能直接删除。

6、约束的删除
  语法:alter table t_student_exam drop constraint 约束名;

--删除约束
alter table t_student_exam drop constraint fk_exam_student_id;

  注意!我们可以用以上方法建立表的完整性约束,同时,我们也可以在建表时就建立约束。如下

create or replace table t_student_con(f_id int primary key,f_name varchar2(30),f_sex char(2) check(f_sex='M' OR f_sex='F'),--1、检查性约束f_age int,f_birth date default sysdate,constraint ck_std_age check(f_age>=1 and f_age<=60)--2、检查性约束
);

create table t_student_exam(e_id int,--主键e_subject varchar2(30),--科目e_score number(5,2),--分数f_id int REFERENCES T_STUDENT_CON(F_ID) ON DELETE CASCADE--学员信息的外键约束
);

转载于:https://www.cnblogs.com/wanglitao/p/4857143.html

oracle之完整性约束相关推荐

  1. Oracle域完整性约束

    我的Oracle数据库学习笔记 Day 4 域完整性约束 文章目录 我的Oracle数据库学习笔记 非空约束,默认值约束 check约束 域完整性约束:限制字段中的值的合理性,范围 约束方式: 非空约 ...

  2. Oracle实体完整性约束

    我的Oracle数据库学习笔记 Day 4 实体完整性约束 文章目录 我的Oracle数据库学习笔记 一 .数据完整性约束 的分类 二 .如何实现完整性约束 1. 主键约束 : 2. 如何给表中设置主 ...

  3. oracle故障一例,工作中遇到的oracle故障分析和处理一例

    工作中遇到的oracle故障分析和处理一例以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 案例类别 VAS网络 系统类型 ...

  4. 第一章 Oracle介绍

    Oracle 10.2 概念 第一章 Oracle介绍 1.Oracle介绍 本章提供了针对Oracle数据库服务器的概述,包含以下主题 l Oracle数据库体系结构 l Oracle数据库特点 l ...

  5. Oracle 10.2 概念 第一章 Oracle介绍

    Oracle 概念(Oracle 10.2) 1.Oracle介绍 本章提供了针对Oracle数据库服务器的概述,包含以下主题 l Oracle数据库体系结构 l Oracle数据库特点 l Orac ...

  6. 经典的ORACLE培训文档

    经典的ORACLE培训文档1 数据库的安全性.完整性.并发控制和恢复 为了保证数据库数据的安全可靠性和正确有效,DBMS必须提供统一的数据保护功能.数据保护也为数据控制,主要包括数据库的安全性.完整性 ...

  7. 各种Oracle索引类型介绍

    各种Oracle索引类型介绍 逻辑上: Single column 单行索引 Concatenated 多行索引 Unique 唯一索引 NonUnique 非唯一索引 Function-based函 ...

  8. oracle中constraint的使用,constraint用法总结 I .

    Oracle中的约束简单介绍 约束 Including Constraints 在数据库中使用约束(constraints)是为了在该数据库中实施所谓的"业务规则"其实就是防止非法 ...

  9. SQL中的CONSTRAINT用法总结

    主要就是增加数据约束的. Oracle中的约束简单介绍 约束   Including Constraints 在数据库中使用约束(constraints)是为了在该数据库中实施所谓的"业务规 ...

最新文章

  1. 题目:任意给定一个浮点数,计算这个浮点数的立方根。(基于二分法和牛顿迭代法)(基于Java实现)
  2. C++编程进阶4(C++中的强制类型转换运算符、不要返回自定义类内部成员的指针,引用和迭代器)
  3. 用jquery调用wcf下的各种错误码的解释。
  4. 加入公网github上的SAP organization
  5. MSSQL-to-MySQL v5.3, 从MSSQL迁移到mySQL的最佳工具
  6. 面试官角度的JVM面试
  7. CF617E XOR and Favorite Number
  8. HDU-2525 Clone Wars 模拟
  9. python空集合_python空集合
  10. ESP8266 wifi 模块配置,Wechat+APP控制实现
  11. pythonwhile循环love_while循环简介
  12. [转载] python学习笔记——@property装饰器
  13. 【网摘】ActiveX组件及其注册
  14. 一个程序媛的3年华为之路
  15. 基于排序变换混沌置乱算法的图像加密系统
  16. 台式计算机没有声音,我们家台式电脑没有声音,该怎样设置
  17. 小程序下单支付在我司的应用
  18. VS code 快速配置C语言编写环境
  19. linux 登陆 历史,linux记录每次登陆的历史命令
  20. SQL报错:Ambiguous column name ‘数据库某列’

热门文章

  1. 利用ClustrMaps | GoStats | 51la | Google Analytics统计和分析访问量
  2. 我摸鱼写的Java片段意外称霸Stack Overflow十年、征服6000多GitHub开源项目: 有bug!...
  3. Elasticsearch 架构原理—— 新数据写入过程
  4. uva-993-贪心
  5. linux下的shell脚本(基本)
  6. 优秀的用户体验设计,从讲好一个故事开始
  7. PHP关闭$_ENV后获取服务器参数的办法
  8. bootstrap 图标 由Glyphicons提供
  9. 关于使用struts2上传文件时获取不到文件内容的问题的解决方案
  10. java Hello World程序分析(翻译自Java Tutorials)