Open source lightweight 100% Java SQL database engine
HSQLDB offers a small (less than 100k in one version for applets), fast database engine which offers both in-memory and disk-based tables and supports embedded and server modes.
Additionally, HSQLDB includes tools such as a minimal web server, in-memory query and management tools (can be run as applets) and a number of demonstration examples.
The HSQLDB product is currently being used as a persistence engine and database in many Open Source Software projects and even in commercial projects and products. In its current version HSQLDB is extremely reliable and stable.
HSQLDB is best known for its small size, ability to execute completely in memory, its flexibility and speed.
- 100% Java
- Support JDK 1.1.x, 1.2.x, 1.3.x, 1.4.x, 1.5.x, 1.6.x
- Extensive JDBC interface support with batch statement and scrollable ResultSet functionality
- Full JDBC DatabaseMetaData and ResultSetMetaData support
- Java stored procedures and functions
- Full support for PreparedStatement objects to speed up query processing
- Relational Database Management System, with the object capabilities of Java
- Very extensive support for SQL:2003 Standard syntax, including most optional features
- Supports all base data types of the SQL Standard, including BINARY, BIT, BOOLEAN, date-time, INTERVAL, BLOB, CLOB
- Supports user-defined DOMAIN types, including type constraints
- Fast SELECT, INSERT, DELETE, UPDATE and MERGE operations
- INNER, LEFT OUTER, RIGHT OUTER and FULL joins
- UNION, EXCEPT, INTERSECT, including use of parentheses, limits and offsets
- Scalar (single value) SELECTS, row and correlated subqueries including IN, EXISTS, ANY, ALL
- Views, Temp tables and sequences
- Primary key, unique and check constraints on single or multiple columns
- Referential Integrity (foreign keys) on multiple columns with full cascading options (delete, update, set null, set default)
- ORDER BY, GROUP BY and HAVING
- COUNT, SUM, MIN, MAX, AVG and statistical aggregate functions
- Full support for SQL expressions such as CASE .. WHEN .. ELSE .. , NULLIF etc.
- SQL standard autoincrement column support plus sequences
- Transaction COMMIT, ROLLBACK and SAVEPOINT support
- Multiple schemata per database
- Triggers, implemented as Java classes, or as SQL statements
- Database security with passwords, user rights and roles with GRANT and REVOKE
- Extensive set of ALTER TABLE commands, including change of table column type
- In-memory tables for fastest operation
- Disk based tables for large data sets
- Text tables with external file data sources such as CSV files
- Disk tables (CACHED TABLE) up to 8GB and text tables up to 2GB each
- Size of each string or binary item only limited by memory
- Database dump as SQL script with or without data
- Embedded (into Java applications) and Client-Server operating modes
- Three client server protocols: HSQL, HTTP and HSQL-BER - can run as an HTTP web server - all with SSL option
- Can be used in applets, read-only media (CD), inside jars, webstart and embedded applications
- Multiple databases per JVM
- Powerful and compact java command line and GUI tools for database management
- Transfer tool for conversion of databases to / from other popular database management systems
In a hurry? Add it to your Download Basket!
What's New in version 2.2.0
- SQL FUNCTIONS
- A wide set of SQL Standard functions, including correct type handling and application to all supported types (e.g. BINARY, BLOB, CLOB), is now supported.
- SUBSTRING for character (CHAR, VARCHAR, CLOB) and binary (BINARY, VARBINARY, BLOB) types.