Oracle 10g的新特性:閃回技術

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

相關文章
相關標籤/搜索