Oracle入门之表管理

简介:

表是数据库中最基本的储存数据逻辑单元,它由行和列组成,oracle将表分为堆组织表(heap table),索引组织表(index organized table,IOT)和临时表(temporary table) 本节讲简要介绍下oracle的表管理(heap table),主要包括添加,删除列,更改列名,表名;创建相同的表,将表置为只读和读写模式,删除表和回闪表等操作

1:添加列
yang SQL>select * from test order by 1;

        ID BANNER
---------- --------------------------------
         1 one
         2 two
         3 three
         4 four


yang SQL>alter table test add (address varchar(10));

Table altered.

yang SQL>desc test;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER(38)
 BANNER                                             VARCHAR2(32)
 ADDRESS                                            VARCHAR2(10)

2:删除列
yang SQL>alter table test drop(address);

Table altered.

yang SQL>desc test;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER(38)
 BANNER                                             VARCHAR2(32)

yang SQL>alter table test rename column id to num;

Table altered.

3:改列名
yang SQL>desc test;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 NUM                                                NUMBER(38)
 BANNER                                             VARCHAR2(32)

yang SQL>alter table test rename to t1;

Table altered.

4:更改表名
yang SQL>desc t1;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 NUM                                                NUMBER(38)
 BANNER                                             VARCHAR2(32)


5:创建相同的表,在创建大表的时候,可以增加并发和关闭日志来提高效率
yang SQL>create table emp as select * from t1; //crate table  emp nologing parallel(degree 4)  as select * from t1;

Table created.

yang SQL>select * from emp order by 1;

       NUM BANNER
---------- --------------------------------
         1 one
         2 two7
         3 three
         4 four


6:将表置为只读和读写模式
yang SQL>insert into emp values(5,'five');

1 row created.

yang SQL>commit;

Commit complete.

yang SQL>alter table emp read only;

Table altered.

yang SQL>insert into emp values(6,'six');
insert into emp values(6,'six')
            *
ERROR at line 1:
ORA-12081: update operation not allowed on table "YANG"."EMP"


yang SQL>select count(*) from emp;

  COUNT(*)
----------
         5

yang SQL>alter table emp read write;

Table altered.


7:标记和删除未用的列
yang SQL>alter table emp set unused (banner);

Table altered.

yang SQL>desc emp;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 NUM                                                NUMBER(38)

yang SQL>alter table emp drop unused columns;

Table altered.

8:删除表与回闪表

yang SQL>drop table emp;

Table dropped.

yang SQL>desc emp;
ERROR:
ORA-04043: object emp does not exist


yang SQL>flashback table emp to before drop;

Flashback complete.

yang SQL>desc emp;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 NUM                                                NUMBER(38)

9:使用purge参数永久删除表,若不使用purge参数,删除的表将会保存在回收站中

yang SQL>drop table emp purge; //若要同时删除表相关的约束条件,可以使用“cascade constraints”参数

Table dropped.

yang SQL>flashback table emp to before drop;
flashback table emp to before drop
*
ERROR at line 1:
ORA-38305: object not in RECYCLE BIN

10:启用表压缩:
yang SQL>create table emp_address (id int,name char(10),alias char(10),address varchar2(16)) compress for all operations;

Table created.

yang SQL>desc emp_address;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER(38)
 NAME                                               CHAR(10)
 ALIAS                                              CHAR(10)
 ADDRESS                                            VARCHAR2(16)

yang SQL>select table_name,compression,compress_for from  dba_tables where table_name='EMP_ADDRESS';

TABLE_NAME                     COMPRESS COMPRESS_FOR
------------------------------ -------- ------------
EMP_ADDRESS                    ENABLED  OLTP

本文转自斩月博客51CTO博客,原文链接http://blog.51cto.com/ylw6006/461044如需转载请自行联系原作者


ylw6006

相关文章
|
7月前
|
Oracle 关系型数据库 数据库
9-4 Oracle管理表空间和数据文件
9-4 Oracle管理表空间和数据文件
|
8月前
|
SQL 监控 Oracle
Oracle创建和管理表空间
Oracle创建和管理表空间
63 1
|
8月前
|
存储 SQL Oracle
Oracle数据库批量删除表、视图、序列、存储过程、函数脚本
Oracle数据库批量删除表、视图、序列、存储过程、函数脚本
70 0
|
4月前
|
Oracle 关系型数据库 数据库
Oracle查询优化-复制表的定义及数据
【1月更文挑战第5天】【1月更文挑战第14篇】在Oracle数据库中,复制表定义和复制表数据是两个常见的操作。
55 1
|
2月前
|
存储 Oracle 关系型数据库
Oracle系列之七:表的创建与管理
Oracle系列之七:表的创建与管理
|
4月前
|
SQL 存储 Oracle
JAVAEE框架数据库技术之11 oracle入门
JAVAEE框架数据库技术之11 oracle入门
119 0
JAVAEE框架数据库技术之11 oracle入门
|
5月前
|
运维 Oracle 关系型数据库
医院检验科LIS系统源码,oracle数据库、报告管理、质控管理
医院检验科LIS系统源码,oracle数据库、报告管理、质控管理
64 0
|
5月前
|
Oracle 关系型数据库
Oracle - 表操作语句
Oracle - 表操作语句
25 0
|
6月前
|
存储 Oracle 关系型数据库
Oracle 入门
Oracle 入门
|
7月前
|
存储 Oracle 关系型数据库
9-6 Oracle 管理索引
9-6 Oracle 管理索引