因此,使用VARCHAR2優於VARCHAR的優點主要在於VARCHAR2根據數據庫的長度佔用可變大小的空間;當插入的列值爲空時,這會特別有效,因爲在這種情況下幾乎沒有空間被佔用。因此,出於同樣的原因,數據的數據類型是否具有相同的行爲方式,以便當插入的數字爲空時,數據庫中沒有空間浪費?Oracle中用於數字的可變大小數據類型
3
A
回答
4
是的,存在可變長度數字數據類型,它被稱爲NUMBER。
Oracle使用精度所需的最小空間(scale需要一個字節)分別存儲精度(有效數字)和標度。
NUMBER(x,y)是NUMBER的子類型,它們的存儲方式與常規NUMBER相同,只是有額外的約束。
AFAIK,沒有等同於數字的CHAR。
你可以看到Oracle如何將數據存儲在內部與DUMP功能:
SQL> select dump(1), dump(12345), dump(123456789) from dual;
DUMP(1) DUMP(12345) DUMP(123456789)
------------------ ------------------------ ------------------------------
Typ=2 Len=2: 193,2 Typ=2 Len=4: 195,2,24,46 Typ=2 Len=6: 197,2,24,46,68,90
正如你可以看到精確的數據長度增加。
+0
這部分解決了這個問題,但這裏有個想法,如果我在表T中有一個NUMBER類型的可爲空的列A,那麼對於任何記錄在列A中爲空的表T中,數據庫是否還以某種方式將空間分配給該列作爲準佔位符? – 2012-02-16 11:07:41
+1
NULL值在具有值的最後一列之前每列需要一個字節。最後的NULL列不會被存儲並取0字節。 – 2012-02-16 12:44:33
相關問題
- 1. Dynamodb數字數據類型的大小
- 2. Oracle數字數據類型
- 3. SQLite的數據類型字段大小
- 4. 獲取數據類型字節大小
- 5. 數據類型用於處理pyspark中的大數字
- 6. 存儲非常小的數字數據類型的Oracle
- 7. 哪個數據類型用於小數?
- 8. 數據庫數據類型大小
- 9. Oracle數字數據類型值插入
- 10. oracle數據類型
- 11. PL/SQL數據類型支持大於NVarchar2的大小
- 12. 用於大型數組大小的Powerset
- 13. NumPy mmap:「ValueError:可用數據的大小不是數據類型大小的倍數。」
- 14. 可用作數據類型的變量。
- 15. 限制int數據類型的大小
- 16. OSX和iOS數據類型的大小
- 17. 用於數字列表(或不含特定大小的數字數組)的mongodb模式數據類型
- 18. Oracle中的大型數據類型長度性能影響?
- 19. 可變大小的數據包
- 20. 在oracle中用更大的數據類型替換varchar2 SP
- 21. Android中的字節數據類型內存大小
- 22. SQL Server:Openquery到Oracle:數字/數字的數據類型
- 23. PostgreSQL:小於smallint的數據類型?
- 24. 可變大小的數組
- 25. Oracle單值字段數據類型
- 26. 值的範圍取決於數據類型的大小?
- 27. 用於存儲大型JSON的SQL Server數據庫中的數據類型
- 28. VB6可用於座標(矩形)的數據類型參數數據類型
- 29. 改變形狀大小的數據類型
- 30. MPLAB IDE數據類型大小
'VARCHAR2'和'VARCHAR'完全相同,沒有區別。你可能指的是'VARCHAR2'與'CHAR'的區別嗎? – 2012-02-16 10:00:36
「空間便宜」不是;如果您即將接近空間大小的末端,您可以添加到該框中,刪除未使用的表格和重建表格等將爲您節省的遠遠超過使用數字數據類型。 – Ben 2012-02-16 10:17:30
@a_horse_with_no_name糾正了我的錯誤,但我認爲VARCHAR2和VARCHAR是不同的,儘管它們曾經是相同的。 – 2012-02-16 11:12:44