Oracle数据库—— 约束
Posted 秋风de领域
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据库—— 约束相关的知识,希望对你有一定的参考价值。
(一)什么是约束
约束是表级的强制规定
有以下五种约束
- NOT NULL :非空
- UNIQUE:唯一
- PRIMARY KEY:主键
- FOREIGN KEY:外键
- CHECK:检查
注意约束
- 如果不指定约束名 ,Oracle server 自动按照 SYS_Cn 的格式指定约束名
- 创建和修改约束:
- 建表的同时
- 建表之后
- 可以在表级或列级定义约束
- 可以通过数据字典视图查看约束
(二)表级约束和列级约束
- 作用范围:
- ①列级约束只能作用在一个列上
- ②表级约束可以作用在多个列上(当然表级约束也 可以作用在一个列上)
- 定义方式:列约束必须跟在列的定义后面,表约束不与列一起,而是单独定义。
- 非空(not null) 约束只能定义在列上
约束定义语法:
CREATE TABLE [schema.]table (
column datatype [DEFAULT expr] [column_constraint],
...
[table_constraint]
[,...]);
(三)创建约束定义
1、not null约束
定义非空约束后,赋值为null会报错
2、unique约束
可以定义在表级或列级
定义该约束的列不允许出现重复值
3、primary key约束
可以定义在表级或列级
主键特点:非空且唯一 即primary key = not null + unique
4、foreign key约束
可以定义在表级或列级
增加数据时,外键约束的列的值必须在父表中有值
FOREIGN KEY 约束的关键字
- FOREIGN KEY: 在表级指定子表中的列
- REFERENCES: 标示在父表中的列
- ON DELETE CASCADE(级联删除): 当父表中的列被删除时,子表中相对应的列也被删除
- ON DELETE SET NULL(级联置空): 子表中相应的列置空
5、check约束
定义每一行必须满足的条件
(四)添加约束
使用 ALTER TABLE 语句:
- 添加或删除约束,但是不能修改约束
- 有效化或无效化约束
- 添加 NOT NULL 约束要使用 MODIFY 语句
1、添加删除约束
-- 在工资上添加一个非空约束
-- 删除name的非空约束
-- 给name添加unique约束
2、无效化约束
3、激活约束
- ENABLE 子句可将当前无效的约束激活
- 当定义或激活UNIQUE 或 PRIMARY KEY 约束时系统会自动创建UNIQUE 或 PRIMARY KEY索引
4、查询约束(了解)
-- 查询EMPLOYEES表中的约束信息
5、查询定义约束的列
-- 查询EMPLOYEES表中定义约束的列
(五)总结
1、创建和修改约束
2、描述约束的类型:
- NOT NULL
- UNIQUE
- PRIMARY KEY
- FOREIGN KEY
- CHECK
以上是关于Oracle数据库—— 约束的主要内容,如果未能解决你的问题,请参考以下文章