比方說,比如我創建一個表像一些列:爲什麼需要在oracle(或任何其他數據庫)中定義數據類型的大小?
COLUMN_NAME DATA_TYPE NULLABLE and .......
=========== ========= ======== ============================
NAME VARCHAR2(100 BYTE) No
GENDER VARCHAR2(1 BYTE) No
在創建我需要定義的數據大小列NAME (100 BYTE)
和GENDER (1 BYTE)
表。 有人可以解釋這到底是什麼目的嗎?
對於NAME
列,我分配了100 BYTE
。但有時名稱值可能不會佔用100 BYTE
。所以它浪費了一些空間,對吧?爲什麼數據庫本身不能自動管理它?
'varchar'是一個可變長度的數據類型。在varchar(100)列中只存儲1個字符時不會浪費空間。 –
@a_horse_with_no_name謝謝,但是我可能知道定義變長的目的嗎? –
這是一個商業約束。你聲明你不想存儲更長的值(在Postgres中,你不需要指定最大長度)。您可能想閱讀:http://stackoverflow.com/q/8295131/330315和Oracle概念指南:http://docs.oracle.com/database/121/CNCPT/tablecls.htm#GUID-5D05C023- C309-46DA-A7EC-2BED1CA512A7 –