加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle数据库(十)—— 约束

发布时间:2020-12-12 13:27:19 所属栏目:百科 来源:网络整理
导读:? (一)什么是约束 约束是表级的强制规定 有以下五种约束 NOT NULL :非空 UNIQUE:唯一 PRIMARY KEY:主键 FOREIGN KEY:外键 CHECK:检查 注意约束 如果不指定约束名 ,Oracle server 自动按照 SYS_Cn 的格式指定约束名 创建和修改约束: 建表的同时 建表

?

(一)什么是约束

约束是表级的强制规定

有以下五种约束

  • 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读