ITPub博客

首页 > 数据库 > Oracle > Oracle OCP(21):管理表

Oracle OCP(21):管理表

原创 Oracle 作者:Ryan_Bai 时间:2019-01-29 15:06:43 0 删除 编辑

一、官档

  • 11g:BOOK → Database SQL Language Reference → 12 SQL Statements: ALTER TABLE to ALTER TABLESPACE → ALTER TABLE

二、修改表属性

  • 给表增加注释

    COMMENT ON TABLE table_name
    IS '<comment_text>'
    
  • 修改表名

    ALTER TABLE <表名>
    RENAME TO table_name_new
    
  • 删除表

    DROP TABLE <表名>
    

三、修改列属性

  • 添加列

    ALTER TABLE <表名>
      ADD (<字段名> <字段类型>)
    
  • 修改列名

    ALTER TABLE <表名>
    RENAME COLUMN <字段名_old> TO <字段名_new>
    
  • 删除列

    ALTER TABLE <表名>
    DROP COLUMN <列名>
    
  • 给列增加注释

    COMMENT ON COLUMN <表名>.<列名> IS '<comment_text>';
    
  • 设置列为不可用

    ALTER TABLE <表名>
      SET UNUSED(<列名>)
    
  • 修改列类型

    ALTER TABLE <表名>
    MODIFY (<列名> <字段类型>)
    

四、修改约束

  • 设置列不为空

    ALTER TABLE <表名>
    MODIFY <字段名> NOT NULL
    
  • 添加唯一值约束

    ALTER TABLE <表名>
      ADD CONSTRAINT UK_<字段名> UNIQUE(<字段名>)
    
  • 添加主键约束

    ALTER TABLE <表名>
    MODIFY <字段名> Primary Key
    
  • 删除列主键约束

    ALTER TABLE <表名>
    DROP PRIMARY KEY
    
  • 添加检查约束

    ALTER TABLE <表名>
      ADD CONSTRAINT CK_<字段名> CHECK(<限定内容>)
    
  • 添加外键约束

    ALTER TABLE <表名>
      ADD CONSTRAINT FK_<表名缩写>_<字段名> FOREIGN KEY(<列名7>) REFERENCES <从表名>(<从表主键>)
      [on delete cascade/on delete set null]
    

    如果你需要删除的数据被其他数据所参照,那么你应该决定到底希望oracle怎么处理那些参照这些即将要删除数据的数据的,你可以有三种方式:

    • 禁止删除。这也是oracle默认的

    • 将那些参照本值的数据的对应列赋空,这个需要使用on delete set null关键字

    • 将那些参照本值的数据一并删除,这个需要使用on delete cascade关键字

  • 修改约束名

    alter table <表名>
    rename constraint <constraint_old_name> to <constraint_new_name>
    
  • 删除约束

    ALTER TABLE <表名>
    DROP CONSTRAINT <约束名>
    
  • 禁用外键约束

    ALTER TABLE <表名>
    DISABLE CONSTRAINT <约束名>
    
  • 启用外键约束

    ALTER TABLE <表名>
    ENABLE CONSTRAINT <约束名>
    
  • 除级联约束

    ALTER TABLE <表名>
    DROP (pk,fk,col1) CASCADE CONSTRAINTS
    

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31490526/viewspace-2565149/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle 10g OCE、OCA、OCP; Oracle 11g OCP、OCM; MySQL 5.6 OCP; Oracle 11g OCP讲师; 屈臣氏首席DBA;

注册时间:2017-09-18

  • 博文量
    52
  • 访问量
    20080