Oracle数据库(十)—— 约束

 

(一)什么是约束

约束是表级的强制规定

有以下五种约束

  • NOT NULL :非空
  • UNIQUE:唯一
  • PRIMARY KEY:主键
  • FOREIGN KEY:外键
  • CHECK:检查

注意约束

  • 如果不指定约束名 ,Oracle server 自动按照 SYS_Cn 的格式指定约束名
  • 创建和修改约束:
  1. 建表的同时
  2. 建表之后
  • 可以在表级或列级定义约束
  • 可以通过数据字典视图查看约束

(二)表级约束和列级约束

  • 作用范围:
  •   ①列级约束只能作用在一个列上
  •   ②表级约束可以作用在多个列上(当然表级约束也 可以作用在一个列上)
  • 定义方式:列约束必须跟在列的定义后面,表约束不与列一起,而是单独定义。
  • 非空(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

猜你喜欢

转载自www.cnblogs.com/wffrzh/p/9420162.html