zoukankan      html  css  js  c++  java
  • 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);

  • 相关阅读:
    007-搭建框架-开发AOP框架
    007-安装百度云,搜狗输入法,播放器
    006-重装yum
    005-快捷键,host,查看版本
    004-ibus输入法,快捷键,浏览器
    003-centos搭建idea开发java
    002-命令行模式安装图形界面
    006-网站统计中的数据收集原理及实现
    007-sql整体概述
    017-Hadoop Hive sql语法详解7-去重排序、数据倾斜
  • 原文地址:https://www.cnblogs.com/Ronson-Shen/p/3287214.html
Copyright © 2011-2022 走看看