MySQL中int(M)的含義

來源:互聯網
上載者:User

在建立資料庫欄位的時候,遇到數字類型的時候,如int(4),我曾經一度認為是長度,後來測試的時候發現無論我設定多少,都不影響插入資料的長度,在網上搜了相關的解釋如下:

來自:http://www.ccvita.com/175.html

MySQL int(X) 中 X 的含義

這個可選的寬度規格說明是用於在數值顯示時,對某些值的寬度短於該列寬度的值進行左填補顯示的,而不是為了限制在該列中儲存值的寬度,也 不是為了限制那些超過該列指定寬度的值的可被顯示的數字位元。注意,如果在一個整型列中儲存一個超過顯示寬度的更大值時,當 MySQL 為某些複雜的連接(join)產生暫存資料表時,你可能會遇到問題,因為在這種情況下,MySQL 信任地認為所有的值均適合原始的列寬度。

而int本身就是4個位元組 bigint是8個位元組 所以說int(X)的含義就是 int決定資料存放區的位元組 X表示期望資料的列寬度

在SQL語句中int代表你要建立欄位的類型,int代表整型,11代表欄位的長度。

這個代表顯示寬度
整數列的顯示寬度與mysql需要用多少個字元來顯示該列數值,與該整數需要的儲存空間的大小都沒有關係,比如,不管設定了顯示寬度是多少個字元,bigint都要佔用8個位元組。

 

來自:http://matt-u.javaeye.com/blog/380670

作為對 ANSI/ISO SQL92 標準的一個擴充,MySQL 也支援整數型別 TINYINT、MEDIUMINT 和 BIGINT。另外一個擴充是 MySQL 支援隨意指定一個整型數值的顯示格式,這通過在類型的基本關鍵詞後跟一個括弧來實現(例如 INT(4))。這個可選的寬度規格說明是用於在數值顯示時,對某些值的寬度短於該列寬度的值進行左填補顯示的,而不是為了限制在該列中儲存值的寬度,也不是為了限制那些超過該列指定寬度的值的可被顯示的數字位元。當與可選的擴充屬性 ZEROFILL 一起使用時,預設填補用的空格被零代替。舉例來說,一個列被定義為 INT(5) ZEROFILL,插入的值 4 被檢索出來時為 00004。注意,如果在一個整型列中儲存一個超過顯示寬度的更大值時,當 MySQL 為某些複雜的連接(join)產生暫存資料表時,你可能會遇到問題,因為在這種情況下,MySQL 信任地認為所有的值均適合原始的列寬度。 

 

不過我在MySQL(Windows下)中,還從來沒有試出過ZEROFILL的功能。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.