zoukankan      html  css  js  c++  java
  • Oracle表、列、约束的操作

    获得有关表的信息

    可以直接DESCRIBE

    DESC[RIBE] table_name;

    可以通过数据字典

    SELECT * 
    FROM user_tables
    WHERE table_name =xxxx;
    [or  WHERE table_name IN ('xxxx','xxxx')]

    重命名表

    RENAME table_old_name TO table_new_name;

    截断表

    删除表中的所有行,并重置表的存储空间,表的表名列属性等会保留。 

    TRUNCATE table_name; 

    删除表

    DROP TABLE table_name;

     向表、列添加注释

    COMMENT ON TABLE table_name IS 'xxxxx';
    
    COMMENT ON COLUMN table_name.column_name IS 'xxxx';

    获得表、列的信息

    复制代码
    SELECT * 
    FROM user_tab_comments
    WHERE table_name='xxx';
    
    SELECT *
    FROM user_col_comments
    WHERE table_name='xxx'; 
    复制代码

    获得表中的列的信息

    SELECT *
    FROM user_tab_columns
    WHERE table_name='xxxx';

     添加列

    ALTER TABLE table_name
    ADD column_name type;

    重命名列

    ALTER TABLE table_name
    RENAME COLUMN column_old_name TO column_new_name; 

    修改列 

    ALTER TABLE table_name
    MODIFY column_name type;

    如果一个表中没有任何行或列为空值,可以将表列修改为任意一种数据类型,tpye 为数据类型。

    修改列的默认值 

    ALTER TABLE table_name
    MODIFY column_name DEFAULT xxxx;

     删除列

    ALTER TABLE table_name
    DROP COLUMN column_name;

    对列添加约束 

     添加CHECK 约束

    ALTER TABLE table_name
    ADD CONSTRAINT constraint_name
    CHECK ( column_name IN ('xxx','xxxx'));
    [or CHECK ( column_name >0)]

     添加一个约束,表中现有的行一定要符合这个约束条件。

    添加NOT NULL 约束

    CREATE TABLE table_name
    MODIFY column_name [CONSTRAINT constraint_name] NOT NULL;

     NOT NULL 是用MODIFY 添加的, 上述[]是为这个约束添加一个名字。

    添加FOREIGN KEY约束

    复制代码
    ALTER TABLE table_name
    DROP COLUMN column_name;
    
    ALTER TABLE table_name
    ADD [CONSTRAINT constraint_name]
    column_name REFERENCES table_name1(column_name1) [ON DELETE {CASCADE | SET NULL} ];
    复制代码

    通常需要先删除该列然后通过添加列时吧FOREIGN KEY 一起添加。 

     ON DELETE CASCADE 为级联删除。

    ON DELETE SET NULL 为外键被删除时该位置设 NULL。

     添加UNIQUE 约束

    ALTER TABLE table_name
    ADD CONSTRAINT constraint_name UNIQUE(column_name);

    删除约束

    ALTER TABLE table_name
    DROP CONSTRAINT constraint_name;

    禁用约束

    默认情况下,约束在创建是启动,可以再创建时禁用约束。

    ALTER TABLE table_name
    ADD CONSTRAINT constraint_name UNIQUE(column_name) DISABLE;

    启动约束、禁用约束

    ALTER TABLE table_name
    {ENABLE|DISABLE } CONSTRAINT constraint_name;

    启动约束时表中数据必须满足约束条件,通过制定 ENABLE NOVALIDATE 可以选择只对新数据应用某个约束。

    ALTER TABLE table_name
    ENABLE NOVALIDATE CONSTRAINT  constraint_name;

    约束默认情况下是 ENABLE VALIADTE;

    延时约束

    在事务被提交是强制执行的约束。在添加约束是指定 DEFERRABLE ,约束添加后不能修改,只能通过删除重新添加。有两种标识,

    INITIALLY INNEDIATE :每次向表中添加数据、修改表的数据或从表中删除数据是都检测则个约束。

    INITALLY DEFERRED :只在有事务被提交是,才检测这个约束。

    ALTER TABLE table_name
    ADD CONSTRAINT constraint_name UNIQUE(column_name) DEFERRABLE INITIALLY DEFERRED;

    获得有关约束的信息

    SELECT *
    FROM user_constraints
    WHERE table_name = 'xxx';

    可以通过表 all_constraints 获得所有可以访问的约束信息。

    获得有关列的约束的信息

    SELECT *
     FROM user_con_columns
    WHERE table_name ='xxx';
  • 相关阅读:
    CH Dream(侠客行)
    EDS(特征)
    EDS(架构)
    通过红外线设备进行TCP/IP互连
    CH Dream(道路)
    北漂实习那些话【一】
    程序员,有时我们应该懂得
    迷茫的IT小小鸟
    《PHP求职宝典》PHP语言基础笔记
    Android中Activity启动模式详解
  • 原文地址:https://www.cnblogs.com/rusking/p/4605934.html
Copyright © 2011-2022 走看看