美文网首页
三、Oracle之约束

三、Oracle之约束

作者: Lord丶轩莫言弃 | 来源:发表于2019-08-06 15:16 被阅读0次

1、概述

  • 定义规则
  • 确保完整性

2、非空约束

  • 在创建表时设置非空约束
  • 在修改表时添加非空约束
  • 在修改表时去除非空约束
CREATE TABLE table_name(
    column_name datatype NOT NULL,...
);
ALTER TABLE table_name
MODIFY column_name datatype NOT NULL;
ALTER TABLE table_name
MODIFY column_name datatype NULL;

3、主键约束

  • 作用:确保表当中每一行数据的唯一性
  • 在创建表时设置主键约束
  • 在修改表时添加主键约束
  • 更改约束名称
  • 删除主键约束
CREATE TABLE table_name(
    column_name datatype PRIMARY KEY,...
);
CREATE TABLE table_name(
    column_name datatype,...
    CONSTRAINT constraint_name PRIMARY KEY(column_name1,...)
);
ALTER TABLE table_name
ADD CONSTRAINT constraint_name PRIMARY KEY(column_name1,...);
ALTER TABLE table_name
RENAME CONSTRAINT old_name TO new_name;
# 禁用
ALTER TABLE table_name
DISABLE|ENABLE CONSTRAINT constraint_name;
# 删除
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;
ALTER TABLE table_name
DROP PRIMARY KEY[CASCADE]

4、外键约束

  • 在创建表时设置外键约束
  • 在修改表时添加外键约束
  • 删除外键约束
CREATE TABLE table_name(
    column_name datatype REFERENCES table_name(column_name),...
);
CREATE TABLE table_name(
    column_name datatype,...
    CONSTRAINT constraint_name FOREIGN KEY(column_name1) REFERENCES table_name(column_name) [ON DELETE CASCADE]
);
ALTER TABLE table_name
ADD CONSTRAINT constraint_name FOREIGN KEY(column_name1) REFERENCES table_name(column_name) [ON DELETE CASCADE]
ALTER TABLE table_name
DISABLE|ENABLE CONSTRAINT constraint_name;
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;

5、唯一约束

  • 作用:保证字段值的唯一性

  • 唯一约束和主键约束的区别:

    • 主键字段值必须是非空的
    • 唯一约束允许有一个空值
    • 主键在每张表中只能有一个
    • 唯一约束在每张表中可以有多个
  • 在创建表时设置唯一约束

  • 在修改表时添加唯一约束

  • 删除唯一约束

CREATE TABLE table_name(
    column_name datatype UNIQUE,...
);
CREATE TABLE table_name(
    column_name datatype,...
    CONSTRAINT constraint_name UNIQUE(column_name),...
);
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
UNIQUE(column_name);
ALTER TABLE table_name
DISABLE|ENABLE CONSTRAINT constraint_name;
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;

6、检查约束

  • 作用:表中的值更具有实际意义
  • 在创建表时设置检查约束
  • 在修改表时添加检查约束
  • 删除检查约束
CREATE TABLE table_name(
    column_name datatype CHECK(expressions),...
);
CREATE TABLE table_name(
    column_name datatype,...
    CONSTRAINT constraint_name CHECK(expressions),...
);
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
CHECK(expressions);
ALTER TABLE table_name
DISABLE|ENABLE CONSTRAINT constraint_name;
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;

7、查找数据字典,获取约束名称

select constraint_name, constraint_type, status from user_constrains where table_name='表名'

Oracle中规定一张表中只能有一个主键,因此主键约束只能有一个。

外键约束涉及到两个表,比如部门表dept包括部门编号(deptno),员工表employee中的部门(deptnum)作为外键参照部门表中的deptno字段。

唯一约束要求每个字段不能有重复值,可以有空值,但是空值只能有一个。

相关文章

  • 三、Oracle之约束

    1、概述 定义规则 确保完整性 2、非空约束 在创建表时设置非空约束 在修改表时添加非空约束 在修改表时去除非空约...

  • 禁用外键约束来解决输入数据出错的问题之解决方案三

    第三种解决方案:采用Oracle 可延迟约束Deferable。 约束可以是deferrable或not defe...

  • Oracle约束

    永远要相信美好的事情即将发生 oracle学习 约束 约束其实就是一个规则为了使数据库数据能够符合商业逻辑或者企业...

  • Oracle约束

    什么是约束?约束是Oracle提供的自动保持数据库完整性的一种方法,它通过限制字段中数据、记录中数据和表之间的数据...

  • oracle约束

    1.主键直接在字段后加primary key即可或者在最后加主键约束或者在创建表后alter table 表名 a...

  • Acitviti清空Oracle表及约束

    Acitviti清空Oracle表及约束

  • Oracle之约束

    约束用于限制加入表数据的类型,目的是保证数据的一致性和完整性 创建格式:在创建表时规定约束(在Create添加),...

  • Oracle函数教程(1)书目录

    Oracle函数之abs(x) Oracle函数之sign(x) Oracle函数之ceil(x) Oracle函...

  • oracle之jdbc连接oracle

    转载链接 JDBC连接ORACLE的三种URL格式 oracle之jdbc连接oracle 格式1 使用SID 的...

  • Oracle高级语句书目录

    Oracle高级语句之with as Oracle高级语句之merge into Oracle高级语句之row_n...

网友评论

      本文标题:三、Oracle之约束

      本文链接:https://www.haomeiwen.com/subject/bwxwdctx.html