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.

Features include:

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.

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.