MySQL 就如同一般的程式語言一樣,每個欄位都有其資料型別 (data types),常見的 MySQL 資料型別如下。
數值型別 (Numeric Types):對整數而言,M 為最大顯示寬度,M 的最大值為 255。對定點數與浮點數而言,M 為全部位數,D 為小數點後的位數。另外,BOOL 及 BOOLEAN 就等同於 TINYINT(1),而 NUMERIC 就等同於 DECIMAL。
| 資料型別 | 說明 | 範圍 |
| TINYINT(M) | 整數,佔用 1 byte | -128 ~ 127 |
| SMALLINT(M) | 整數,佔用 2 bytes | -32768 ~ 32767 |
| MEDIUMINT(M) | 整數,佔用 3 bytes | -8388608 ~ 8388607 |
| INT(M) | 整數,佔用 4 bytes | -2147483648 ~ 2147483647 |
| BIGINT(M) | 整數,佔用 8 bytes | -9223372036854775808 ~ 9223372036854775807 |
| DECIMAL(M,D) | 定點數 | 依 M、N 之值而定, M 的最大值為 65, D 的最大值為 30 |
| FLOAT(M,D) | 浮點數,佔用 4 bytes, 精確度約為 7 位數 | -3.402823466E+38 ~ -1.175494351E-38, 0, 1.175494351E-38 ~ 3.402823466E+38 |
| DOUBLE(M,D) | 浮點數,佔用 8 bytes, 精確度約為 15 位數 | -1.7976931348623157E+308 ~ -2.2250738585072014E-308, 0, 2.2250738585072014E-308 ~ 1.7976931348623157E+308 |
日期與時間型別 (Date and Time Types):F 為秒的小數位數,F 的最大值為 6。
| 資料型別 | 說明 | 範圍 |
| DATE | 僅日期 | 1000-01-01 ~ 9999-12-31 |
| DATETIME(F) | 日期與時間 | 1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999 |
| TIMESTAMP(F) | 日期與時間 | 1970-01-01 00:00:01.000000 UTC ~ 2038-01-19 03:14:07.999999 UTC |
| TIME(F) | 僅時間 | -838:59:59.000000 ~ 838:59:59.000000 |
| YEAR(4) | 僅日期中的年份 | 1901 ~ 2155, 0000 |
字串型別 (String Types):M 為最大字串長度。對文字而言,M 是以字元為單位,對二進位資料而言,M 是以位元組 (bytes) 為單位。請注意,對文字而言,若其使用的編碼含有多位元字元 (multibyte characters),如 utf8 等,則下述 M 的最大值可能會再減少。
| 資料型別 (文字型別 / 二進位資料型別) | 說明 | 範圍 |
| CHAR(M) / BINARY(M) | 固定長度的字串 | M 的最大值為 255 |
| VARCHAR(M) / VARBINARY(M) | 浮動長度的字串 | M 的最大值為 65535 |
| TINYTEXT / TINYBLOB | 浮動長度的字串 | 最大字串長度為 255 |
| TEXT(M) / BLOB(M) | 浮動長度的字串 | 最大字串長度為 65535 |
| MEDIUMTEXT / MEDIUMBLOB | 浮動長度的字串 | 最大字串長度為 16777215 |
| LONGTEXT / LONGBLOB | 浮動長度的字串 | 最大字串長度為 4294967295 |
其他重要的 MySQL 資料型別還有 BIT、ENUM、SET 等。您可以自行參考 MySQL 官方手冊。