约束

作者: 李哈哈_bing | 来源:发表于2017-12-24 17:34 被阅读0次

    NOT NULL约束(只能定义在列级上):

    确保被约束的列所有记录都不能为空值。

    指定约束的名字:

    (ename varchar2(20)constraint emp_ename nn NOT NULL)
    

    UNIQUE约束:

    确保表中的某一列或者某几列组合的行数据必须唯一,每个表可以有多个unique约束,unique约束允许输入空值

    指定约束的名字:

    列级:(dname varchar2(20) contraint dept_d_uk unique)
    
    表级:(dname varchar2(20) contraint dept_d_uk unique(dname))
    

    PRIMARY KEY约束

    主键约束,用来确保表中的某一列或者某几列组合的所有行数据必须唯一,并且确保作为主键的一部分的列不能为空,每个表只有一个主键

    指定约束的名字:

    列级:
    (dname varchar2(20) contraint dept_dname_pk primary key)     
    
    表级:(dname varchar2(20) contraint dept_d_pk primary key(dname))  
    

    FOREIGN KEY约束:

    1.确保相关联的两个字段的关系:

    ————外键列的值必须在引用列值的范围内,或者为空;
    ————外键参照的列必须是主键或者唯一键;

    2.主键表主键值被外键参照时,主键记录不允许被删除
    列级:(`constaint emp_deptno_fk references dept(deptno)`)      
    
     表级:(`constraint emp_deptno_fk foreign key (deptno) references dept(deptno) `)  
    

    CHECK约束:

    检查性约束,确保某个列的所有行数据都必须满足的条件
     列级:(`constaint emp_deptno_ck check(deptno between 10 and 99)`)   
    
     表级:(`constraint emp_deptno_ck check(deptno between 10 and 99)
    

    追加约束
    1.在emp表中的mgr上添加一个外键约束指示该列的值必须引用emp表中的empno值。

    alter table emp add constraint  emp_mgr_fk
    foreign key (mgr)
    references emp (empno)
    

    2.追加NOT NULL约束

    alter table emp modify 
    (column {contraint 约束名} not null)
    

    删除约束
    1.从emp表中删除emp_mgr_fk约束

    alter table emp drop constraint emp_mgr_fk
    

    2.删除dept表上的primary key约束,并且删除相关联的在emp表deptno上的foreign key约束

    ALTER TABLE DEPT DROP PRIMARY KEY CASCADE(级联删除)
    

    禁用约束

    alter table 表名 disable constraint 约束名{cascade}
    

    启用约束

    alter table 表名 enable constraint 约束名
    

    相关的数据字典
    不行GGle

    相关文章

      网友评论

          本文标题:约束

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