前言:约束分为两种,一种是列约束,一种是表约束。列约束是指定义在一个列上的约束,表约束指定义在两个或多个列上的约束。
10.PRIMARY KEY 约束:
ALTER TABLE MYTABLE ADD CONSTRAINTS NAME PRIMARY KEY (FIELD[,FIELD...]);
11.UNIQUE约束:
ALTER TABLE MYTABLE ADD CONSTRAINTS NAME UNIQUE (FIELD);
12.CHECK约束:
ALTER TABLE MYTABLE ADD CONSTRAINTS NAME CHECK (FIELD 表达式);
其中:CHECK 约束相当于validate,也分为列约束,表约束,并且对一个列可以定义多个CHECK约束。
13.FOREIGN KEY 约束:
ALTER TABLE MYTABLE ADD CONSTRAINTS NAME FOREIGN KEY FIELD REFERENCES MYTABLE2 (FIELD) ON DELETE CASCADE/SET NULL/ NO ACTION;
其中 ON DELETE分为三种模式:
CASCADE:级联删除 ,默认;
SET NULL :关联子表设置为NULL ,
NO ACTION:无操作,这种操作会发生错误,所以会被禁止。
14.删除、禁止、激活约束:
删除:
ALTER TABLE MYTABLE DROP CONSTRAINTS NAME;
禁止:
ALTER TABLE MYTABLE DISABLE CONSTRAINTS NAME;
ALTER TABLE MYTABLE MOIDFY CONSTRAINTS NAME DISABLE;
激活:
ALTER TABLE MYTABLE ENABLE CONSTRAINTS NAME;
ALTER TABLE MYTABLE MODIFY CONSTRAINTS NAME ENABLE;
15.使用约束的四种状态:
ENABLE VALIDATE:激活约束状态,对已存在的记录进行约束检查,并对以后添加的数据进行检查;
ENABLE NOVALIDATE:激活非验证约束,不对已存在 的记录进行约束检查,只能以后添加的数据进行检查;
DISABLE VALIDATE:禁止验证状态,对已存在的记录进行约束检查,ORACLE不允许添加数据;
DISABLE NOVALIDATE:禁用非验证状态,不对已厦的记录进行检查,也不对以后添加的数据进行检查。
ALTER TABLE MYTABLE MODIFY CONSTRAINTS NAME ENABLE VALIDATE/*/*/*.
16.延迟约束:
状态:
DEFERRABLE INITIALLY IMMEDIATE:在添加或修改语句时立即检查约束 ;
DEFERRABLE INITIALLY DEFERRED:在添加或修改语句时不立即检查,只在提交事务时检查约束 。
延迟约束性,只能在第一次ALTER TABLE ADD CONSTRAINTS时添加,不能建立约束之后又修改或添加约束的延迟性。但是可以在建立延迟性后修改状态。例如 :
建立 :
ALTER TABLE MYTABLE ADD CONSTRAINTS NAME PRIMARY KEY/UNIQUE/*/* FIELD_NAME DEFERRABLE INITIALLY IMMEDIATE;
修改:
ALTER TABLE MYTABLE MODIFY CONSTRAINTS NAME INITIALLY DEFERRED;
或者:
SET CONSTRAINT NAME DEFERRED;
17.查看约束:
查看表中的约束:
SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE,DEFERRED,DEFERRABLE,STATUS FROM USER_CONSTRAINTS ; 可以添加WHERE条件,比如:WHERE TABLE_NAME='MYTABLE';
查看列中的约束:
COLUMN COLUMN_NAME FORMAT A10;
SELECT CONSTRAINT_NAME, COLUMN_NAME FROM USER_CONS_COLUMNS ;同样可以添加WHERE条件。
分享到:
相关推荐
### Oracle学习笔记知识点详解 #### 一、Oracle简介 Oracle是一家知名的软件公司,以其数据库管理系统闻名全球。该公司成立于1977年,总部位于美国加利福尼亚州。Oracle不仅提供数据库解决方案,还涉及中间件、...
这个“个人学习Oracle笔记”文件很可能是作者在深入学习Oracle数据库的过程中积累的知识点总结,旨在帮助初学者从基础开始逐步掌握Oracle的核心概念和技术。 Oracle数据库的基础知识包括以下几个主要方面: 1. **...
### Oracle学习笔记要点 #### 一、SQL Plus的使用方法 - **命令行方式**: 在命令行中直接输入 `sqlplus` 命令,并随后输入用户名和密码。 - **客户端方式**: 使用Oracle提供的SQL Plus客户端工具进行登录。 - **Web...
以下是对Oracle学习笔记中提到的一些关键知识点的详细解释: 1. **SQL执行顺序**: SQL语句的执行顺序是:`FROM` -> `WHERE` -> `SELECT` -> `GROUP BY` -> `HAVING` -> `ORDER BY`。首先从`FROM`子句开始,确定...
这篇史上最全的Oracle笔记将为你提供全面的学习指导。 一、数据库基础 数据库(DataBase)是存储数据的系统,Oracle数据库允许用户以表格的形式组织和管理数据。在Oracle中,数据主要以表的形式存在,表是数据库中...
Oracle 数据库学习笔记是学习 Oracle 数据库的重要笔记,涵盖了 Oracle 数据库的基本概念、数据类型、表的创建和管理、用户管理、权限管理、数据操作等方面的知识点。 一、Oracle 数据库基本概念 * Oracle 数据库...
以下是对"三天学习Oracle笔记"中可能包含的知识点的详细解释: 1. **Oracle数据库架构**:Oracle数据库由多个组件构成,包括实例(Instance)和数据库(Database)。实例是运行在服务器上的内存结构和后台进程,而...
以下是对Oracle学习笔记和相关知识点的详细解析: 1. **基础概念与术语** - **SQL**:Structured Query Language,用于管理和处理关系数据库的标准语言。 - **RDBMS**:关系数据库管理系统,Oracle便是其中的代表...
### ORACLE创建外部表知识点详解 #### 一、创建外部表背景及意义 在Oracle数据库中,外部表是一种特殊的表类型,它允许直接访问文件系统中的数据文件,而无需将这些数据加载到数据库中。这种方式既节省了存储空间...
以下是一些从“学习Oracle笔记”中提取的关键知识点: 1. **DECODE 函数**:DECODE 函数在Oracle SQL中用于替代简单的IF...ELSE逻辑。在示例中,`decode(sex, '男', 1, 0)` 意味着如果性别为'男',则返回1,否则...
这篇笔记主要聚焦于Oracle的基础知识,包括SQL语句、数据类型、表的创建与管理、索引、视图以及事务处理等核心概念。 首先,让我们从SQL语言开始。SQL(Structured Query Language)是用于管理关系数据库的标准语言...
- **一对一、一对多、多对多关系**: 描述表之间的关联,如班长表与班级表、班级表与学生表、学生表与课程表。 - **主键**: 一个或一组字段,能唯一标识表中每一行,确保实体完整性。 - **表空间**: Oracle数据库...
Oracle 10g SQL 学习笔记涵盖了Oracle数据库的基础知识,包括版本信息、数据库系统特点、关系型数据库结构、SQL语言、操作环境以及常见的数据库操作。以下是对这些知识点的详细说明: 1. **Oracle 9i基础知识**: ...
### Oracle查询操作学习笔记知识点详解 #### 一、Oracle用户管理与权限分配 - **创建用户**:在Oracle中创建用户的基本语法为`CREATE USER username IDENTIFIED BY password`。例如,`CREATE USER xiaoming ...
这篇"Oracle学习完全笔记"旨在帮助初学者全面掌握Oracle的核心概念和技术。笔记分为多个部分,涵盖了Oracle的基础知识,包括SQL语言、数据库管理和用户管理。 首先,介绍的是Oracle的命令行客户端——SQL*Plus。SQL...
Oracle SQL是数据库管理员和开发人员在Oracle数据库系统中进行数据查询和管理的重要工具。这篇笔记主要涵盖了Oracle SQL的...这两份“Oracle SQL笔记”文档应包含了上述各个方面的详细解释和实例,值得仔细阅读和学习。
这份"Oracle笔记详解资料用例"涵盖了Oracle数据库的核心概念、安装配置、SQL语言、表和索引、存储结构、备份恢复、性能优化等多个方面,是学习和掌握Oracle数据库的宝贵资源。 首先,Oracle数据库的基础部分包括...
**函数**:与过程类似,但主要用于计算并返回值。如`fun_fun1`函数,接收一个雇员姓名作为参数,返回该雇员的年收入。函数必须使用`RETURN`语句指定返回类型,并在函数体中通过`SELECT`语句计算返回值。 #### 三、...