Lindorm支援通過簡單的SQL陳述式完成資料的查詢、分析和管理。為了更好地處理資料,在建立表前,您需要瞭解Lindorm SQL支援的基礎資料類型及相關使用限制。
適用引擎
基礎資料類型適用於寬表引擎、時序引擎和列存引擎。
基礎資料類型介紹
資料類型 | 對應的Java類型 | 描述 |
BOOLEAN | java.lang.Boolean | 長度為1位元組。布爾型,取值為true或false。 |
TINYINT | java.lang.Byte | 長度為1位元組。定長精確數實值型別。取值範圍取決於長度,以及數值中有無符號。 |
SMALLINT | java.lang.Short | 長度為2位元組。定長精確數實值型別。取值範圍取決於長度,以及數值中有無符號。 |
INTEGER | java.lang.Integer | 長度為4位元組。定長精確數實值型別。取值範圍取決於長度,以及數值中有無符號。 |
BIGINT | java.lang.Long | 長度為8位元組。定長精確數實值型別。取值範圍取決於長度,以及數值中有無符號。 |
FLOAT | java.lang.Float | 長度為4位元組。定長非精確數實值型別。取值範圍和精度取決於長度、precision和scale,以及數值中有無符號。 |
DOUBLE | java.lang.Double | 長度為8位元組。定長非精確數實值型別。取值範圍和精度取決於長度、precision和scale,以及數值中有無符號。使用SQL語句拼字時,按照科學計數法的方式來表示DOUBLE類型的值。 |
DECIMAL(precision,scale) | java.lang.BigDecimal | 變長二進位類型。DECIMAL為十進位,消耗的位元組數隨精度的增加而增加,通常用於儲存金額等高精度資料,對於精度要求不高的情境(例如監控),可以使用FLOAT或DOUBLE。定義類型時需要指定precision和scale。
|
VARCHAR / CHAR(N) | java.lang.String | 字串,支援中文。
|
BINARY(N) | byte[] | 定長二進位類型,N表示位元組數。寫入資料時,包含以下兩種情況:
|
VARBINARY | byte[] | 變長二進位類型,作為主鍵時只能是最後一列主鍵。 |
DATE | java.sql.Types#DATE | 日期時間(僅儲存日期,不儲存時間。在時區轉換過程中易出現日期錯誤的現象,不推薦使用)。DATE類型的格式和時區特性說明請參見背景資訊。 |
TIME | java.sql.Types#TIME | 時間類型。TIME類型的格式和時區特性說明請參見背景資訊。 |
TIMESTAMP | java.sql.Types#TIMESTAMP | 時間戳記。TIMESTAMP類型的格式和時區特性說明請參見背景資訊。 重要 Lindorm和MySQL的TIMESTAMP類型支援的時間範圍不同:MySQL支援的最大值為 |
引擎支援說明
寬表引擎、時序引擎和列存引擎對基礎資料類型的支援情況如下:
〇表示支援該資料類型,✖️表示目前不支援該資料類型。
資料類型 | 對應的Java類型 | 寬表引擎 | 時序引擎 | 列存引擎 |
BOOLEAN | java.lang.Boolean | 〇 | 〇 | 〇 |
TINYINT | java.lang.Byte | 〇 | ✖️ | 〇 |
SMALLINT | java.lang.Short | 〇 | ✖️ | 〇 |
INTEGER | java.lang.Integer | 〇 | ✖️ | 〇 |
BIGINT | java.lang.Long | 〇 | 〇 | 〇 |
FLOAT | java.lang.Float | 〇 | ✖️ | 〇 |
DOUBLE | java.lang.Double | 〇 | 〇 | 〇 |
DECIMAL(precision,scale) | java.lang.BigDecimal | 〇 | ✖️ | 〇 |
VARCHAR / CHAR(N) | java.lang.String | 〇 | 〇 | 〇 |
BINARY(N) | byte[] | 〇 | ✖️ | 〇 |
VARBINARY | byte[] | 〇 | ✖️ | 〇 |
DATE | java.sql.Types#DATE | 〇 | ✖️ | 〇 |
TIME | java.sql.Types#TIME | 〇 | ✖️ | ✖️ |
TIMESTAMP | java.sql.Types#TIMESTAMP | 〇 | 〇 | 〇 |
索引支援說明
您可以在寬表引擎中為未經處理資料建立二級索引、搜尋索引或列存索引來加速資料查詢。
二級索引、搜尋索引和列存索引支援的基礎資料類型如下:
〇表示支援該資料類型,✖️表示目前不支援該資料類型。
資料類型 | 對應的Java類型 | 二級索引 | 搜尋索引 | 列存索引 | |
BOOLEAN | java.lang.Boolean | 〇 | 〇 | 〇 | |
TINYINT | java.lang.Byte | 〇 | 〇 | 〇 | |
SMALLINT | java.lang.Short | 〇 | 〇 | 〇 | |
INTEGER | java.lang.Integer | 〇 | 〇 | 〇 | |
BIGINT | java.lang.Long | 〇 | 〇 | 〇 | |
FLOAT | java.lang.Float | 〇 | 〇 | 〇 | |
DOUBLE | java.lang.Double | 〇 | 〇 | 〇 | |
DECIMAL(precision,scale) | java.lang.BigDecimal | 〇 | ✖️ | 〇 | |
VARCHAR / CHAR(N) | java.lang.String | 〇 | 〇 | 〇 | |
BINARY(N) | byte[] | 〇 | 〇 | 〇 | |
VARBINARY | byte[] | 〇 | 〇 | 〇 | |
DATE | java.sql.Types#DATE | 〇 | ✖️ | 〇 | |
TIME | java.sql.Types#TIME | 〇 | ✖️ | ✖️ | |
TIMESTAMP | java.sql.Types#TIMESTAMP | 〇 | 〇 重要 要求寬表引擎為2.6.5及以上版本。 | 〇 |