SQL

HSQLDB – Java database

Hyper Structured Query Language Database (HSQLDB) is an SQL relational database management system written in Java. It has a JDBC driver conforming to ANSI SQL:2008 and supports a rich subset of SQL-92 (BNF tree format) plus SQL:1999 and SQL:2003 enhancements. It is a small, fast, multithreaded engine and server with in-memory and disk based tables, LOBs, transaction isolation, encryption and ACID.

HSQLDB offers a small, fast database engine that offers both in-memory and disk-based tables.

There are embedded and server modes available. Additionally, this package 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.

HSQLDB is used as a database and persistence engine in many open source software projects, such as OpenOffice.org, Kurlo, JBoss, Spring Framework as well as in commercial products, such as Mathematica and Hedgehog.

Key Features

JAVA

  • 100% Java.
  • Support JDK 1.1.x, 1.2.x, 1.3.x, 1.4.x.
  • Extensive JDBC interface support with batch statement and scrollable ResultSet functionality.
  • Updatable, insertable ResultSet functionality.
  • Full JDBC DatabaseMetaData and ResultSetMetaData support.
  • Java stored procedures and functions.
  • Full support for PreparedStatement objects to speed up query processing.

SQL

  • Relational Database Management System, which can store Serializable Java objects.
  • Very extensive support for SQL:2008 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.
  • NATURAL, USING and UNION joins.
  • UNION, EXCEPT, INTERSECT, including use of parentheses, limits and offsets, ALL, DISTINCT and CORRESPONDING keywords.
  • Scalar (single value) SELECTS, row and correlated subqueries including IN, EXISTS, ANY, ALL
  • Views, Temp tables and sequences.
  • Updatable views.
  • 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.
  • SQL stored procedures and functions.

Persistence

  • 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 16GB and text tables up to 2GB each.
  • CLOB and BLOB storage up to 16 TB.
  • Size of each string or binary item only limited by memory.
  • Database dump as SQL script with or without data.

Deployment

  • 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.
  • ODBC support.

Utilities

  • 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.

Website: hsqldb.org
Support: FAQ
Developer: The hsql Development Group
License: BSD License

HSQLDB is written in Java. Learn Java with our recommended free books and free tutorials.


Related Software

Relational Databases
MariaDBSeeks high compatibility with MySQL, ensuring drop-in replacement capability
PostgreSQLAward winning Object-relational database management system
MySQLMultithreaded, multi-user SQL database management system
SQLiteEmbeddable SQL Database Engine
rqliteDistributed database built on SQLite
MonetDBHigh performance relational database system for analytics
FirebirdRelational database offering many ANSI SQL features
H2Relational database management system written in Java
HSQLDBJDBC interface, client-server version, query tool, grid and more
CUBRIDDatabase engine with built-in enterprise grade features
VirtuosoData Management with Web Application Server and Web Services Platform
Apache DerbyFull-featured relational database implemented entirely in Java

Read our verdict in the software roundup.


Best Free and Open Source Software 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.

Know a useful open source Linux program that we haven’t covered yet? Let us know by completing this form.
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments