Oracle背景的一些人使用DECIMAL(31,0)作爲整數的原因是什麼?在MySQL中它並不高效。使用DECIMAL的原因(31,0)
回答
甲骨文實現「INTEGER」 ANSI數據類型爲NUMBER(38)
詳情的同義詞請參見「Learn Oracle: Datatypes for SQL and PL/SQL, Numbers」
然而,下表應作爲Oracle中的數據類型之間的映射和MySQL:
"Oracle® Database SQL Developer Supplementary Information for MySQL Migrations"
甲骨文和MySQL相比>數據類型>比較數據類型
的主要區別,如所解釋here和here是Oracle NUMBER數據類型是可變長度格式,而MySQL的DECIMAL曾經是represented as strings that require one byte per digit or sign character
(甲骨文公司(5.0.3版本之前)(n)的數據類型NUMBER數據類型)內部數字格式
Oracle數據庫以 可變長度格式存儲數值數據。每個數值爲 ,以科學計數法存儲,其中1 字節用於存儲指數,並且上調 至20字節以存儲尾數。 生成的值僅限於38位數字的精度的 。 Oracle數據庫 不存儲前導和尾隨 零。例如,數字412是 ,以類似於4.12 x 102的格式存儲,其中1字節用於存儲指數(2)和用於存儲 尾數(4,1)的3位有效數字的 指數(2)和2字節,2)。負數 包含其長度的符號。
在字節考慮到這一點,列 大小爲特定數字 數據值NUMBER(p),其中p爲一給定值的 精度,可以是 使用以下 公式計算:
ROUND((length(p)+s)/2))+1
其中s爲零,如果數量是 陽性,和s等於1,如果該數目 是負的。
零和正和負 無窮大(僅在從Oracle數據庫版本5導入 時生成)爲 使用唯一表示形式存儲。 零和負無窮每個 需要1個字節;正無限 需要2個字節。
和
(MySQL的)十進制數據類型更改爲 整數並且每個 值的小數部分
的存儲要求是分別確定的。每個 9個數字的倍數需要四個 字節,並且剩餘的所有剩餘的數字在 之上需要四個 字節的一部分。 [...]
例如,DECIMAL(18,9)柱 對 小數點的任一側九個數字,所以整數部分和 小數部分均需要4個 字節。 DECIMAL(20,6)列有 十四個整數數字和六個 小數位數。整數數字 需要4個字節用於 數字中的9個數字,另外3個字節用於剩餘的5位數字。這六個小數位需要三個字節。
- 1. 不使用IFrame的原因?
- 2. 不使用iframe的原因?
- 3. 使用「^」的主要原因
- 4. 不使用typekit的原因?
- 5. 不使用GROUP_CONCAT的原因?
- 6. 使用'instanceof function(){}'的原因?
- 7. 使用AutoMapper的原因
- 8. NSNumber decimal到C原始值?
- 9. pushViewController原因使用hidesBottomBarWhenPushed(iphone6)
- 10. Json.NET原始類型 - 使用Decimal而不是Double
- 11. 重複使用PreparedStatement的原因的SQLException
- 12. 使用ON UPDATE約束的原因
- 13. 使用PerThreadLifetimemanager的原因vs Transientlifetimemanager
- 14. Android,widgets無法使用的原因
- 15. 使用OpenJDK的原因是什麼?
- 16. 使用舊版jQuery的原因?
- 17. 在Java中使用包的原因
- 18. 使用不安全代碼的原因
- 19. 使用(void)someInt的原因;在代碼
- 20. 不使用CSS重置的原因?
- 21. 不使用靜態變量的原因?
- 22. 使用esb的原因是什麼
- 23. 使用SIP協議的原因
- 24. PHP - 使用迭代器的原因?
- 25. 高壓縮視頻中顯示的塊的原因/使用/原因是什麼?
- 26. SIGSEGV的原因
- 27. ClassNotFoundException的原因
- 28. ArrayIndexOutOfBoundsException的原因
- 29. socket.error的原因
- 30. IllegalStateException的原因