H2 is a relational database management system written in Java. It can be embedded in Java applications or run in client-server mode.
The H2 console application lets you access a SQL database using a browser interface.
An embedded web server with a browser based console application is included, as well as command line tools to start and stop a server, backup and restore databases, and a command line shell tool.
Key Features
- Very fast, open source, JDBC API.
- Memory mode.
- Encrypted database, together with other strong security features such as SHA-256 password encryption, encryption functions, and SSL.
- ODBC driver.
- Fulltext search.
- Multi version concurrency.
- Disk based or in-memory databases and tables, read-only database support, temporary tables
- Transaction support (read committed), 2-phase-commit
- Multiple connections, table level locking
- Cost based optimizer, using a genetic algorithm for complex queries, zero-administration
- Scrollable and updatable result set support, large result set, external result sorting, functions can return a result set
- Embedded and server modes; in-memory databases.
- Browser based Console application.
- Small footprint: around 2 MB jar file size.
- SQL support:
- Support for multiple schemas, information schema.
- Referential integrity / foreign key constraints with cascade, check constraints.
- Inner and outer joins, subqueries, read only views and inline views.
- Triggers and Java functions / stored procedures.
- Many built-in functions, including XML and lossless data compression.
- Wide range of data types including large objects (BLOB/CLOB) and arrays.
- Sequence and autoincrement columns, computed columns (can be used for function based indexes).
- ORDER BY, GROUP BY, HAVING, UNION, OFFSET / FETCH (including PERCENT and WITH TIES), LIMIT, TOP, DISTINCT / DISTINCT ON (…).
- Window functions.
- Collation support, including support for the ICU4J library.
- Support for users and roles.
- Compatibility modes for IBM DB2, Apache Derby, HSQLDB, MS SQL Server, MySQL, Oracle, and PostgreSQL.
- Other features:
- Small footprint (around 2 MB), low memory requirements.
- Multiple index types (b-tree, tree, hash).
- Support for multi-dimensional indexes.
- CSV (comma separated values) file support.
- Support for linked tables, and a built-in virtual ‘range’ table.
- Supports the
EXPLAIN PLANstatement; sophisticated trace options. - Database closing can be delayed or disabled to improve the performance.
- Web-based Console application (translated to many languages) with autocomplete.
- The database can generate SQL script files.
- Contains a recovery tool that can dump the contents of the database.
- Support for variables (for example to calculate running totals).
- Automatic re-compilation of prepared statements.
- Uses a small number of database files.
- Uses a checksum for each record and log entry for data integrity.
- Well tested (high code coverage, randomized stress tests).
Website: www.h2database.com
Support: FAQ, GitHub Code Repository
Developer: H2 Developers
License: Eclipse Public License or Mozilla Public License 2.0
H2 is written in Java. Learn Java with our recommended free books and free tutorials.
Related Software
| Relational Databases | |
|---|---|
| MariaDB | Seeks high compatibility with MySQL, ensuring drop-in replacement capability |
| PostgreSQL | Award winning Object-relational database management system |
| MySQL | Multithreaded, multi-user SQL database management system |
| SQLite | Embeddable SQL Database Engine |
| rqlite | Distributed database built on SQLite |
| MonetDB | High performance relational database system for analytics |
| Firebird | Relational database offering many ANSI SQL features |
| H2 | Relational database management system written in Java |
| HSQLDB | JDBC interface, client-server version, query tool, grid and more |
| CUBRID | Database engine with built-in enterprise grade features |
| Virtuoso | Data Management with Web Application Server and Web Services Platform |
| Apache Derby | Full-featured relational database implemented entirely in Java |
Read our verdict in the software roundup.
Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more. Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form. |

