根據文檔,括號中的屬性(例如,SMALLINT(3)中的「3」)應該將SMALLINT的值顯示爲三位數。然而,當我插入5個測試數字(9,99,999,9999,999999)時,它將每個數字都設置爲其全部值,而不是將其限制在三位數字上並相應地顯示它(除了99999,當然,它上限爲32767)。不應該將數字限制在至少顯示三位數字的位置嗎?還是我錯過了這裏的真正目的?MySQL中整數括號中屬性的用途是什麼?
回答
對於整數類型,該屬性與顯示寬度相關,只有在將zerofill添加到列create語句時才能看到。
顯示寬度不會影響分配給列的存儲空間,只有啓用zerofill時填充顯示。
又見這樣的解釋:http://matthom.com/archive/2006/11/28/mysql-integer-columns-and-display-width
如the manual指出:
M
指示整數類型的最大顯示寬度。對於浮點型和定點型,M
是可以存儲的位數(精度)的總數。對於字符串類型,M
是最大長度。最大允許值爲M
取決於數據類型。
此外,如所述的here:
MySQL支持用於選擇指定的整數數據類型的顯示寬度括號中的類型base關鍵字以下的延伸部。例如,
INT(4)
指定了一個INT
,顯示寬度爲四位數。這個可選的顯示寬度可以被應用程序用來顯示寬度小於爲列指定的寬度的整數值,方法是用空格填充它們。 (即,該寬度是存在於與返回結果集的元數據。無論是使用或不使用要由應用程序。)顯示寬度不不限制可以存儲在值的範圍該列。它也不會阻止比列顯示寬度更寬的值被正確顯示。例如,指定爲
SMALLINT(3)
的列具有通常的SMALLINT
範圍-32768
至32767
,且三位數所允許的範圍之外的值全部使用三位以上的數字顯示。當與可選(非標準)屬性
ZEROFILL
一起使用時,空格的默認填充將替換爲零。例如,對於聲明爲INT(4) ZEROFILL
的列,值5
被檢索爲0005
。注意
當列涉及到表達式或UNION
查詢的ZEROFILL
屬性將被忽略。如果將值大於顯示寬度的值存儲在具有
ZEROFILL
屬性的整數列中,那麼當MySQL爲某些複雜聯接生成臨時表時,可能會遇到問題。在這些情況下,MySQL假定數據值符合列顯示寬度。所有整數類型都可以具有可選(非標準)屬性
UNSIGNED
。無符號類型可用於只允許列中的非負數,或者當您需要列的較大數值範圍時。例如,如果INT
列是UNSIGNED
,列範圍的大小是相同的,但其端點從-2147483648
和2147483647
轉變爲0
和4294967295
。浮點型和定點型也可以是
UNSIGNED
。與整數類型一樣,此屬性可防止將負值存儲在列中。與整數類型不同,列值的上限範圍保持不變。如果您爲數字列指定
ZEROFILL
,MySQL會自動將UNSIGNED
屬性添加到列中。整數或浮點數據類型可以具有附加屬性
AUTO_INCREMENT
。將NULL
(推薦)或0
的值插入索引爲AUTO_INCREMENT
的列中時,該列將設置爲下一個序列值。通常,這是value
+ 1
,其中值最大value
對於目前在表中的列。AUTO_INCREMENT
序列以1
開頭。
+1 ......這就是我說的話:d –
感謝您的詳細答覆,但這是從手冊中的所有複製粘貼。一般來說,括號是有意義的(就像在DOUBLES等),但特別是像INT和SMALLINT這樣的數字類型,這個屬性似乎不會影響條目。比屬性應該允許的值更好地存儲,並且在查詢時,條目仍然返回完整值而不是爲了顯示目的而被約束,手冊似乎認爲它會這樣做。在這些情況下,似乎這個屬性在這個實現中是無用的。 – Abion47
@ Abion47:手冊解釋了所有這些(re'ZEROFILL');我從手冊中貼出來,因爲在你張貼這裏之前,你應該已經閱讀過,如果有什麼你不明白的地方詢問具體的問題...... – eggyal
- 1. C#中屬性的用途是什麼?
- 2. Java類構造函數中尖括號的用途是什麼?
- 3. 這個括號的用途是什麼:Python中的[0]
- 4. 什麼是在源屬性值HTML中的方括號使用
- 5. html name屬性的用途是什麼?
- 6. 功能括號中項目的用途是什麼?
- 7. 「var items = [Int]()」中括號的用途是什麼?
- 8. 爲什麼在Angular 2中是括號中的事件屬性?
- 9. CSS中'@'符號的用途是什麼?
- 10. OpenLayer特性中屬性「人口」的用途是什麼?
- 11. java屬性文件中的大括號是什麼意思?
- 12. 屬性定義中括號的含義是什麼?
- 13. C#Azure庫中的「DoesServiceRequest」裝飾屬性的用途是什麼?
- 14. MSDN FileSystemWatcher類示例中的PermissionSet屬性的用途是什麼?
- 15. HTML5中「object」元素的新「form」屬性的用途是什麼?
- 16. HTML中腳本元素的charset屬性的用途是什麼?
- 17. <ext:JsonReader>中的ReaderID屬性的用途是什麼?
- 18. __kwdefaults__是一個函數對象屬性的用途是什麼?
- 19. XML屬性中的問號是什麼?
- 20. package.json中「private」屬性的用途是什麼?
- 21. Google Plus鏈接中asrc屬性的用途是什麼?
- 22. File對象中webkitRelativePath屬性的用途是什麼?
- 23. HTML中for屬性的用途是什麼?
- 24. C#中屬性GeneratedCodeAttribute的用途是什麼?
- 25. JSF commandbutton中標籤屬性的用途是什麼?
- 26. 爲什麼在input元素的name屬性中使用括號?
- 27. gRPC方法定義之後括號{}的用途是什麼?
- 28. 在以下語法中使用方括號「[]」有什麼用途
- 29. 「for」屬性的HTML5有什麼用途?
- 30. 大括號中的數字是什麼「{0}」是什麼意思?
這是我想知道的。感謝:D – Abion47