H2 – relational database management system written in Java

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.

Features include:

  • 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 PLAN statement; 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.

Return to Relational Databases Home Page


Popular series
Guide to LinuxNew to Linux? Read our Linux for Starters series. We start right at the basics and teach you everything you need to know to get started with Linux.
Free and Open Source SoftwareThe largest compilation of the best free and open source software in the universe. Each article is supplied with a legendary ratings chart helping you to make informed decisions.
ReviewsHundreds of in-depth reviews offering our unbiased and expert opinion on software. We offer helpful and impartial information.
Alternatives to Proprietary SoftwareReplace proprietary software with open source alternatives: Google, Microsoft, Apple, Adobe, IBM, Autodesk, Oracle, Atlassian, Corel, Cisco, Intuit, and SAS.
Linux Around The WorldLinux Around The World showcases events and usergroups that are relevant to Linux enthusiasts.
AudioSurveys popular streaming services from a Linux perspective: Amazon Music Unlimited, Myuzi, Spotify, Deezer, Tidal.
Saving Money with LinuxSaving Money with Linux looks at how you can reduce your energy bills running Linux.
System ToolsEssential Linux system tools focuses on small, indispensable utilities, useful for system administrators as well as regular users.
ProductivityLinux utilities to maximise your productivity. Small, indispensable tools, useful for anyone running a Linux machine.
Home ComputersHome computers became commonplace in the 1980s. Emulate home computers including the Commodore 64, Amiga, Atari ST, ZX81, Amstrad CPC, and ZX Spectrum.
Now and ThenNow and Then examines how promising open source software fared over the years. It can be a bumpy ride.
Linux at HomeLinux at Home looks at a range of home activities where Linux can play its part, making the most of our time at home, keeping active and engaged.
Linux CandyLinux Candy reveals the lighter side of Linux. Have some fun and escape from the daily drudgery.
DockerGetting Started with Docker helps you master Docker, a set of platform as a service products that delivers software in packages called containers.
Android AppsBest Free Android Apps. We showcase free Android apps that are definitely worth downloading. There's a strict eligibility criteria for inclusion in this series.
Programming BooksThese best free books accelerate your learning of every programming language. Learn a new language today!
Programming TutorialsThese free tutorials offer the perfect tonic to our free programming books series.
Stars and StripesStars and Stripes is an occasional series looking at the impact of Linux in the USA.
Share this article

Share your Thoughts

This site uses Akismet to reduce spam. Learn how your comment data is processed.