菜鸟科技网

h2数据库常用命令有哪些?

H2数据库是一个用Java编写的开源嵌入式数据库,它具有轻量级、快速且功能丰富的特点,支持标准SQL、事务处理、内存模式等多种运行方式,适用于开发、测试和小型应用场景,以下是关于H2数据库常用命令的详细介绍,涵盖数据库连接、表操作、数据管理等方面,帮助用户快速上手使用。

h2数据库常用命令有哪些?-图1
(图片来源网络,侵删)

数据库连接与启动命令

H2数据库可以通过命令行、Java代码或图形界面工具连接,启动H2数据库服务时,常用的命令格式为java -jar h2-*.jar,其中表示版本号,启动后,可通过浏览器访问http://localhost:8032打开管理控制台,默认JDBC URL为jdbc:h2:~/test,用户名和密码默认为sa,若要使用内存模式(数据不持久化),可修改URL为jdbc:h2:mem:testdb,关闭连接后数据自动清除,H2支持TCP服务器模式,允许远程连接,命令为java -cp h2*.jar org.h2.tools.Server -tcp,通过-tcpPort参数可指定端口号。

表操作命令

创建表是数据库操作的基础,H2使用标准SQL语法,创建一个用户表可执行:CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50), age INT);,若要删除表,使用DROP TABLE users;,但需注意该操作不可逆,且表数据将全部丢失,修改表结构时,可通过ALTER TABLE users ADD COLUMN email VARCHAR(100);添加新列,或ALTER TABLE users DROP COLUMN email;删除列,H2还支持临时表,通过CREATE TEMPORARY TABLE temp_users (...)创建,会话结束时自动删除。

数据管理命令

插入数据使用INSERT INTO users (id, name, age) VALUES (1, 'Alice', 25);,若要批量插入,可使用多行VALUES语法或事务处理提高效率,查询数据时,SELECT * FROM users WHERE age > 20;可筛选符合条件的记录,结合ORDER BY age DESC;可按年龄降序排序,更新数据通过UPDATE users SET age = 26 WHERE name = 'Alice';实现,删除数据则用DELETE FROM users WHERE id = 1;,为提高性能,可创建索引,如CREATE INDEX idx_age ON users(age);,但需注意索引会占用额外存储空间,且频繁修改数据时可能影响写入速度。

事务与权限控制

H2默认支持事务,通过BEGIN TRANSACTION;手动开启事务,或使用COMMIT;提交事务、ROLLBACK;回滚事务,在转账操作中,可先开启事务,执行扣款和收款两条SQL语句,确认无误后提交,若出错则回滚,确保数据一致性,权限管理方面,可通过CREATE USER user1 PASSWORD 'password';创建新用户,并使用GRANT SELECT, INSERT ON users TO user1;赋予指定表的权限,撤销权限则用REVOKE INSERT ON users FROM user1;

h2数据库常用命令有哪些?-图2
(图片来源网络,侵删)

常用工具命令

H2提供了多种实用工具命令,备份数据库可通过SCRIPT TO 'backup.sql';将数据导出为SQL文件,恢复数据库则使用RUNSCRIPT FROM 'backup.sql';,检查表完整性可执行CHECKSUM TABLE users;,修复损坏的表需先备份数据,然后使用REPAIR TABLE users;SHUTDOWN COMPACT;命令可压缩数据库文件,减少存储空间占用。

FAQs

Q1: H2数据库如何设置自动增长的主键?
A1: 在创建表时,可为列设置AUTO_INCREMENT属性,CREATE TABLE orders (id INT AUTO_INCREMENT PRIMARY KEY, product_name VARCHAR(50));,插入数据时无需指定id值,数据库会自动生成唯一递增的编号。

Q2: H2内存模式的数据如何在重启后保留?
A2: 内存模式默认不持久化数据,但可通过指定DB_CLOSE_DELAY=-1参数保持数据库连接关闭后数据不丢失,例如URL修改为jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1,也可将内存数据库的数据保存到文件,如jdbc:h2:mem:testdb;INIT=RUNSCRIPT FROM 'init.sql',启动时从文件加载数据。

h2数据库常用命令有哪些?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇