模式是一個數據庫對象的集合。模式爲一個數據庫用戶全部,並具備與該用戶相同的名稱。sql
建表時的考量
1.在建立表以前先設計表數據庫
應用開發人員負責設計應用的元素,包括表。數據庫管理員負責設置存儲參數、爲表定義集羣。每一個表應知足如下幾點:
表是標準化的;
每一個列都具備合適的數據類型;
容許爲空的列最後定義;
當合適時表集羣化,節約空間,優化SQL語句的性能。性能
2.定義如何使用數據塊空間
在本地化管理的表空間中,若是段空間是以MANUAL方式進行的,那麼就經過在建立表時定義PCTFREE和PCTUSED參數,影響空間使用率和空間預留的數量,用於更新數據塊的當前數據。
3.定義每一個表的位置
若是具備合適的權限和表空間引用,則能夠在當前在線的任何表空間中建立新表。建議使用CREATE TABLE的TABLESPACE字句標識表空間來存儲新的表。若是沒有定義表空間,則會在用戶默認的表空間上建立表。
4.考慮並行建立表
若是在CREATE TABLE字句中使用子查詢,則能夠在建立表時使用並行執行。因爲多個過程可以一塊兒工做用於建立表,因此可以提升建立的性能。
5.建立表時能夠考慮使用NOLOGGING
爲了更高效地建立表,能夠考慮在CREATE TABLE AS SELECT語句中使用NOLOGGING字句。NOLOGGING能夠生成最少的重作日誌信息,這具備如下好處
節約了重作日誌文件中的空間。
減小了建立表的時間。
提升了並行建立大表的性能。
6.估計表的大小,設置存儲參數
在建立表前,首先要規劃表的大小,這是由於:
能夠聯合使用表的估計大小,索引,回滾段和重作日誌文件的大小,肯定建立數據庫所須要的磁盤空間的總數;
可使用單個表的估計值,更有效地管理磁盤空間。
7.規劃大表
表和盤區的物理大小是沒有限制,可使用UNLIMITED和MAXEXTENTS關鍵字,簡化對大對象的規劃,減小空間浪費,提升空間使用率。優化
Oracle建議全部的變長字符域定義爲VARCHAR2,而不是VARCHAR。
建表時經常使用的數據類型操作系統
VARCHAR2(n) 可變長度的字符串,其中n用於指定字符串的最大長度,n<=4000
CHAR(n) 固定長度的字符串,n表示指定字符串的最大長度,n<=2000
NUMBER(p,s) 適用於固定長度的整數和浮點數,其中p表示精度,指定數字總位數;s表示標度,用於指定小數點的數字位數。
DATE 定義日期和時間數據,長度固定(7字節),範圍從公元前4712年的1月1日到公元9999年的12月31日
TIMESTAMP 定義日期和時間數據,顯示時,不只會顯示日期,也會顯示時間和上下午等信息
BINARY_FLOAT 定義浮點類型,比NUMBER的效率更高,32位
BINARY_DOUBLE 定義雙精度數字類型,64位
BLOB 大二進制對象,<=4GB
CLOB 大字符串對象,<=4GB
BFILE 外部的二進制文件,大小受操做系統的限制設計
建立表的語法
日誌
CREATE TABLE USER.table_name {{COLUMN1 DATAYPE [DEFAULT expr] [COLUMN_CONSTRAINT]}} {,{COLUMN2 DATAYPE [DEFAULT expr] [COLUMN_CONSTRAINT]}} ... [CONSTRAINT table_constraint] [CLUSTER cluster (COLUMN1 [COLUMN2]...)] [PCTFREE n] [PCTUSED n] [STORAGE n] [TABLESPACE tbs] [ENABLE | DISABLE] [AS QUERY]
參數說明
code
在Oracle11g中,雖然存儲參數NEXT,MINEXTENTS,MAXEXTENTS,PCTINCREASE等在建立表結構時能夠指定,可是,因爲Oracle 11g採用了自動空間管理,因此除了INITIAL參數外,其他參數都會變爲空值。
對象