tinySQL is a lightweight, 100% Java SQL engine that also includes a JDBC driver. It was featured in the book Java Database Programming.

tinySQL supports the following (from the README file):

SELECT (with joins)               joins are buggy in dBase
ALTER TABLE xx ADD coldef                  dBase only
ALTER TABLE xx DROP [COLUMN] col           dBase only
ALTER TABLE xx RENAME [COLUMN] foo TO bar  dBase only
WHERE                             only AND is supported

TinySQL now supports all JDBC-Datatypes and the ODBC-Minimum grammar is
Although tinySQL is not optimized for speed, its architecture makes it possible to build SQL interfaces to non-SQL data sources, such as .DBF files or text files.


tinySQL was greatly inspired by George Reese's
mSQL-JDBC driver - the source made it possible. Many thanks go out to those who have contributed to tinySQL - what started out as my quick hack has turned into a nice little Java database thanks to these folks:

My apologies if I have forgotten anyone - I am going on my poor memory aided by the cvs logs :-) send me mail if your name should be up there!

Mailing List

There is a tinySQL
mailing list.


We've put the source code into a CVS archive. You can get the CVS client software at
the CVS Wiki. Here are some instructions for getting the latest source code (which may very well be completely unstable).

You will need Java 2 to compile this release. You can browse the CVS archive here.

Fun Hacks

I hacked tinySQL to compile under JDK 1.1.8, and I was able to run it on my little Diamond Mako (a rebranded Psion Revo).
Here is the patch against the October 30, 2001 snapshot you need to compile it. I used the Blackdown JDK 1.1.8 on Linux to compile it. Here is the jar file, which I put in C:\System\Java\ext on my Mako. Here's a screenshot:


See the SourceForge Project Page for more details. Thanks!!!