第10章 管理表
1. rowid:Oracle數據庫中的每一行都有一個唯一的rowid
當一個用戶往oracle數據庫的表中插入一行數據時,oracle就會自動地在這一行數據上加上一個ROWID,在一個oralce數據庫中每一行都有一個唯一標識的ROWID,oracle系統就是利用它來定位數據行的,ROWID也是oracle數據庫提供的一個內置的標量數據類型。
?a)rowid的特性:
? ?1)rowid是數據庫中每一行的唯一標識符;
? ?2)rowid并不顯示地存儲為一行的值;
? ?3)rowid可以被用來定位行;
? ?4)rowid提供了訪問一個表中一行數據的最快的機制;
2. Oracle創建表時應遵守的原則:
?1)將不同的表放在不同的表空間中;
?2)使用本地管理表空間以避免碎片;
?3)在表中使用若干標準extent尺寸以減少表空間的碎片
3. 引入臨時表的原因
當需要對某一(也可以是幾個)表中的一批數據進行反復的操作時,通過為這批數據創建一個臨時表可能會簡化操作并提高效率。
4. 怎樣動態改變存儲參數(可以動態的修改PCTFREE和PCTUSED這兩個參數)
Alter table scott.product
PCTFREE 20
PCTUSED 50;
5. 怎樣移動非分區表(查看所要移動的表的索引,然后將表移到要求表空間中,然后重建索引)
ALTER TABLE SCOTT.EMP
MOVE TABLESPACE USERS;
6. 移動非分區表之后的相關索引的維護
ALTER INDEX SCOTT.PK_EMP REBUILD TABLESPACE INDX;
7. 怎樣重命名表中的一列
ALTER TABLE?用戶名.列名
RENAME COLUMN?舊名
TO?新列名
限制:如果所要改名的列上有索引,則不能修改,除非刪除索引
重新命名表中的一列的副作用及解決辦法
列名修改后,基于該表的視圖,觸發器,函數,過程,軟件包等的狀態都將無效,需要重新編譯
解決方法:可以通過創建視圖或在輸出結果時使用別名來代替
8. 怎樣在一個表中刪除一列
ALTER TABLE?用戶名.表名
DROP COLUMN?列名
CASCADE CONSTRAINTS CHECKPOINT?行數
在一個表中刪除一列時可能對系統造成的沖擊
在一個表中刪除一列,特別是在一個大表中刪除一列是相當耗時的,并且需大量的還原磁盤空間,因此對系統的效率沖擊很大,所以應該盡可能的避免在數據庫繁忙期間使用刪除列語句。
9. 怎樣在一個表中把某一列設置成無用
ALTER TABLE?用戶名.表名
SET UNUSED?列名?CASCADE CONSTRAINTS;
10. 怎樣刪除已經設置成無用的列
ALTER TABLE?用戶名.表名
DROP UNUSED COLUMN CHECKPOINT?行數
11. 把某一列設置成無用時要注意的事項
? 1)該選項只能在oracle8i和以上版本使用
? 2)只能在設置成無用的列標上做記號,并不能真的刪除這一列 ?
? 3)設置成無用的列無法用SQL*Plus命令或SQL語句看到
? 4)Oracle把設置能無用的列當做刪除列處理
? 5)可以把一列也可以把多列設置成無用
? 6)可以使用DROP列名選項來刪除被設置成無用的列
? 7)因為該語句是一個DDL語句,所以沒有恢復無用列的命令
12. 在一個表中刪除一列時使用CHECKPOINT選項
使用該選項來減少還原磁盤空間的使用量,CHECKPOINT 500表明oracle每做了500行的操作就會產生一個檢查點,如果在該命令執行期間系統崩潰了,當重啟系統后該命令可以從檢查點開始繼續它的工作,而不必重新開始,可以使用如下命令:
ALTER TABLE?用戶名.表名?DROP COLUMNS CONTINUE;
表的截斷和刪除時要注意的問題
這兩個語句都是DDL語句,因此是不能回滾的,建議在使用這兩個語句之前先做好備份
13. TRUNCATE TABLE語句的特性
?1)刪除表中所有的數據行,但保留表的結構
?2)對應的索引也被截斷
?3)因為該語句為DDL語句,所以不會產生還原數據,所刪除的數據也無法恢復
?4)該語句釋放表所占的磁盤空間
?5)并不觸發表的刪除觸發器
?6)如果一個表正在被一個外鍵所引用,該表不能截斷。
14. DROP TABLE語句的特性
?1)刪除表中的所有的數據行和表的結構
?2)刪除表中的所有索引
?3)如果沒有備份,所刪除的表無法恢復
?4)該語句釋放表所使用extent
?5)提交所有掛起的事務
?6)所有基于該表的視圖和別名依然保留但已失效。
轉載于:https://www.cnblogs.com/kangxuebin/archive/2012/12/17/2822486.html
總結
- 上一篇: JoshChen_php 简单的商城网站
- 下一篇: 射线面板