整數(INT)INT | INTEGER | MEDIUMINT | INT4 | SIGNED
數據庫
值的範圍爲: -2147483648 到 2147483647.數組
對應到Java類型: java.lang.Integer.安全
例如:
ide
INT函數
布爾型(BOOLEAN)ui
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
數組(ARRAY)ARRAY
一組值,可使用值列表 (1, 2) 或 PreparedStatement.setObject(.., new Object[] {..}) 存儲對象。
對應到Java類型: java.lang.Object[] (沒有任何原始類型數組被支持).
例如:
ARRAY
相關:H2數據庫函數及數據類型概述