Oracle 约束的定义

    xiaoxiao2021-03-25  74

    约束用于确保数据库满足特定的商业逻辑或者企业规划

    -----------------------------------------------------------------------

    约束包括:not null 、unique、primarykey、foreign key、check

    not null约束  用于确保列不能为空(插入数据必须为该列提供数据 update操作不能将该列值设为null) 例:建立i_top表 并在top_r,name 列上定义not null约束 并且指定name列上的not null约束名为nn_name create table i_top(i_es not null,                    name varchar2(10) constraint nn_name not null,                    i_dd number(6,2)                     ); /*注如果指定约束名那么必须指定constraint选项, 如果不指定约束名那么Oracle会自动生成为sys_Cnnn的约束名*/ unique约束 用于唯一的标识列的数据(唯一列数的列值不能重复可以为空) 当定义唯一约束时,默认情况下Oracle会自动基于唯一约束列建立唯一索引,索引名与约束名完全一致 例:建立i_top表,并在name列上定义unique约束 create table i_top(                     i_id int,name varchar2(10),i_ee number(6,2),                     constraint u_name unique(name)           --指定unique约束名为u_name                    ); primary key 约束用于唯一地标识表行的数据(主键约束列不仅不能重复并且也不能为null) 例:建立i_top表中并在i_id列上定义primary key约束 create table i_top(                    i_id int primary key,                    name varcher2(10)                   ); foreign key约束 用于定义主从表的关系 (外部键约束要定义在从表上,但主表必须具有主键约束或者唯一约束,                                         当定义了外键约束之后,要求外部键列的数据必须是主表的主键列<或唯一列>中存在,或者为null) <定义外部键约束关键字:            foreign key:用于指定在表级定义外部键约束            references:用于指定主表名及其主键列            on delete cascade:用于指定级联删除选项            on delete set null:用于指定转换相关外部键值为null> 例:建立i_top表,并在表i_tops和i_top之间定义主从关系 create table i_top(                   i_id int,                   name varchar2(10),                   edon int constraint fk_edon references i_tops(edon)                   ); check 约束用于强制表行数据必须满足的条件 例:建立i_top表 并在top_s列上定义check约束  create table i_top(i_id int,name varcher2(10),i_top number(6,2),

                        check(i_top between 1000 and 5000))   --i_top列的值只能在1000到5000之间

    --------------------------------------------------------------------------------------------------- 定义复合约束: 例:建立ite表并在ite_id和ore_id列定义主键约束 create table ite(                  ore_id number(3),                  ite_id number(3),                  name varcher2(20),                  primary key(ore_id,ite_id)                  ); --------------------------------------------------------------------------------------------------
    转载请注明原文地址: https://ju.6miu.com/read-39155.html

    最新回复(0)