由于H2是由java语言编写的,所以提供的数据类型都和java契合,下面给出数据类型列表:

一、基本的数据类型有哪些?

1、数字方面
整数(INT)
布尔型(BOOLEAN)
微整数(TINYINT)
小整数(SMALLINT)
大整数(BIGINT)
标识符(IDENTITY)
货币数(DECIMAL)
双精度实数(DOUBLE)
实数(REAL)
2、时间方面
时间(TIME)
日期(DATE)--在H2中存储为date字段类型将只有年月日
时间戳(TIMESTAMP)
3、字符文本方面
二进制(BINARY)
其他类型(OTHER)
可变字符串(VARCHAR)
不区分大小写可变字符串(VARCHAR_IGNORECASE)
字符(CHAR)
二进制大对象(BLOB)
文本大对象(CLOB)
通用唯一标识符(UUID)
数组(ARRAY)

二、具体数据类型的简介

整数(INT)INT | 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  需要特别注意的是这里,我们在oracle中定义成date是可以保存时分秒的,而在H2中则不会
时间戳(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[] (没有任何原始类型数组被支持).

H2内存数据库数据类型相关推荐

  1. 在Spring Boot使用H2内存数据库

    文章目录 添加依赖配置 数据库配置 添加初始数据 访问H2数据库 在Spring Boot使用H2内存数据库 在之前的文章中我们有提到在Spring Boot中使用H2内存数据库方便开发和测试.本文我 ...

  2. springboot整合H2内存数据库,实现单元测试与数据库无关性

    springboot整合H2内存数据库,实现单元测试与数据库无关性 一.新建spring boot工程 新建工程的时候,需要加入JPA,H2依赖 二.工程结构 pom文件依赖如下: [html] vi ...

  3. Spring项目使用H2内存数据库做单元测试

    Spring 做单元测试 单元测试很重要,对于Spring项目,特别是测试Service层或者dao层的代码时.需要验证访问数据库的逻辑是否正确.测试Dao层的代码两种方式 使用外置数据库 测试环境在 ...

  4. SpringBoot使用H2内存数据库单元测试的代码示例

    一.背景 单元测试是提高代码质量和保证代码正确性的重要保证. DAO的单元测试有常见的两种方案. [1]使用H2这类内存数据库进行单元测试. [2]使用MySQL数据库,测试后回滚. 两种方案各有利弊 ...

  5. SQLite和H2 内存数据库 对比

    H2数据库的使用: https://baomidou.com/guide/quick-start.html#%E9%85%8D%E7%BD%AE 内存数据库,顾名思义就是将数据放在内存中直接操作的数据 ...

  6. JPA H2内存数据库 demo

    本文基于SpringBoot工程,引用的依赖包有thymeleaf.springmvc.jpa.h2.mysql,考虑篇幅,有些代码省略. 1.使用JPA需继承CrudRepository接口 继承C ...

  7. Spring Boot整合H2内存数据库配置及常见问题处理

    文章目录 H2 数据库简介 内存数据库配置与控制台连接 在内存中创建表以及插入数据 SpringBoot整合H2内存数据查询 常见问题及解决 问题1: Database "mem:XXX&q ...

  8. H2内存数据库的函数

    每个数据库为了使用者的查询简便性以及使用效率,都有专门提供一些函数给使用者进行使用,H2也同样如此,虽然没有oracle那么多强大的函数,但是一般需求的使用还是能够满足,下面就简单介绍下都有哪些函数 ...

  9. H2内存数据库简介和使用经验

    H2官网:H2 Database Engine (redirect) H2使用: 1. 通过embed模式,直接整合进Spring中 1.1. pom.xml中引入依赖 <dependency& ...

最新文章

  1. 配置Tomcat监听80端口 配置Tomcat虚拟主机 Tomcat日志
  2. 值得推荐的好书——评《亮剑.NET.图解C#开发实战》
  3. 为取消大小周而欢呼?字节员工可不那么想...
  4. 使内嵌式jetty服务器支持jsp
  5. rails采用MongoDB感觉相当不错!
  6. 高等数学与python高级应用_python高级应用程序与设计
  7. iOS应用性能调优建议
  8. php.exe安装教程,经典的php for win32安装 (转)-PHP教程,PHP应用
  9. 微软推出面向 Kubernetes 的 OSM 项目,计划捐赠给 CNCF 基金会
  10. 案例-两面翻转的盒子(CSS3)
  11. Java中HashMap的原理
  12. python语言的主网址-python如何获得一个url地址对应的跳转后的最终网址
  13. java ssh 框架下 利用junit4 spring-test进行单元测试
  14. 中国2017 Google 开发者大会第二天简单回顾
  15. 设计模式学习之外观模式
  16. 分析一块某宝上的WiFi摄像头模块
  17. 社区车辆信息管理系统
  18. ztree学习笔记(一)
  19. MarkText常用快捷键
  20. python jinja2_Python模块学习 - jinja2

热门文章

  1. 用 Amazon Web Services 进行云计算,第 2 部分: 用 Amazon Simple Storage Service (S3) 在云中存储数据
  2. Android P 开发者预览版首发!
  3. 曝腾讯天美程序员税后250万,月均20万
  4. 苹果mac os Mojave系统10.14.1(懒人版)_cdr下载
  5. 一文详解,分布式事务Seata
  6. 【40nm工艺库使用疑问记录】
  7. 微美全息:布局元宇宙能否赶上“黎明曙光”?
  8. 显著性检测算法学习阶段论文总结(1)
  9. 算法面试之Roberta、Albert
  10. 【测试开发】自动化测试在美团外卖的实践与落地