H2Database數據類型


數據類型 

 

 

 

 

整數(INT)
布爾型(BOOLEAN)
微整數(TINYINT)
小整數(SMALLINT)
大整數(BIGINT)
標識符(IDENTITY)
貨幣數(DECIMAL)

雙精度實數(DOUBLE)
實數(REAL)
時間(TIME)
日期(DATE)
時間戳(TIMESTAMP)
二進制(BINARY)
其他類型(OTHER)

可變字符串(VARCHAR)
不區分大小寫可變字符串(VARCHAR_IGNORECASE)
字符(CHAR)
二進制大對象(BLOB)
文本大對象(CLOB)
通用唯一標識符(UUID)
數組(ARRAY)

           



整數(INTINT | INTEGER | MEDIUMINT | INT4 | SIGNED

值的范圍為: -2147483648 到 2147483647.

對應到Java類型: java.lang.Integer.

例如:

INT





布爾型(BOOLEAN

BOOLEAN | BIT | BOOL

可能的值為: TRUE 和 FALSE。

對應到Java類型: java.lang.Boolean.

例如:

BOOLEAN





微整數(TINYINT

TINYINT

值的范圍為: -128 到 127.

對應到Java類型: java.lang.Byte.

例如:

TINYINT





小整數(SMALLINT

SMALLINT | INT2 | YEAR

值的范圍為: -32768 到 32767.

對應到Java類型: java.lang.Short.

例如:

SMALLINT





大整數(BIGINT

BIGINT | INT8

值的范圍為: -9223372036854775808 到 9223372036854775807.

對應到Java類型:  java.lang.Long.

例如:

BIGINT





標識符(IDENTITY

IDENTITY

自增值,值的范圍為: -9223372036854775808 到 9223372036854775807。使用的值不能再重用,即使事務回滾。

對應到Java類型: java.lang.Long.

例如:

IDENTITY





貨幣數(DECIMAL

{ DECIMAL | NUMBER | DEC | NUMERIC } ( precisionInt [ , scaleInt ] )

固定整數位和小數位。這個數據類型經常用於存儲貨幣等類型的值。

對應到Java類型: java.math.BigDecimal.

例如:

DECIMAL(20, 2)





雙精度實數(DOUBLE

{ DOUBLE [ PRECISION ] | FLOAT | FLOAT4 | FLOAT8 }

浮點數。不能應用到表示貨幣等值,因為有四舍五入的問題。

對應到Java類型: java.lang.Double.

例如:

DOUBLE





實數(REAL

REAL

單精度浮點數。不能應用到表示貨幣等值,因為有四舍五入的問題。

對應到Java類型: java.lang.Float.

例如:

REAL





時間(TIME

TIME

格式為 hh:mm:ss.

對應到Java類型:java.sql.Time.

例如:

TIME





日期(DATE

DATE

格式為 yyyy-MM-dd.

對應到Java類型: java.sql.Date

例如:

DATE





時間戳(TIMESTAMP

{ TIMESTAMP | DATETIME | SMALLDATETIME }

格式為 yyyy-MM-dd hh:mm:ss[.nnnnnnnnn].

對應到Java類型: java.sql.Timestamp (java.util.Date 也支持).

例如:

TIMESTAMP





二進制(BINARY

{ BINARY | VARBINARY | LONGVARBINARY | RAW | BYTEA } [ ( precisionInt ) ]

表示一個字節數組。針對更長的數組,使用 BLOB 類型。最大的尺寸為 2 GB,當使用這種數據類型時,整個對象都會保存在內存中,在內存中的尺寸是一個精確的指定值,只有實際的數據會被持久化。對於大的文本數據,還是使用 BLOB 和 CLOB 更合適。

對應到Java類型: byte[].

例如:

BINARY(1000)







其他類型(OTHER

OTHER

這個類型允許存儲可序列化的JAVA對象。在內部,使用的是一個字節數組。序列化和反序列化只在客戶端端完成。反序列化僅在 getObject 被調用時才被調用。JAVA操作因為安全的原因並不能在數據庫引擎內被執行。可以使用 PreparedStatement.setObject 存儲對象。

對應到Java類型: java.lang.Object (或者是任何子類).

例如:

OTHER







可變字符串(VARCHAR

{ VARCHAR | LONGVARCHAR | VARCHAR2 | NVARCHAR
| NVARCHAR2 | VARCHAR_CASESENSITIVE}  [ ( precisionInt ) ]

Unicode 字符串。使用兩個單引號('') 表示一個引用。最大的長度是Integer.MAX_VALUE,字符串的實際長度是精確指定的,僅實際的數據會被持久化。當使用這種數據類型時,整個文本都會保存在內存中。更多的文本數據,使用 CLOB 更合適。

對應到Java類型: java.lang.String.

例如:

VARCHAR(255)





不區分大小寫的可變字符串(VARCHAR_IGNORECASE

VARCHAR_IGNORECASE [ ( precisionInt ) ]

與 VARCHAR 類型類似,只是在比較時不區分大小寫。存儲時是混合大小寫存儲的。當使用這種數據類型時,整個文本都會保存在內存中。更多的文本數據,使用 CLOB 更合適。

例如:

VARCHAR_IGNORECASE





字符(CHAR

{ CHAR | CHARACTER | NCHAR } [ ( precisionInt ) ]

這個類型支持是針對其他數據庫或老的應用的兼容性。與VARCHAR 的不同是尾空格將被忽略並且不會被持久化。 Unicode 字符串。使用兩個單引號('') 表示一個引用。最大的長度是Integer.MAX_VALUE,字符串的實際長度是精確指定的,僅實際的數據會被持久化。當使用這種數據類型時,整個文本都會保存在內存中。更多的文本數據,使用 CLOB 更合適。

對應到Java類型: java.lang.String.

例如:

CHAR(10)





二進制大對象(BLOB

{ BLOB | TINYBLOB | MEDIUMBLOB | LONGBLOB | IMAGE | OID } [ ( precisionInt ) ]

類似於BINARY,但是針對的是非常大的值如文件或是圖片。跟BINARY不同的是,大對象並不完全保存在內存中。使用 PreparedStatement.setBinaryStream 存儲對象,詳細請參見 CLOB 和 高級 / 大對象。

對應到Java類型: java.sql.Blob (java.io.InputStream 也支持)。

例如:

BLOB





文本大對象(CLOB

{ CLOB | TINYTEXT | TEXT | MEDIUMTEXT | LONGTEXT | NTEXT | NCLOB } [ ( precisionInt ) ]

CLOB類似於 VARCHAR,但是針對的是非常大的值。與 VARCHAR不同的是,CLOB 對象並不完全保存在內存中,而是使用的流。CLOB 可以用於文檔或文本,如果XML、HTML文檔,文本文件、未限制尺寸的備忘錄等。使用 PreparedStatement.setCharacterStream 存儲對象。詳細請參見 高級 / 大對象。

VARCHAR 用於相對較小的文本(如200個字符以內)。小的 CLOB 值被就地存儲,但是也比 VARCHAR 要大。

對應到Java類型: java.sql.Clob (java.io.Reader 也支持).

例如:

CLOB





通用唯一標識符(UUID

UUID

UUID(Universally unique identifier),是一個128BIT的值,使用 PreparedStatement.setBytes 或 setString 去存儲值。

對應到Java類型: java.util.UUID.

例如:

UUID



數組(ARRAYARRAY

一組值,可以使用值列表 (1, 2) 或 PreparedStatement.setObject(.., new Object[] {..}) 存儲對象。

對應到Java類型: java.lang.Object[] (沒有任何原始類型數組被支持).

例如:

ARRAY

 相關:H2數據庫函數及數據類型概述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM