在Oracle 10g以后,为了预防用户的误删除表操做,专门提供了回收站的功能,用户所删除的表默认状况下会在一个回收站之中保存,而用户也能够经过回收站,进行表的恢复,因此此技术称为闪回(FLASHBACK);数据库
范例:查看回收站性能
SHOW RECYCLEBIN;
这个时候能够发现全部已经删除的表都在回收站之中保存,那么下面就可使用以下的语法恢复表:spa
FLASHBACK TABLE 表名称 TO BEFORE DROP;
范例:恢复myemp表code
FLASHBACK TABLE myemp TO BEFORE DROP;
固然,如今也能够直接删除掉回收站中的一些数据表,语法以下:orm
PURGE TABLE 表名称;
范例:删除回收站中的person表对象
PURGE TABLE person;
范例:清空回收站开发
PURGE RECYCLEBIN;
若是如今但愿删除一张表,而又不但愿其进入到回收站之中,则能够在删除的时候增长PURGE。it
DROP TABLE myemp PURGE;
这种技术是在Oracle 10g以后才有的,而Oracle 11g也是存在的。数据类型
问题:如今在回收站之中存在了一张tab表,然后又创建了一张tab表,那么若是从回收站中恢复的话,能够吗?语法
答:没法恢复。
8、修改表结构
若是一张创建好的数据表,发现其初期的结构已经不知足于后期的使用要求,则能够进行表的修改操做,而表的修改操做实际上就是数据库对象的修改操做,使用ALTER指令完成,例如,如今有以下一张表:
CREATE TABLE member ( mid NUMBER, name VARCHAR2(50) );
如今但愿能够向表中增长字段,因此此时能够采用以下的语法完成:
ALTER TABLE 表名称 ADD(列名称 数据类型 [DEFAULT 默认值], 列名称 数据类型 [DEFAULT 默认值],…);
范例:为member表增长字段
ALTER TABLE member ADD(age NUMBER(3), birthday DATE DEFAULT SYSDATE);
若是增长的数据列没有默认值,则全部已有的数据的列的内容都是null,而若是增长的列指定了DEFAULT默认值的话,则全部已有的数据列都是设置的默认值。
如今也能够修改已有的表结构,此时的语法以下:
ALTER TABLE 表名称 MODIFY(列名称 数据类型 [DEFAULT 默认值], 列名称 数据类型 [DEFAULT 默认值],…);
范例:将name字段的默认值定义为无名氏
ALTER TABLE member MODIFY(name VARCHAR2(100) DEFAULT '无名氏');
虽然在SQL语法之中以及Oracle数据库之中,都给出了修改表结构的操做,可是这种操做能不使用就不使用,从大型数据库来说,世界上性能最高的数据库是IBM DB2,可是IBM DB2自己有一个平台的限制问题,因此若是说是跨平台的数据库则是Oracle数据库的性能最高。
在IBM DB2数据库之中是不容许修改表结构的,即:表创建完成以后就不能修改了,因此之后在开发之中也尽量的不要去修改表结构。