• DDL-Oracle中的5种约束总结(未完待续)


    --Oracle中系统的完整性约束包括主键、外键、unique(主键、外键、unique统称为键约束)、not null、check、index一共5种类型

    --主键
    --在创建表dept时声明主键deptno,同时将主键命名为pk_deptno,同时声明主键索引建立在索引表空间indx中
    create table dept
    (depno number(2)
    ,dname varchar2(20)
    ,constraint pk_deptno primary key(depno)
    using index tablespace indx);
    /*Oracle会自动为主键创建索引,Oracle强烈建议,任何应用程序至少需要创建两个表空间,
    一个用于存储表数据,一个用于存储索引数据*/
    --使用alter table语句定义主键
    alter table dept drop constraint pk_deptno;
    alter table dept add constraint pk_deptno primary key(depno);
    --使用alter table语句修改主键状态
    alter table dept disable constant pk_deptno;
    alter table dept enable constant pk_deptno;--or
    alter table dept enable primary key;
    --使用alter table语句删除主键
    alter table drop constraint pk_deptno;--or
    alter table drop primary key;

    --外键
    --在创建表emp是定义外键deptno,该外键引用dept表中的主键deptno,并且指定主键删除时,外键所对应的列也删除
    create table emp
    (empno number(4) constraint pk_empno primary key --另一种设置主键的方式
    ,ename varchar2(10)
    ,sex char(2)
    ,job varchar2(10)
    ,deptno number(2)
    ,constraint fk_deptno foreign key(deptno)
    references dept(deptno) on delete cascade);
    --使用alter table语句定义外键
    alter table emp add constant fk_deptno foreign key(deptno)
    references dept(deptno) on delete cascade;
    --使用alter table语句修改外键状态
    alter table emp disable constraint fk_deptno;
    --使用alter table语句删除外键
    alter table emp drop constant fk_deptno;

    --unique唯一性约束
    create tabale

    --not null约束,not null约束引用在单一列上,表示该列不能为空(not null一般是列级别的约束)
    create table emp
    (empno number(4)
    ,ename varchar2(10) not null
    ,sex char(2) check (sex='男' or sex='女')
    ,job varchar2(10)
    ,deptno number(2)
    ,constraint pk_empno primary key(empno)
    ,constraint fk_deptno foreign key(deptno)
    references dept(deptno) on delete cascade);
    --使用alter table语句,not null在表创建后指定,其语法和一般的约束语法不同
    alter table emp modify ename not null;

    --check约束,比如工资不能为负,性别应该只有男和女
    --check约束可以用来定义某个列级别上的约束,但也可以为某一个表增加约束,即如果check约束保护多列则必须使用表约束语法
    create table emp
    (empno number(4) constraint pk_empno primary key --另一种设置主键的方式
    ,ename varchar2(10)
    ,sex char(2) check (sex='男' or sex='女')
    ,job varchar2(10)
    ,deptno number(2)
    ,constraint fk_deptno foreign key(deptno)
    references dept(deptno) on delete cascade);

  • 相关阅读:
    Chrony时间同步
    使用cfssl生成自签证书
    Docker运行时资源限制
    Docker的OverlayFS存储驱动
    Docker文件挂载总结
    Docker配置文件deamon.json详解
    Docker网络模式详解
    Dcoker命令使用详解
    Docker架构分解
    《数据采集和分析平台》笔记
  • 原文地址:https://www.cnblogs.com/Ronson-Shen/p/3287214.html
Copyright © 2020-2023  润新知