在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數據庫之中是不容許修改表結構的,即:表創建完成以後就不能修改了,因此之後在開發之中也儘量的不要去修改表結構。