H2:修订间差异
跳到导航
跳到搜索
(→函数) |
(→函数) |
||
(未显示同一用户的2个中间版本) | |||
第13行: | 第13行: | ||
==== 配置 ==== | ==== 配置 ==== | ||
修改 bin/h2.sh | 修改 bin/h2.sh | ||
java -cp "$dir/h2- | java -cp "$dir/h2-.jar:$H2DRIVERS:$CLASSPATH" org.h2.tools.Server -tcpAllowOthers -webAllowOthers -webPort 8082 "$@" | ||
* webAllowOthers, 允许 web 连接 | * webAllowOthers, 允许 web 连接 | ||
* tcpAllowOthers, 允许 tcp 连接 | * tcpAllowOthers, 允许 tcp 连接 | ||
第26行: | 第26行: | ||
=== 建库 === | === 建库 === | ||
java -cp /opt/h2/bin/h2-2. | java -cp /opt/h2/bin/h2-2.1.212.jar org.h2.tools.Shell | ||
==== 例子 ==== | ==== 例子 ==== | ||
第41行: | 第41行: | ||
=== 函数 === | === 函数 === | ||
包含部分 MySQL、Oracle 函数 | 包含部分 MySQL、Oracle 函数 | ||
{| class="wikitable" | {| class="wikitable sortable" | ||
|+ | |+ | ||
!分类 | !分类 | ||
第49行: | 第49行: | ||
!Output | !Output | ||
|- | |- | ||
| | | rowspan="3" |字符串 | ||
|substring | |substring | ||
|截取字符串 | |截取字符串 | ||
第55行: | 第55行: | ||
|ab | |ab | ||
|- | |- | ||
|concat | |concat | ||
|连接字符串 | |连接字符串 | ||
第61行: | 第60行: | ||
|abcd | |abcd | ||
|- | |- | ||
|trim | |trim | ||
|去掉两边指定字符 | |去掉两边指定字符 | ||
第67行: | 第65行: | ||
|abc. | |abc. | ||
|- | |- | ||
| | | rowspan="3" |时间 | ||
|now | |now | ||
|当前时间 | |当前时间 | ||
第73行: | 第71行: | ||
|2024-11-06 15:15:36.975 | |2024-11-06 15:15:36.975 | ||
|- | |- | ||
|to_char | |to_char | ||
|时间转换为字符串 | |时间转换为字符串 | ||
第79行: | 第76行: | ||
|2024-11-06 15:15:36.975463 | |2024-11-06 15:15:36.975463 | ||
|- | |- | ||
|datediff | |datediff | ||
|时间差 | |时间差 | ||
第85行: | 第81行: | ||
|1730906136975, ms/s/d/m | |1730906136975, ms/s/d/m | ||
|- | |- | ||
| | | rowspan="3" |数值 | ||
| | |||
|floor | |floor | ||
|取不大于的最大整数 | |取不大于的最大整数 | ||
第103行: | 第87行: | ||
|3 | |3 | ||
|- | |- | ||
|ceil | |ceil | ||
|取不小于的最小整数 | |取不小于的最小整数 | ||
第109行: | 第92行: | ||
|4 | |4 | ||
|- | |- | ||
|round | |round | ||
|四舍五入 | |四舍五入 | ||
|round(3.495, 2) | |round(3.495, 2) | ||
|3.5 | |3.5 | ||
|- | |||
| rowspan="2" |其它 | |||
|ascii | |||
|ASCII | |||
|ascii('abc') | |||
|97 | |||
|- | |||
|rand | |||
|随机小数 | |||
|rand() | |||
|0.3049366398330672 | |||
|} | |} | ||
2024年11月6日 (三) 15:34的最新版本
H2 数据库源于 Hypersonic SQL 项目,是一款以 Java 编写的轻量级关系型数据库。由于其小巧、灵活并且易于集成,H2 经常被用作开发和测试环境中的便利数据库解决方案。除此之外,H2也适合作为生产环境中的嵌入式数据库、轻量级应用的内存数据库、大型应用的本地缓存数据库。它不仅支持标准的 SQL,还兼容 JDBC API,既可以以嵌入式的形式运行,也可以作为服务器模式运行。
Welcome to H2, the Java SQL database. The main features of H2 are:
- Very fast, open source, JDBC API
- Embedded and server modes; in-memory databases
- Browser based Console application
- Small footprint: around 2.5 MB jar file size
安装
从官网下载:https://h2database.com/
配置
修改 bin/h2.sh
java -cp "$dir/h2-.jar:$H2DRIVERS:$CLASSPATH" org.h2.tools.Server -tcpAllowOthers -webAllowOthers -webPort 8082 "$@"
- webAllowOthers, 允许 web 连接
- tcpAllowOthers, 允许 tcp 连接
- webPort, web 端口,默认 8082
运行
nohup sh h2.sh &
- TCP server running at tcp://192.168.0.158:9092 (others can connect)
- PG server running at pg://192.168.0.158:5435 (only local connections)
- Web Console server running at http://192.168.0.158:8082 (others can connect)
- (ignore) Failed to start a browser to open the URL http://192.168.0.158:8082: Browser detection failed, and java property 'h2.browser' and environment variable BROWSER are not set to a browser executable.
建库
java -cp /opt/h2/bin/h2-2.1.212.jar org.h2.tools.Shell
例子
create table test ( ky int primary key, val varchar(20), ct datetime comment 'create date' ); -- truncate table test; insert into test values(0, 'Hello, World!', '2024-10-10 12:59:59'); select * from test;
函数
包含部分 MySQL、Oracle 函数
分类 | 函数 | 功能 | Example | Output |
---|---|---|---|---|
字符串 | substring | 截取字符串 | substring('abcd', , 2) | ab |
concat | 连接字符串 | concat('ab', 'c', 'd') | abcd | |
trim | 去掉两边指定字符 | trim(',,abc.,', ',') | abc. | |
时间 | now | 当前时间 | now() | 2024-11-06 15:15:36.975 |
to_char | 时间转换为字符串 | to_char(now(), 'yyyy-MM-dd hh24:Mi:ss.ff6') | 2024-11-06 15:15:36.975463 | |
datediff | 时间差 | datediff('ms', '1970-01-01', now()) | 1730906136975, ms/s/d/m | |
数值 | floor | 取不大于的最大整数 | floor(3.5) | 3 |
ceil | 取不小于的最小整数 | ceil(3.5) | 4 | |
round | 四舍五入 | round(3.495, 2) | 3.5 | |
其它 | ascii | ASCII | ascii('abc') | 97 |
rand | 随机小数 | rand() | 0.3049366398330672 |
关闭
默认情况下当最后一个连接关闭后,数据库会自动关闭。延迟关闭方法:
- 执行 SQL statment,'SET DB_CLOSE_DELAY <seconds>'
- 在连接的 URL 中设置,如 'jdbc:h2:~/test;DB_CLOSE_DELAY=10',-1 禁用无连接自动关闭功能
- 在连接的 URL 中设置,如 'jdbc:h2:~/test;DB_CLOSE_ON_EXIT=FALSE',表示禁用 java VM 退出自动关闭功能
如果 DB_CLOSE_DELAY 设置为 -1,但如果 JAVA 的 VM 正常退出的话,这种情况下 H2 可以使用 'DB_CLOSE_ON_EXIT=FALSE' 来防止 vm 的 shutdown hook 自动关闭数据库。