`
xiangxuehai_jiaer
  • 浏览: 91844 次
  • 性别: Icon_minigender_2
  • 来自: 西安
社区版块
存档分类
最新评论

Oracle中的约束

 
阅读更多

ORACLE提供了如下几种约束:NOT NULL 非空、UNIQUE 唯一、PRIMARY KEY 主键、FOREIGN KEY 外键、CHECK 条件检查。

一、not null约束

1、建立表时指定约束。

SQL> create table aa3(id number(10) constraint aa3_nn not null,

  2    name varchar2(20),

  3    company varchar2(20));

2、表建立好后再指定约束。

SQL> drop table aa3;

SQL> create table aa3(

  2     id number(10),

  3     name varchar2(20),

  4     company varchar2(20));

SQL> alter table aa3 modify(id constraint aa3_nn not null);

3、删除约束。

SQL> alter table aa3 drop constraint aa3_nn;

二、check条件检查

SQL> create table aa3(id number(10) constraint aa3_id_c check(id>=1),

  2    name varchar2(20),

  3    company varchar2(20));

属于列级约束。

 

SQL> create table aa3(id number(10),

  2    name varchar2(20),

  3    company varchar2(20),

  4    constraint aa3_id_c check(id>=1)

  5  );

属于表级约束。

注:约束中,非空约束必须是列约束。其他类型的约束都即可以是列约束,也可以创建为表约束。

三、unique约束

1、列级约束

SQL> create table aa3(id number(10) constraint aa3_id_u unique,

  2    name varchar2(20),

  3    company varchar2(20));

2、表级约束

SQL> create table aa3(id number(10),

  2    name varchar2(20),

  3    company varchar2(20),

  4    constraint aa3_id_u unique(id)

  5  );

四、主键约束

主键约束在效果上,相当于唯一约束+非空约束。也就是,即要求列值不能重复,又要求列值必须非空。要注意的是,在同一列上,不能即有主键约束,又有唯一约束。

五、外键约束

外键约束则必须主键结合在一起使用。在创建约束时,先必须先有一个主键,然后,根据此主键,创建一个相关联的外键约束。也就是说,外键约束必须对应一个主键,不能创建独立的外键约束。

 

创建表

create table emp1(id number(10), name varchar2(20), dept number(10));

create table dept1(dept number(10), dept_name varchar2(20));

 

设置主外键约束

alter table dept1 add(constraint dept1_dept_p primary key(dept));

alter table emp1 add(constraint emp1_dept_f foreign key(dept) references dept1(dept));

六、级联删除

         delete from dept1 where dept=3;不能删除数据,违背了主外键约束。

         将子表外键设为级联删除,这样删除主表部门3的数据时,子表有关部门3的数据也就跟着删除了。

alter table emp1 drop constraint emp1_dept_f;

SQL> alter table emp1 add(constraint emp1_dept_f

  2   foreign key(dep        t)

  3   references dept1(dept)

  4   on delete cascade);

ORACLE不允许删除父表。除非使用级联约束cascade constraints将先删除子表上的外键,再删除父表。

drop table dept1 cascade constraints;

七、约束的禁用与启用

1、约束的禁用

         Alter table 表名 disable constraint 约束名 cascade;

         在主外键约束中,先禁用外键,再禁用主键。

2、约束的启用

         Alter table 表名 enable constraint 约束名 cascade;

         在主外键约束中,先启用主键,再启用外键

分享到:
评论

相关推荐

    Oracle 约束错误约束错误

    在本文中,我们将讨论 Oracle 中的约束错误,特别是 ORA-02292 错误,该错误通常发生在试图删除或修改父表中的记录,但子表中存在对应的记录时。 ORA-02292 错误的原因是由于试图删除或修改父表中的记录,但子表中...

    Oracle的约束【Constraint】

    对于初学者而言,理解Oracle中的不同约束类型及其管理方式至关重要。 ##### 约束状态 约束的状态包括: 1. **ENABLED、VALIDATED**:此状态下,新插入的数据和现有数据均需符合约束条件,确保数据完整性和一致性...

    Oracle所有约束基本语法

    在Oracle中,约束是定义在表上的规则,用于限制可以存储在表中的数据类型和值。以下是对Oracle中各种约束的基本语法的详细解释: 1. **主键约束(Primary Key)**: - 主键约束用于标识表中的唯一记录,通常由一个...

    Oracle 关闭所有约束 存储过程

    应用于存在外键或其他约束时,需要跳过约束条件将数据导入表中,可使用该存储过程临时关闭或开启数据约束, 使用时可根据实际情况进行修改

    oracle 数据库约束笔记

    Oracle 数据库约束笔记 Oracle 数据库约束是一种机制,用于确保数据库数据的完整性和一致性。约束是指在数据库中强制执行某些规则,以确保数据的正确性和一致性。Oracle 数据库提供了多种类型的约束,包括 NOT NULL...

    Oracle定义约束 外键约束

    本文将详细介绍如何在Oracle数据库中使用**外键约束**来确保数据的参照完整性。 #### 二、什么是外键约束 外键约束是一种用于保证两个表之间数据一致性的机制。当两个表存在关联时,通过在外键表(子表)中设置外键...

    oracle基本约束语法

    在Oracle数据库中,约束是用于确保数据完整性的规则或规定,它们定义了表中的数据必须遵循的特定条件。约束可以在创建表时定义,也可以在表已经存在后通过修改表结构来添加。以下是对Oracle数据库中四种主要约束类型...

    Oracle约束详解 Oracle约束详解

    Oracle约束详解

    oracle约束详解

    ### Oracle约束详解 在Oracle数据库管理系统中,约束是用于确保数据完整性和一致性的规则或条件。这些约束可以被定义在表级别的字段上,用来限制存储在表中的数据类型。通过实施约束,我们可以确保数据的质量,并...

    oracle约束和索引笔记

    Oracle约束和索引是数据库设计和优化的核心概念。通过正确地应用约束,可以确保数据的准确性和一致性;而合理地创建和管理索引,则能够显著提升查询速度,提高整体系统性能。作为数据库管理员或开发者,理解和熟练...

    oracle中如何创建约束?

    在Oracle数据库中,创建约束是确保数据完整性和一致性的重要手段。约束可以分为多种类型,包括主键(PRIMARY KEY)、外键(FOREIGN KEY)、唯一(UNIQUE)、非空(NOT NULL)以及检查(CHECK)约束。本文将重点讨论...

    08 oracle的 约束 ppt

    根据提供的标题、描述以及部分可见内容,我们可以推测这份PPT主要介绍了Oracle数据库中的约束机制。在Oracle数据库中,约束是一种确保数据完整性和一致性的方法。接下来,我们将详细探讨Oracle数据库中常见的几种...

    Oracle约束详解.pdf

    1 1 、 e oracle 数据库有 5 5 种约束: :y primary n key,foreign key,unique,check,not null 2 2 、 如果某个约束只作用单独的字段,即可以在列级定义约束;也可以在表 级定义约束。但是如果某个约束作用于多...

    Oracle中定义常用约束对象的命令

    ### Oracle中定义常用约束对象的命令 在Oracle数据库中,为了确保数据的完整性和一致性,开发者经常使用不同的约束来限定表中的数据。本文将详细介绍五种常用的约束类型:非空约束(NOT NULL)、唯一性约束(UNIQUE...

    Oracle唯一约束.txt

    本篇文章将详细探讨Oracle数据库中唯一约束的定义、创建方法以及相关的应用场景。 #### 一、唯一约束的定义 唯一约束(UNIQUE constraint)是Oracle数据库提供的用于限制表中某些列的值的唯一性的机制。它可以应用...

    Oracle字段约束.docx

    本文将深入探讨Oracle字段约束的五种主要类型:主键约束、唯一性约束、非空约束、检查约束以及外键约束。 首先,主键约束(PRIMARY KEY)是表的核心组成部分,它定义了一个或一组列,其值必须唯一且不能为NULL。...

    数据库面试题4 oracle笔试 oracle例题

    在Oracle数据库的使用中,SQL语句的性能优化至关重要,尤其是在处理大规模数据时。优化SQL语句能够显著提升系统的响应速度,提高系统的可用性和效率。以下是一些关于SQL语句性能调整的重要原则和注意事项: 1. **IS...

    Oracle数据库的完整性约束规则详解

    本文将深入探讨Oracle数据库中的五种主要完整性约束规则:Check、NOT NULL、Unique、Primary Key和Foreign Key。 #### 二、Check约束 Check约束用于验证数据列的值是否满足特定的条件,如数值范围、字符集等。这种...

Global site tag (gtag.js) - Google Analytics