`
firecym
  • 浏览: 45856 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Oracle基础知识--管理表

阅读更多

以scott用户下的emp、detp等几个表作为示例,在sqlplus下演示。

 

1. 查看表结构:

SQL> desc emp;

 

2. 在现有表基础上建立新表:

SQL> create table t1 as select * from emp;

表已创建。

   当然,此处select * from emp可以灵活更改。

   如果想更改列名,有两种办法:

  1).

SQL> create table t1 as select ename a, empno b, sal c from emp;

表已创建。

SQL> desc t1;
 名称                                                  是否为空? 类型
 ----------------------------------------------------- -------- ------------
 A                                                              VARCHAR2(10)
 B                                                              NUMBER(4)
 C                                                              NUMBER(7,2)

  2).

SQL> create table t1(a, b, c) as select ename,empno,sal from emp;

表已创建。

SQL> desc t1;
 名称                                                  是否为空? 类型
 ----------------------------------------------------- -------- -------------
 A                                                              VARCHAR2(10)
 B                                                              NUMBER(4)
 C                                                              NUMBER(7,2)

 

3. 修改表结构:

   1). 修改列长度,将上述t1表A列长度设为20:

SQL> desc t1;
 名称                                                  是否为空? 类型
 ----------------------------------------------------- -------- -------------
 A                                                              VARCHAR2(10)
 B                                                              NUMBER(4)
 C                                                              NUMBER(7,2)

SQL> alter table t1 modify(a varchar2(20));

表已更改。

SQL> desc t1;
 名称                                                  是否为空? 类型
 ----------------------------------------------------- -------- -------------
 A                                                              VARCHAR2(20)
 B                                                              NUMBER(4)
 C                                                              NUMBER(7,2)

    如果要缩短列的长度,那么要保证该列的值没有超过要设置的列长。例如:

   

SQL> alter table t1 modify(a varchar2(10));

表已更改。

SQL> alter table t1 modify(a varchar2(2));
alter table t1 modify(a varchar2(2))
                      *
第 1 行出现错误:
ORA-01441: 无法减小列长度, 因为一些值过大

  

    同理,如果要修改列的类型,那么此列的值都应该为空。否则如下:

SQL> alter table t1 modify(a number(10,2));
alter table t1 modify(a number(10,2))
                      *
第 1 行出现错误:
ORA-01439: 要更改数据类型, 则要修改的列必须为空

  

   2). 修改表名:

SQL> rename t1 to t2;

表已重命名。

SQL> desc t1;
ERROR:
ORA-04043: 对象 t1 不存在


SQL> desc t2;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ------------
 A                                                  VARCHAR2(10)
 B                                                  NUMBER(4)
 C                                                  NUMBER(7,2)

  

   3.) 修改列名称:

SQL> desc t2;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- -------------
 A                                                  VARCHAR2(10)
 B                                                  NUMBER(4)
 C                                                  NUMBER(7,2)

SQL> alter table t2 rename column a to d;

表已更改。

SQL> desc t2;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- -------------
 D                                                  VARCHAR2(10)
 B                                                  NUMBER(4)
 C                                                  NUMBER(7,2)

 

   4). 表注释:

SQL> select comments from user_tab_comments where table_name='T2';

COMMENTS
-------------------------------------------------------------------


SQL> comment on table t2 is '测试表';

注释已创建。

SQL> select comments from user_tab_comments where table_name='T2';

COMMENTS
-------------------------------------------------------------------
测试表

  

   5).列注释

SQL> SELECT COMMENTS FROM USER_COL_COMMENTS WHERE TABLE_NAME='T2';

COMMENTS
------------------------------------------------------------------




SQL> COMMENT ON COLUMN T2.D IS '测试列注释';

注释已创建。

SQL> SELECT COMMENTS FROM USER_COL_COMMENTS WHERE TABLE_NAME='T2';

COMMENTS
------------------------------------------------------------------
测试列注释

 

4. 删除表

SQL> drop table t2;

表已删除。

   其实这里并没有将表真的删除,知识把它放到回收站里了。可以查看一下:

SQL> show recyclebin;
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
T2               BIN$l0t3+wZLRb+jDCDBmZ1dhA==$0 TABLE        2011-10-31:20:41:43

   可以看到,original name即原始名称是t2,回收站里的名称是那一长串字符。

   也可以查看一下用户现有的表:

SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
BIN$l0t3+wZLRb+jDCDBmZ1dhA==$0 TABLE
BONUS                          TABLE
D                              TABLE
DEPT                           TABLE
E                              TABLE
EMP                            TABLE
PLAN_TABLE                     TABLE
SALGRADE                       TABLE
T3                             TABLE
TEST                           TABLE

 

5. 将回收站的表清空

SQL> show recyclebin;
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
T2               BIN$l0t3+wZLRb+jDCDBmZ1dhA==$0 TABLE        2011-10-31:20:41:43
SQL> purge table t2;

表已清除。

SQL> show recyclebin;

  

6. 将回收站的表还原

SQL> create table t2 as select * from emp;

表已创建。

SQL> drop table t2;

表已删除。

SQL> flashback table t2 to before drop;

闪回完成。

 

7. 清空当前用户下的recyclebin

  

SQL> purge recyclebin;

回收站已清空。

 

8. 删除表的时候,彻底删除,不放入回收站:

SQL> drop table t2 purge;

表已删除。

SQL> show recyclebin;

 这样的话,回收站里就空了,如果想要恢复表的话只能取备份来恢复了...比较麻烦了~

分享到:
评论

相关推荐

    Oracle 基础知识 -大全- 原创整理.pdf

    1.掌握oracle表的管理(创建/维护) 2.掌握对oracle表的各种查询技巧 3.学会创建新的oracle数据库 4.掌握oracle表对数据操作技巧 5.掌握在java程序中操作oracle 6.理解oracle事物概念 7.掌握oracle各种sql函数 8....

    ORACLE数据库基础知识-华为维护资料

    第1章 ORACLE数据库基础知识 1 1.1 产品概述 1 1.1.1 产品简介 1 1.1.2 基本概念 1 1.2 ORACLE系统结构 2 1.2.1 ORACLE物理结构 2 1.2.2 系统全局区 4 1.2.3 进程 6 1.3 存储管理 7 1.3.1 逻辑结构 8 1.3.2 表...

    +Oracle数据库基础知识讲义ppt(共80页).ppt

    2.1 Oracle数据库简介 了解 2.2 Oracle数据库安装与配置 了解 2.3 Oracle数据库体系结构...Oracle的物理存储结构和逻辑存储结构在管理上相互独立,即物理结构的变化不会改变逻辑结构的组织方式,从而使系统便于移植。

    Oracle数据库基础知识(华为内部培训资料)

    Oracle数据库基础知识(华为内部培训资料

    ORACLE基础知识

    ORACLE 基础知识 一、如何从一名DBA 初学者变为中级水平的DBA 二、Oracle 架构的基础知识 三、Oracle 数据库日常维护 四、Oracle 数据导入导出imp/exp 命令 五、Oracle 数据导入导出详解 六、Oracle 数据库的备份与...

    Oracle之旅-基础知识

    Oracle数据库-基础知识Oracle的基础知识1、Oracle中的系统用户2、登录和注销2.1.命令行连接登录普通用户登录管理员退出Exit2.2.可视化连接3、表空间3.1.表空间的概念3.2.管理员创建表空间(==不用创建表空间==)3.3....

    R12 ORACLE 采购管理基础-1

    接收ebs业务相关知识,对ebs顾问知识积累有很大帮助;R12 ORACLE 采购管理基础-1

    Oracle基础知识之表空间与数据文件.pptx

    Oracle基础知识之表空间与数据文件.pptx

    Oracle基础知识概述.pptx

    Oracle基础知识概述.pptx

    ORACLE数据库基础知识

    ORACLE数据库基础知识 享用一生啊 课程目标 完成本课程的学习后,您应该能够: 掌握ORACLE数据库系统结构中物理结构、系统全局区和进程的概念 掌握ORACLE数据库的存储管理知识 掌握管理ORACLE数据库的方法 了解...

    oracle-用户与权限的管理

    oracle基础知识:用户、权限与角色的理解

    jfsky.com-Oracle数据库基础知识

    第2章 管理ORACLE数据库 21 2.1 基本概念 21 2.1.1 数据字典 21 2.1.2 事务管理 23 2.1.3 数据库管理员(DBA) 24 2.1.4 ORACLE的四种状态 25 2.2 SQL*Plus方式的ORACLE数据库启动和关闭 26 2.2.1 启动数据库 26 2.2.2...

    oracle基础知识PPT详解

    数据库的介绍、分类 重点:oracle的历史、版本、安装平台 Oracle数据库的安装与删除 使用sqlplus、基本的select查询 ...表的管理、约束及伪列的使用 表的集合操作 视图、序列、用户管理 介绍一下oracle的开发工具

    Oracle数据库基础知识

    1.掌握ORACLE数据库系统结构中物理结构、系统全局区和进程的概念 2.掌握ORACLE数据库的存储管理知识 3.掌握管理ORACLE数据库的方法 4.了解ORACLE数据库的网络应用

    Oracle 10g 学习笔记

    │ oracle10g系统管理之表管理 - lvhuiqing的专栏 - CSDN博客.mht.lnk │ oracle10g系统管理之角色.jpg │ Oracle下导出某用户所有表的方法.txt │ oracle中判断某列是否为数字,删除重复数据的方法 - oracle天堂 - ...

    Oracle基础知识总结_oracle_

    可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小微机环境。它是一种高效率的、可靠性好的、适应高吞吐量的数据库方案。

    oracle基础知识

    主要写一些oracledb的基础知识; 二、数据库的安装。 1. 找安装文件:oracle 11g 这是个简化版,里面什么都没有,没有任何测试数据存在 2. DOS登录命令 sqlplus 登录名/密码 例如: sqlplus system/tiger 成功...

    oracle数据库基础知识.pptx

    oracle数据库基础知识.pptx

Global site tag (gtag.js) - Google Analytics