Fork me on GitHub
trueDAT screen shot


Developer tools should be sexy.

trueDAT is a MySQL database GUI designed to be lightweight, easy to use, extremely handy, and just plain good looking.

Not a full-fledged database administration tool, but rather meant for work with a single database powering a single application.

Expand the joy of working with databases.

Key Features:

(Mouseover images to make 'em bigger)

Install as a single <100KB PHP file

Seriously, trueDAT4.php is all you need. Images, CSS, and JavaScript can all be pulled from somewhere else: either the public stash hosted here at, or at a URL of your own.

Configure in under a minute

Database connection parameters and how you would like to trueDAT to authenticate users are pretty much it. trueDAT will even detect connection parameters from config files of popular software like WordPress and Drupal if you tell it to. The install process generates a file called trueDAT4Config.php, making the total install footprint just 2 files.

Authenticate your way

The sort of database access afforded by trueDAT is of course super sensitive, so security is key. Set a username/password combo, make access conditional on the value of some session variable (great for integrating with the authentication scheme of a host application), or have trueDAT reach out to some other system (via HTTP POST) for authentication based on provided credentials.

Common and useful queries just a click away.

Pick a table from the drop down, and hit a button like "Schema", "All" or "Top".

Click to edit record fields

When trueDAT detects your rows have a primary key in the first column, Edit mode become available. In Edit mode you can click on a cell and edit the field directly in a pop up window. Bits can be flipped with a single click.

Click to delete records

While in edit mode, clicking on the primary key value enables you to delete the record.

Click to add records

Click "Add New" and a new row of inputs appears: type in values and hit "Add Record". Sure beats typing an INSERT statement.

Click to sort by any column

trueDAT will detect numbers, booleans, and dates and interpret them accordingly for sorting purposes. All done in-browser, no need to hit the server again.

Persistently hide columns that just aren't important

SELECT * is a great shortcut, but sometimes it makes for really wide, hard-to-review tables. Get the best of both worlds by telling trueDAT which columns you want to suppress display of.

Inline Suggest as You Type

As you type, trueDAT will inline-suggest matching table and column names which are in the database. Remembering between first_name and firstName just got less important. The related config setting allows you to tone it down if you prefer (e.g. table names only, or disable altogether).

Export data as CSV

Any SQL query that returns records can be output as a CSV file and downloaded for use elsewhere. Great for passing off data requested by less tech-savvy folks.

Cheat Sheet Queries

Can't be bothered to remember the exact syntax for certain operations? Neither can I. Load up an example query from the cheat sheet and be on your way.

SQL beautification

With the click of a button, make your SQL pretty. Great for pasting in queries from elsewhere to make them more legible.

Save favorite queries for use later

Large, elaborate queries often serve as handy reports or useful operations, both useful again and again. Craft 'em once, and save 'em for later.

Find literal values in any table/column

Super useful when trying to navigate an unfamiliar database. Will also generate find-and-replace queries.

CSV-based generated queries

Generate and execute queries parameterized by CSV input data, one query per row.

Transfer data in and out with just a few clicks

Sidestep the need for shell access with a quick-and-dirty way of porting data from one database to another of matching table structure.

Still in Progress:

Foreign key surfing

Double-click on a cell that trueDAT knows to be a foreign key into another table, and trueDAT will load that corresponding record for you instantly. Presently the lookup of foreign keys takes up to a minute, and doesn't get them in all cases, so this feature is disabled by default. Enable it by editing your generated trueDAT4Config.php file, the option enableForeignKeySurfing.

Other database support

trueDAT currently supports MySQL, but the architecture is near ready for connecting with MSSQL and PostgreSQL. (Though to be fair I don't actually know that anyone would care about a PHP interface for MSSQL!)

About trueDAT:

JPL Consulting John Larson

John Larson here.

trueDAT has been my home brew tool of choice for doing my database work for a good, long while now. I wrote trueDAT2 in 2005, trueDAT3 in 2008, and just finished trueDAT4 here in 2012. I figured it might make the world a slightly better place to share the darn thing already. You can learn more about me and my projects at JPL Consulting and my blog, Programmer for Hire.

Playground Creative

The pretty pixels for trueDAT were lovingly crafted by Lee Robinson, one of my peeps from Playground Creative. She didn't know it at the time, but when she was designing this she was creating a zen garden of a workplace for me that I would be enjoying almost daily for over three years and counting.

These guys are a developer's best friend for making web apps look GOOD.

Coffeewalk Studios

A big shout out and acknowlegement to Charles Guthrie, the creator of the original trueDAT back in 2003 in Classic ASP. You gave this thing a catchy name, Charles, thanks for letting me run with it.


trueDAT's frontend sexiness was built with MooTools. My heartfelt thanks to who I consider to be the real studs of MooTools, whose brilliance and contributions have enabled me to grow so much in my web programming prowess. Aaron Newton especially with his fantastic Mootorial, as well as Valario Proietti, Harald Kirschner, David Walsh, and many others. I don't know any of 'em personally, but have learned a ton by trolling their blogs, absorbing their teachings, and employing their code.

They are my heroes in this craft that we share.

Usage Tips:

It is my sincere hope that trueDAT is super intuitive and requires no explanation, but there are a few little nuggets built into the interface which you would only know by trolling through the code:


John Larson

Would love to hear any feedback you have in your use of trueDAT, just drop me a line at

JPL Consulting blog, Programmer for Hire

To read my riff about a little more about the history of trueDAT, the decision to open source it, and open sourcing in general, go check out the blog post here and join the conversation by leaving a comment.

JPL Consulting

If you have any issues or bugs to report, please add them to the GitHub issues page. I can't promise regular support, but since this is a tool I'll be using all the time myself, your catches will probably be quite helpful.

John Larson