General DB
Full-fledged SQL Database
$4.99 · Designed for iPad. Not verified for macOS.
Full-fledged SQL database on your phone!
Supports virtual tables based on CSV files!
General DB is a general-purpose database app that lets you record information quickly and easily.
Try our FREE Private DB app to get a feel for General DB before you buy.
For example, if you have a bottle collection, you could make a table with these fields: Date Acquired, Bottle Type, Bottle Origin, Shape, Notes. Then whenever you add a new bottle to your collection, you can add a row to the table describing it.
If you want to track visits to different vacation sites, you can make a table with fields for the Date Visited, Location, Description, and Attraction. As you visit the sites, you can add corresponding rows to your table.
After you add rows to your tables, they will be:
* Searchable
* Sortable
* Selectable
Many apps are too specific to a subject, but General DB is flexible enough to handle many, many needs, such as:
- Inventories
- Customer info
- Membership lists
- Tracking Logs
- Accounts
- and many more !
No database knowledge is required to use this app, but you will pick some up as you go!
For power users:
General DB allows easy data entry into a full-fledged SQLite database. To do so, it enhances it with field formats.
The field formats supported are Text, Number, Date, Time, Duration, Location, Photo, Barcode, Raw, Picker, and Lookup Table. There are convenient buttons next to some fields for easier input.
For administrators or IT manager, you can create a master database of reference information that you don't want your users to modify. This master database can be published on the internet and either the Private DB app or General DB can download and view it.
Some more powerful features:
- SQL Console for executing SQL statements
- Create virtual tables from CSV files
- Import CSV files into tables
- Preview all the lines in a file before importing it
- Execute SQL files
- Extract .zip or .gz files
- Manage your image files and create thumbnails
- Custom picker types to select values from a list
- Add your own image files from you computer
- Mark SQL statements as favorites
- See and execute past SQL statements in the History
- Easily create a SQL VIEW (subsets of fields from a table)
- JOIN 2 or more tables or views for relational capabilities
- Export selected rows from your tables to a file
- Email your files to others
- Share your database or other files
- Create databases
- And much more!
If you have any questions, or if you need your business database customized for your iPhone or iPad, feel free to contact us on our website.
more I added GeneralDB to my iPadPro and could not make it operate even though I’ve been using this app on my iPhone for years.Once I contacted Tom for a little support, I got a bunch of support; almost instantly. The problem was solved by that afternoon, and a reset of my iPad got me back into the app. +1 for support of this useful tool.
Developer Response Thanks for the kind words Paul!
I added GeneralDB to my iPadPro and could not make it operate even though I’ve been using this app on my iPhone for years.Once I contacted Tom for a little support, I got a bunch of support; almost instantly. The problem was solved by that afternoon, and a reset of my iPad got me back into the app. +1 for support of this useful tool.
Thanks for the kind words Paul!
I find this app to be perfect. Very easy to use, handy, helpful, powerful and long overdue. Wish I had found this years ago. Love it!
I find this app to be perfect. Very easy to use, handy, helpful, powerful and long overdue. Wish I had found this years ago. Love it!
I am a truck driver in the oilfield. I travel to alot of leases that are very rual with no specific address to identify their location. This database is exactly perfect for my needs. It lets me label the oil company that owns the lease and then allows me to input multiple sub-data bases under it. Example: oil company- lease name plus fields for lease number, tank size, destination, and also has an awesome GPS feature to pinpoint exactly where the lease is located with a stickpin on the map. On top of all this it sorts by several fields of user choice and has a search feature to find a sub-database in a single tap. I personally think this database app is worth way more than a mere $2.99. Thank you, an extremely satisfied customer, Peggy
I am a truck driver in the oilfield. I travel to alot of leases that are very rual with no specific address to identify their location. This database is exactly perfect for my needs. It lets me label the oil company that owns the lease and then allows me to input multiple sub-data bases under it. Example: oil company- lease name plus fields for lease number, tank size, destination, and also has an awesome GPS feature to pinpoint exactly where the lease is located with a stickpin on the map. On top of all this it sorts by several fields of user choice and has a search feature to find a sub-database in a single tap. I personally think this database app is worth way more than a mere $2.99. Thank you, an extremely satisfied customer, Peggy
New View Builder!
Create temporary views from virtual CSV tables!
User interface tweaks and new long presses.
Bug fixes and a new Show button after virtual tables or views are created to take you back to the Tables List.
6.1 1d ago
Bug fixes for 6.0.
Restored export to file button on the Rows List even when there are no rows selected.
6.0.1 Sep 4
Updated user interface and new support for creating virtual tables from CSV files!
Some uses of virtual tables:
- Scroll through the rows of a file before importing them into a database table
- Keep reference tables in their original files for easy lookup.
- Sort and search the CSV files without having to import their rows.
- And much more!
Also new:
- The Files tab is now a folder button in the bottom toolbar on the Tables List.
- The app info button is now in the top left corner of the Tables List.
- More help is available for importing or creating virtual tables by tapping the question mark button on the CSV File screen.
- Improved selection of tables and files. Tap the square checkmark button in the toolbar and then tap the items to act on.
- Display options for the Tables List can be changed via the filter button on the right of the search bar.
- When importing rows or creating virtual tables, specify field names, field formats, and where data starts by line number.
The SQLite engine has been updated to 3.53.4. Some major SQLite improvements since the last release of this app include new date and time functions, new JSON capabilities, RIGHT and FULL OUTER JOIN, and much more. Visit the SQLite website for more information.
There is a new SQL file type to distinguish from CSV files, accessible via the filter button on the Files List.
Text files are labeled CSV files now, but that still includes tab-delimited and pipe-delimited as well. UTF-16 text-encoded files are now supported, which are common on Windows computers.
Recent updates to the OS have improved the downloading of files into the app from a web browser app or Dropbox, making the built-in features in previous version of this app unnecessary. Please use the new features or the Files app to copy files into the app. Dropbox file sharing can be performed by having the Dropbox app installed and interacting with it.
6.0 Sep 2
- Regular expressions in SQL, such as:
SELECT * FROM Maintenance WHERE Description REGEXP '^Fixed'
- SQLite 3.36.0
5.12 07/01/2021
- If you open a database that has a field value that cannot be displayed as a text string, then a special string is displayed instead. This is to prevent unexpected behavior when binary data is in the field but the Raw field format is not selected.
- Bug fixes
- SQLite 3.35.5
5.11.1 05/28/2021
SQLite 3.35.4:
- Built-in math functions, such as sin() and log()
- ALTER TABLE DROP COLUMN
- Generalized UPSERT
- RETURNING clause lets you see the values after an INSERT, UPDATE, or DELETE.
NOTE: This is a major release. If you have critical databases, you must back them up using iTunes or iCloud or Dropbox before updating this app!
5.11 04/06/2021
Fix for selecting field values in Date and Time formats in iOS 13.4 and above.
5.10.1 01/15/2021
- SQLite 3.34
- The generate_series() virtual table is now built in to this app. As an example, the SQL executed below would make a virtual table of 6 rows with even values starting from 0 up to 10:
SELECT value FROM generate_series(0, 10, 2)
- Bug fix for importing large files
Note: Backing up your databases before a major software update is good practice and recommended. To backup your databases, sync your phone with iCloud or your computer, or go to the Files tab and Share your databases with another computer.
5.10 01/06/2021
- Make a table or view a Picker Table and use it as the field format of a field in another table.
- The Tables List now has a database file settings button. This lets you more easily make tables or views hidden in the currently selected database.
- See the file size of any file by tapping it in the Files List then tapping its details button.
- Picker Types are now called Pickers that are stored in the system tables.
- Bug fixes
SQLite 3.33:
- Decimal math functions
- Support for UPDATE FROM
IMPORTANT: This is a major release. If you have critical databases, you MUST back them up before updating this app. To back them up, share them with your computer or iCloud, or upload to Dropbox.
5.9 09/15/2020
- More documentation for SQL functions
- New search bar for SQL functions
- SQLite 3.32.3
- Bug fixes
Although this is a minor release, it is good practice to back up any critical databases you have before updating the software.
5.8.1 07/06/2020
Hide tables and views in the List of Tables. This helps when working with databases that have a lot of tables and views, some of which you rarely use. It can also be useful if you are distributing your databases to others, who do not need to see all the tables. To hide a table or view, go to the List of Files, tap your database file, then tap the table or view you wish to hide and tap the "Hide" button. To un-hide it, do the same thing but tap the "Show" button. To temporarily display the hidden tables and views in the List of Tables, long-press the info button in the toolbar below the List of Tables.
Make any field an expanded field, not just fields with Text format. The expanded fields will be concatenated together in the Expanded Fields Section of the Row Display. Go to the table settings of a table to select the expanded fields.
Hide the first section in the Row Display. The first section normally displays the field name and the first line of each field. If you hide it, and select some fields to be displayed in the Expanded Fields Section, all the lines of the selected fields can be displayed. This makes for easier browsing through the rows. Go to the table settings of a table to hide the first section in the Row Display.
The Expanded Fields Section now is sized better when multiple fields are expanded.
The SQL Console now has a "Functions" button that presents a window showing all the functions available in the app. Tap the function to see its description if it has one.
There is a Long-Presses section in the Help in the app info, describing the long-press shortcuts in the app.
The release date of the SQLite library used in the app is shown in the Diagnostics in the app info.
SQLite 3.32.2
Bug fixes.
NOTE: This is a major release. If you have critical databases, you MUST back them up before updating your software. To back them up, share them with your computer using AirDrop, or upload them to iCloud or Dropbox.
5.8 06/14/2020
Fix for a crash when adding a row with a Text field that has the Show Expanded style.
5.7.3 05/07/2020
- Fields with the Text field format can now have the "Show Expanded" style. This lets you see multiple lines of a field in the Row screen in an expansion section underneath the fields. Useful when navigating up and down through rows.
- Bug fix: Fields with the Number field format are shown without formatting if the accessory button is tapped.
- Bug fix: The Save button does not turn red if the field has not been changed.
5.7.2 05/05/2020
- Allow override of the number of "Fields to Show" in a table's settings.
- Allow override of the "Row Format" in table's settings.
- Number fields with the format style None can be edited in-line.
- Override format styles of Number fields with field format style of None.
- In the "Tables Display" section of the App Info, the "Show Detail Button" option was removed as it was replaced with long press.
Even though this is a minor release, it is prudent to back up your critical databases and files before updating the app. To back them up, either use Dropbox or iCloud, or sync them with your computer.
5.7.1 03/25/2020
IMPORTANT: This is a major release. If you have critical databases, you MUST back them up before updating the app. To back them up, either use Dropbox or iCloud or sync them with your computer.
- Fields with formats of Date, Time, or Number can now be styled. Change the default style for all Date, Time or Number fields in the app info screen. Override the default styles for a table or view in the table settings.
- The files within the app container can now be retrieved using SQL. Examples:
SELECT * FROM general_db_files
SELECT name FROM general_db_files WHERE size > 1024
- A Location field can now have its latitude and longitude separated by a comma.
- Choose the field storage format separately for Date and Time fields.
- Bug fixes
- SQLite 3.31.1
SQLite, starting with version 3.31, now supports "generated columns". The example SQL below can be entered into the SQL Console in this app to create a table with one field "generated" from the first two.
CREATE TABLE t1 (
a INTEGER PRIMARY KEY,
b INT,
c INT GENERATED ALWAYS AS (a * b) STORED
);
Then when adding rows to the "t1" table, you would enter the "a" and "b" fields and the "c" field would be automatically computed and stored.
The "c" field is ignored in this app when adding or updating rows in the Add Row Console.
Names are also notoriously difficult to search on. Some people go by one name only, and it is not always clear if it is a first name or last name.
Some cultures do not have the concept of first or last names.
To simplify searching by name you can add a generated column that concatenates the first and last names.
CREATE TABLE artist (
first_name TEXT,
last_name TEXT,
name TEXT GENERATED ALWAYS AS (first_name || ' ' || last_name)
);
INSERT INTO artist (first_name, last_name) VALUES
('Keith', 'Urban'),
('Prince', ''),
('Yoko', 'Ono');
5.7 02/20/2020
- Fix for importing text files with Chinese Unicode characters.
5.6.6 11/03/2019
- Improved built-in web browser for downloading files from the web
- Fixes for dark mode in iOS 13
5.6.5 10/18/2019
- Corrected the colors for the Rows Shown label.
- Corrected the dark mode colors in the status view when importing.
- SQLite 3.30.1
5.6.4 10/11/2019
- Support for dark mode in iOS 13
- Improved Help in the app
- Long-press a table to go straight to its settings
- SQLite 3.30
5.6.3 10/10/2019
- Choose the file where SQL is saved to.
- Long press the lightning button to skip the SQL History and go straight to the SQL Console
- Bug fix for importing files
5.6.2 08/23/2019
IMPORTANT: Even though this is a minor release, it is good practice to back up your database files before installing an update, especially if they are critical. To back them up, upload them to Dropbox or iCloud, or share them to your computer using iTunes or AirDrop.
- In the SQL Console, favorites are now merged with the history, similar to the SQL History in the macOS version. To make a SQL command a favorite, tap the star adjacent to it. To only show SQL favorites, tap the star button to the left of the search bar.
- Execute multiple SQL statements in the SQL console. Separate them with semicolons.
- For Location field formats, the previous span of the map view is remembered.
- Bug fixes
5.6.1 07/17/2019
IMPORTANT: This is a major release. If you have critical databases, you MUST back them up before installing this update. To back them up, upload them to Dropbox or iCloud, or share them to your computer using iTunes or AirDrop.
Easier to Create SQL Views:
After executing a SQL query that returns results in the SQL screen, you can now create a SQL view from those results. You can also change the field formats of the fields when creating a view. This is a very powerful feature yet very lightweight, as it does not add any rows to the database, but lets you rearrange fields, select only a few rows, or reorder the rows.
Raw Field Format:
The new "Raw" field format lets you see the actual bytes in hexadecimal that are stored in a field in a row in the database. This is useful if you are having any issues with your data, or are storing binary large objects (BLOBs). They are only displayed and cannot be edited. To change their value use the UPDATE statement in SQL.
Dates and Times:
When a field with the Date or Time format is stored in General DB, by default it includes the time zone in +/-HHMM format at the end. Now you can omit that if you know you will always be in the same time zone (without Daylight Savings Time), or if you want to use UTC time. The original format is recommended however, as omitting the time zone causes ambiguity in dates and times.
There are some new built-in functions for converting fields in the Date and Time format of General DB to that which can be used by SQLite date and time functions. The following SQL statements can be executed in the SQL screen in General DB to see how they work:
SELECT utc2date('2020-01-01');
SELECT utc2time('2020-01-01 13:05:30');
SELECT date2utc('2020-01-01 -0400');
SELECT time2utc('2020-01-01 13:05:30 -0400');
Other Changes:
- Number of rows loaded for a Lookup Table can be increased in the app options. Only do this if you need to and have a fast device with a lot of memory.
- Specialized field views are available even if the table or view is read-only.
- SQLite 3.28
- Bug fixes
5.6 06/20/2019
Include the + button so fields can be added in a new table.
5.5.1 06/03/2019
IMPORTANT: As this is a major release, it is imperative to back up your critical databases before updating! To back up your databases, either use iTunes or AirDrop to share your databases to your computer, or upload your databases to Dropbox.
Major Changes for the iPad User Interface:
The app's user interface on the iPad has been changed to more closely resemble that of the iPhone. This is not just to make them more consistent, but also to allow the larger iPhones to format fields horizontally in a row (set the "Row Format" option to "Horizontal"). When this app was first developed almost 10 years ago, the iPhone was 3.5" in size and the iPad was 9.7". Now some of the newer iPhones are much closer in size to th e iPad, so the change was necessary. Also, some of the views were changed to better use the larger screen-size of the iPad.
Lookup Tables:
A table or view can be designated as "Lookup" in its settings. Then it can be used as a data type of a field in other tables. The lookup table should normally have 2 fields. The first field is used as the key, and the second as the value. Selecting a lookup table field stores the key in the database, but displays the value in the Row screen and List of Rows screen. If a lookup table has only 1 field, then the ROWID will be used as the key.
Other Changes:
- The SQL Console is now accessible by tapping the lightning bolt button in the toolbar of the Tables and Files screen. It was previously in the app info or in the search bar area after selecting a table.
- The Clear button and Cancel button are now adjacent to the Done button when entering data for a field. For Date, Time and Duration data types, this has moved the Done button slightly to the right, but has made it more convenient to cancel or clear.
- A view no longer has to include the ROWID field. However, a view must be sorted on a unique key for all of its rows to be scrolled through, and it must be designated as such in its settings. If it is not designated as "Sorted on Unique Key", then scrolling through it is limited to the first 1,000 rows.
- The lightning bolt button in the SQL Results screen now prompts to create a view with the executed query. After you create a view, you can select it from the Tables list to see its rows. You can also change the format data type of the view's fields to display the data in a more readable format.
- The SQL Results screen now shows up to 1,000 rows
- Bug fixes
- SQLite 3.27.2
5.5 05/25/2019
IMPORTANT: As this is a major release, it is imperative to back up your critical databases before updating! To back up your databases, either use iTunes or AirDrop to share your databases to your computer, or upload your databases to Dropbox.
- In the Row view on the iPhone, the + button that was at the top right is now the "Add" button near the bottom of the screen. This allows you to more easily duplicate rows by selecting another row, then pressing the "Add" button to add it again. There is also a "Clear" button to more easily reset all the fields to the empty text string.
- The Row view now shows the ROWID of a row that has just been added to a table. It does not show the row number unless the row has been selected from the list of rows because a the rows may be sorted or filtered.
- Search more than one field. Note that if you search on fields that do not have indexes, and there are many, many rows, it can take a long time to return results.
- Import a text file from the Files app without copying the file (requires iOS 11 or above).
- Extract a compressed file in the Files app without copying the file (requires iOS 11 or above).
- Copy a database file or image file from the Files app (requires iOS 11 or above).
- Allows reserved words to be used for table names and fields. Note, it is usually a bad idea to use reserved words, such as "SELECT" or "FROM" as your table or field names. Here is a difficult to comprehend SELECT SQL query example that searches for the value 'Here" from a table named "From" with a field named "Where":
SELECT * FROM "From" WHERE "Where" = 'Here'
- Queries in the SQL Console no longer have to start with "SELECT" to show row results. You can prepend a WITH clause before a SELECT statement and view row results.
- Allows database file extensions of .db3 and .sqlite3
- SQLite 3.27.1
- Bug fixes
5.3 02/16/2019
New View Builder!
Create temporary views from virtual CSV tables!
User interface tweaks and new long presses.
Bug fixes and a new Show button after virtual tables or views are created to take you back to the Tables List.
more Version 6.1 1d ago
Data Not Collected The developer does not collect any data from this app.