Oracle常用表管理操作

  1. 创建表. 基本与标准SQL相同,不过要加上指定表空间的子语句如: TABLESPACE abc
  2. 查询表信息
    SELECT table_name, owner, tablespace_name, temporary FROM dba_tables;

    SELECT segment_name, owner, tablespace_name, extents, blocks FROM dba_segments WHERE segment_name = '表名';

    SELECT object_id, object_name, object_type, status, created FROM dba_objects; 

    SELECT index_name, table_name, tablespace_name, status, FROM dba_indexes;
  3. 创建临时表以加快操作速度.(只会话内可见)
    CREATE GLOBAL TEMPORARY TABLE abc.xxx ON COMMIT PRESERVE|DELETE ROWS AS (SELECT * FROM xxx WHERE xxx01 = 1);
    其中: ON COMMIT PRESERVE ROWS 数据在事务提交后还可用    ON COMMIT DELETE ROWS 是默认值,数据只在事务中可见
  4. 变更表的存储参数
    ALTER TABLE abc.xxx PCTFREE 20 PCTUSED 50;
  5. 手动为表多分配一个区段
    ALTER TABLE abc.xxx ALLOCATE EXTENT [SIZE 10M] [DATAFILE 'c:/abc/xxx']
    不指定SIZE时根据NEXT_EXTENT参数自动分配大小.不指定DATAFILE时,在该表所在表空间的任一文件中创建.DATAFILE不可以指定表空间所属文件以外的文件.
  6. 移动表到另一表空间(注意需要重建表所属的索引,变更后dba_objects表的对应索引状态是有效,但是dba_indexes表的状态就是失效.此时dba_objects表的数据不可信)
    ALTER TABLE xxx MOVE TABLESPACE tablespace_name;
    重建索引:          ALTER INDEX index_name REBUILD TABLESPACE tablespace_name;
  7. 重命名表中一列
    ALTER TABLE xxx RENAME COLUMN old_name TO new_name;
  8. 删除表中一列
    a.) ALTER TABLE xxx DROP COLUMN col_name CASCADE CONSTRAINTS CHECKPOINT 500;
        其中CHECKPOINT 500意为每500行操作执行一次检查点.
    b.) 如果执行中系统崩溃,以以下命令继续执行:
         ALTER TABLE xxx DROP COLUMN CONTINUE;
    c.) 由于删除列时需要占用大量资源执行操作,在繁忙时无法随便使用.可先将其失效,而后找时间删除.语法如下(不可逆转):
         ALTER TABLE xxx SET UNUSED col_name CASCADE CONTRAINTS;
    d.) 删除未占用的列
         ALTER TABLE DROP UNUSED COLUMNS CHECKPOINT 1000;
  9. 清空和删除表
    TRUNCATE TABLE xxx;
    DROP TABLE xxx [CASCADE CONSTRAINTS];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值