MySQL的列類型主要有三種:數字、字串和日期。
數字列類型
數字列類型用於儲存各種數字資料,如價格、年齡或者數量。數字列類型主要分為兩種:整數型和浮點型。所有的數字列類型都允許有兩個選項:UNSIGNED和ZEROFILL。選擇UNSIGNED的列不允許有負數,選擇了ZEROFILL的列會為數值添加零。下面是MySQL中可用的數字列類型
• TINYINT——一個微小的整數,支援 -128到127(SIGNED),0到255(UNSIGNED),需要1個位元組儲存
• BIT——同TINYINT(1)
• BOOL——同TINYINT(1)
• SMALLINT——一個小整數,支援 -32768到32767(SIGNED),0到65535(UNSIGNED),需要2個位元組儲存 MEDIUMINT——一個中等整數,支援 -8388608到8388607(SIGNED),0到16777215(UNSIGNED),需要3個位元組儲存
• INT——一個整數,支援 -2147493648到2147493647(SIGNED),0到4294967295(UNSIGNED),需要4個位元組儲存
• INTEGER——同INT
• BIGINT——一個大整數,支援 -9223372036854775808到9223372036854775807(SIGNED),0到18446744073709551615(UNSIGNED),需要8個位元組儲存
• FLOAT(precision)——一個浮點數。precision<=24用於單精確度浮點數;precision在25和53之間,用於又精度浮點數。FLOAT(X)與相誚的FLOAT和DOUBLE類型有差相同的範圍,但是沒有定義顯示尺寸和小數位元。在MySQL3.23之前,這不是一個真的浮點值,且總是有兩位小數。MySQL中的所有計算都用雙精確度,所以這會帶來一些意想不到的問題。
• FLOAT——一個小的菜單精確度浮點數。支援 -3.402823466E+38到-1.175494351E-38,0和1.175494351E-38 to 3.402823466E+38,需要4個位元組儲存。如果是UNSIGNED,正數的範圍保持不變,但負數是不允許的。
• DOUBLE——一個雙精確度浮點數。支援 -1.7976931348623157E+308到-2.2250738585072014E-308,0和2.2250738585072014E-308到1.7976931348623157E+308。如果是FLOAT,UNSIGNED不會改變正數範圍,但負數是不允許的。
• DOUBLE PRECISION——同DOUBLE
• REAL——同DOUBLE
• DECIMAL——將一個數像字串那樣儲存,每個字元佔一個位元組
• DEC——同DECIMAL
• NUMERIC——同DECIMAL
字串列類型
字串列類型用於儲存任何類型的字元資料,如名字、地址或者報紙文章。下面是MySQL中可用的字串列類型
• CHAR——字元。固定長度的字串,在右邊補齊空格,達到指定的長度。支援從0到155個字元。搜尋值時,尾碼的空格將被刪除。
• VARCHAR——可變長的字元。一個可變長度的字串,其中的尾碼空格在儲存值時被刪除。支援從0到255字元
• TINYBLOB——微小的二進位對象。支援255個字元。需要長度+1位元組的儲存。與TINYTEXT一樣,只不過搜尋時是區分大小寫。(0.25KB)
• TINYTEXT——支援255個字元。要求長度+1位元組的儲存。與TINYBLOB一樣,只不過搜尋時會忽略大小寫。(0.25KB)
• BLOB——二進位對象。支援65535個字元。需要長度+2位元組的儲存。 (64KB)
• TEXT——支援65535個字元。要求長度+2位元組的儲存。 (64KB)
• MEDIUMBLOB——中等大小的二進位對象。支援16777215個字元。需要長度+3位元組的儲存。 (16M)
• MEDIUMTEXT——支援16777215個字元。需要長度+3位元組的儲存。 (16M)
• LONGBLOB——大的的二進位對象。支援4294967295個字元。需要長度+4位元組的儲存。 (4G)
• LONGTEXT——支援4294967295個字元。需要長度+4位元組的儲存。(4G)
• ENUM——枚舉。只能有一個指定的值,即NULL或"",最大有65535個值
• SET——一個集合。可以有0到64個值,均來自於指定清單
日期和時間列類型
日期和時間列類型用於處理時間資料,可以儲存當日的時間或出生日期這樣的資料。格式的規定:Y表示年、M(前M)表示月、D表示日、H表示小時、M(後M)表示分鐘、S表示秒。下面是MySQL中可用的日期和時間列類型
• DATETIME——格式:'YYYY-MM-DD HH:MM:SS',範圍:'1000-01-01 00:00:00'到'9999-12-31 23:59:59'
• DATE——格式:'YYYY-MM-DD',範圍:'1000-01-01'到'9999-12-31'
• TIMESTAMP——格式:'YYYYMMDDHHMMSS'、'YYMMDDHHMMSS'、'YYYYMMDD'、'YYMMDD',範圍:'1970-01-01 00:00:00'到'2037-01-01 00:00:00'
• TIME——格式:'HH:MM:SS'
• YEAR——格式:'YYYY,範圍:'1901'到'2155'