Additional Features
  • Disk based or in-memory databases and tables, read-only database support, temporary tables
  • Transaction support (serializable transaction isolation), 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
  • Encrypted database (AES or XTEA), SHA-256 password encryption, encryption functions, SSL
SQL Support
  • Compatibility modes for HSQLDB, MySQL and PostgreSQL
  • 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)
  • Sequence and autoincrement columns, computed columns (can be used for function based indexes)
  • ORDER BY, GROUP BY, HAVING, UNION, LIMIT, TOP
  • Collation support, Users, Roles
History

The development of this database started started in May 2004. The author of H2 is Thomas Mueller, who also wrote Hypersonic SQL. The name H2 stands for Hypersonic 2, however H2 does not share any code with Hypersonic SQL or HSQLDB. H2 is built from scratch.