推薦閱讀: MySQL數據類型詳解
一、數值類型
1. 整數類型
TINYINT
SMALLINT
MEDIUMINT
INT
BIGINT
2. 小數類型
M 是總位數,D 是小數點後面的位數
浮點小數類型:
FLOAT[(M,D)]
DOUBLE[(M,D)]
定點小數類型:
DECIMAL[(M,D)]
位類型:
BIT
二、字符串類型
字符串:
CHAR
VARCHAR
文本: 用於存儲非二進制字符串,所以 TEXT 系列的類型存儲與解析與字符集有關
TINYTEXT
TEXT
MEDIUMTEXT
LONGTEXT
二進制: 用於存儲二進制字符串,比如圖片、聲音等數據
TINYBLOB
BLOB
MEDUIMBLOB
LONGBLOB
複合類型:
ENUM
: 一個字符串對象,從值列表中選擇,最多可包含 65,535 個不同的元素SET
: 字符串對象,可以有零個或多個值,最多可包含 64 個不同的成員
二進制與非二進制對比:
二進制字符串類型 | 非二進制字符串類型 |
---|---|
BINARY | CHAR |
VARBINARY | VARCHAR |
TINYBLOB | TINYTEXT |
BLOB | TEXT |
MEDIUMBLOB | MEDIUMTEXT |
LONGBLOB | LONGTEXT |
三、時間類型
DATE
: 取值範圍爲1000-01-01~9999-12-31TIME
: TIME 不是表示時分秒,而表示兩個事件之間的時間間隔,所以 TIME 類型可以爲負值DATETIME
: 是 DATE 和 TIME 兩個種數據類型的組合TIMESTAMP
: 保存日期與時間的組合值,與時區相關,默認以 UTC(世界標準時間)格式存儲YEAR
: 寫法爲 YEAR 和 YEAR(4),取值範圍 1901~2155
四、 JSON 類型
存儲 json 字符串
五、空間類型
待定
mysql 類型對應 Java 類型
類型名稱 | 顯示長度 | 數據庫類型 | JAVA類型 | JDBC類型索引(int) |
---|---|---|---|---|
VARCHAR | L+N | VARCHAR | java.lang.String | 12 |
CHAR | N | CHAR | java.lang.String | 1 |
BLOB | L+N | BLOB | java.lang.byte[] | -4 |
TEXT | 65535 | VARCHAR | java.lang.String | -1 |
INTEGER | 4 | INTEGER UNSIGNED | java.lang.Long | 4 |
TINYINT | 3 | TINYINT UNSIGNED | java.lang.Integer | -6 |
SMALLINT | 5 | SMALLINT UNSIGNED | java.lang.Integer | 5 |
MEDIUMINT | 8 | MEDIUMINT UNSIGNED | java.lang.Integer | 4 |
BIT | 1 | BIT | java.lang.Boolean | -7 |
BIGINT | 20 | BIGINT UNSIGNED | java.math.BigInteger | -5 |
FLOAT | 4+8 | FLOAT | java.lang.Float | 7 |
DOUBLE | 22 | DOUBLE | java.lang.Double | 8 |
DECIMAL | 11 | DECIMAL | java.math.BigDecimal | 3 |
BOOLEAN | 1 | 同TINYINT | ||
ID | 11 | PK (INTEGER UNSIGNED) | java.lang.Long | 4 |
DATE | 10 | DATE | java.sql.Date | 91 |
TIME | 8 | TIME | java.sql.Time | 92 |
DATETIME | 19 | DATETIME | java.sql.Timestamp | 93 |
TIMESTAMP | 19 | TIMESTAMP | java.sql.Timestamp | 93 |
YEAR | 4 | YEAR | java.sql.Date | 91 |