SQL database engine written in Java
JDBC and ODBC APIs are supported. Embedded and server modes are available. A Web console application is included. Clustering is supported. Here are some key features of "H2 Database Engine":
· Fast database engine
· Free, source code is included
· Supports standard SQL
· Written in Java
· Disk based or in-memory databases
· Browser base Console application
· JDBC API
· Limited ODBC support
· Embedded and client/server (network) mode
· High availablility support (clustering / failover)
· Wide range of data types including large objects (BLOB/CLOB)
· Strong security features (SSL, users, roles, encrypted files)
· Multiple connections, table level locking
· Cost based optimizer, using a genetic algorithm for complex queries
· Transaction support (serializable transaction isolation)
· Zero-administration, automatic recovery
· Large resultset, external sorting
· Scrollable and updatable resultset support
· Read only views and inline views
· Inner and outer joins, subqueries
· Many functions already built-in
· Triggers and Java functions / stored procedures
· Referential integrity / foreign key constraints with cascade, check constraints
· Multiple schema support
· Compatibility modes for HSQLDB, MySQL and PostgreSQL
· Sequence and autoincrement columns
· Well tested (high code coverage, randomized stress tests)
· Small footprint (smaller than 1 MB)
· Uses a small number of database files
· Can be compiled to native code using GCJ
· Primary keys, multiple index types (b-tree, linear hash, tree, hash)
· ORDER BY, GROUP BY, HAVING, UNION, LIMIT
· Information Schema
· Multiple connections
· Collation support
· EXPLAIN PLAN support
· The database can generate SQL script files
· Support for linked tables, and a built-in virtual 'range' table
· Automatic re-compilation of prepared statements
· Sophisticated trace options
· Low memory requirements
· Easy to understand exception messages
· Standard handling of NULL values
· Multilanguage console application (at this time, English and German)
What's New in This Release: [ read full changelog ]
· Issue 323: NullPointerException when using IN(...) with a function table.
· Clob.toString() and Blob.toString() now include the trace identifier.
· The SQL parser silently ignored characters such as '^' or '\'. Now a syntax error is thrown.
· ROUND(..) now also works with just one parameter.
· Access to system tables is now more restrictive for non-admin users (the tables can be still listed, but some of the data is not included).
· BLOB: InputStream.skip is now more efficient in embedded mode.
· The default expression of a column may no longer reference the table, because a database with such a table couldn't be opened normally.
· Referenced objects in check constraints could be dropped, which resulted in a database that can't be opened normally.
· Improved Oracle compatibility for NVL2. Thanks again to litailang for the patch.
· CSVREAD now supports the option 'preserveWhitespace'.
· Recursive queries with many rows could throw an IndexOutOfBoundsException.
· The auto-server mode can't b...