MySQL支持大量的列類型,它可以被分為3類:數(shù)字類型、日期和時(shí)間類型以及字符串(字符)類型。本節(jié)首先給出可用類型的一個(gè)概述,并且總結(jié)每個(gè)列類型的存儲(chǔ)需求,然后提供每個(gè)類中的類型性質(zhì)的更詳細(xì)的描述。概述有意簡(jiǎn)化,更詳細(xì)的說明應(yīng)該考慮到有關(guān)特定列類型的附加信息,例如你能為其指定值的允許格式。
由MySQL支持的列類型列在下面。下列代碼字母用于描述中:
M
指出的顯示尺寸。的合法的顯示尺寸是 255 。
D
適用于浮點(diǎn)類型并且指出跟隨在十進(jìn)制小數(shù)點(diǎn)后的數(shù)碼的數(shù)量??赡艿闹凳?0,但是應(yīng)該不大于M-2。
方括號(hào)(“[”和“]”)指出可選的類型修飾符的部分。
注意,如果你指定一個(gè)了為ZEROFILL,MySQL將為該列自動(dòng)地增加UNSIGNED屬性。
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
一個(gè)很小的整數(shù)。有符號(hào)的范圍是-128到127,無符號(hào)的范圍是0到255。
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
一個(gè)小整數(shù)。有符號(hào)的范圍是-32768到32767,無符號(hào)的范圍是0到65535。
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
一個(gè)中等大小整數(shù)。有符號(hào)的范圍是-8388608到8388607,無符號(hào)的范圍是0到16777215。
INT[(M)] [UNSIGNED] [ZEROFILL]
一個(gè)正常大小整數(shù)。有符號(hào)的范圍是-2147483648到2147483647,無符號(hào)的范圍是0到4294967295。
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
這是INT的一個(gè)同義詞。
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
一個(gè)大整數(shù)。有符號(hào)的范圍是-9223372036854775808到9223372036854775807,無符號(hào)的范圍是0到
18446744073709551615。注意,所有算術(shù)運(yùn)算用有符號(hào)的BIGINT或DOUBLE值完成,因此你不應(yīng)該使用大于9223372036854775807(63位)的有符號(hào)大整數(shù),除了位函數(shù)!注意,當(dāng)兩個(gè)參數(shù)是INTEGER值時(shí),-、+和*將使用BIGINT運(yùn)算!這意味著如果你乘2個(gè)大整數(shù)(或來自于返回整數(shù)的函數(shù)),如果結(jié)果大于9223372036854775807,你可以得到意外的結(jié)果。一個(gè)浮點(diǎn)數(shù)字,不能是無符號(hào)的,對(duì)一個(gè)單精度浮點(diǎn)數(shù),其精度可以是<=24,對(duì)一個(gè)雙精度浮點(diǎn)數(shù),是在25 和53之間,這些類型如FLOAT和DOUBLE類型馬上在下面描述。FLOAT(X)有對(duì)應(yīng)的FLOAT和DOUBLE相同的范圍,但是顯示尺寸和小數(shù)位數(shù)是未定義的。在MySQL3.23中,這是一個(gè)真正的浮點(diǎn)值。在更早的MySQL版本中,F(xiàn)LOAT(precision)總是有2位小數(shù)。該句法為了ODBC兼容性而提供。
由MySQL支持的列類型列在下面。下列代碼字母用于描述中:
M
指出的顯示尺寸。的合法的顯示尺寸是 255 。
D
適用于浮點(diǎn)類型并且指出跟隨在十進(jìn)制小數(shù)點(diǎn)后的數(shù)碼的數(shù)量??赡艿闹凳?0,但是應(yīng)該不大于M-2。
方括號(hào)(“[”和“]”)指出可選的類型修飾符的部分。
注意,如果你指定一個(gè)了為ZEROFILL,MySQL將為該列自動(dòng)地增加UNSIGNED屬性。
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
一個(gè)很小的整數(shù)。有符號(hào)的范圍是-128到127,無符號(hào)的范圍是0到255。
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
一個(gè)小整數(shù)。有符號(hào)的范圍是-32768到32767,無符號(hào)的范圍是0到65535。
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
一個(gè)中等大小整數(shù)。有符號(hào)的范圍是-8388608到8388607,無符號(hào)的范圍是0到16777215。
INT[(M)] [UNSIGNED] [ZEROFILL]
一個(gè)正常大小整數(shù)。有符號(hào)的范圍是-2147483648到2147483647,無符號(hào)的范圍是0到4294967295。
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
這是INT的一個(gè)同義詞。
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
一個(gè)大整數(shù)。有符號(hào)的范圍是-9223372036854775808到9223372036854775807,無符號(hào)的范圍是0到
18446744073709551615。注意,所有算術(shù)運(yùn)算用有符號(hào)的BIGINT或DOUBLE值完成,因此你不應(yīng)該使用大于9223372036854775807(63位)的有符號(hào)大整數(shù),除了位函數(shù)!注意,當(dāng)兩個(gè)參數(shù)是INTEGER值時(shí),-、+和*將使用BIGINT運(yùn)算!這意味著如果你乘2個(gè)大整數(shù)(或來自于返回整數(shù)的函數(shù)),如果結(jié)果大于9223372036854775807,你可以得到意外的結(jié)果。一個(gè)浮點(diǎn)數(shù)字,不能是無符號(hào)的,對(duì)一個(gè)單精度浮點(diǎn)數(shù),其精度可以是<=24,對(duì)一個(gè)雙精度浮點(diǎn)數(shù),是在25 和53之間,這些類型如FLOAT和DOUBLE類型馬上在下面描述。FLOAT(X)有對(duì)應(yīng)的FLOAT和DOUBLE相同的范圍,但是顯示尺寸和小數(shù)位數(shù)是未定義的。在MySQL3.23中,這是一個(gè)真正的浮點(diǎn)值。在更早的MySQL版本中,F(xiàn)LOAT(precision)總是有2位小數(shù)。該句法為了ODBC兼容性而提供。

