Full-fledged SQL Database
General DB is built on the SQLite database, which is a full-featured SQL implementation that supports tables, indexes, triggers, views, ACID transactions, JOINs, subqueries, and much more.
General DB enhances SQLite so that it is easier to enter data, especially when used on mobile devices. It does this by adding a few system tables that let you specify the field format of a column (referred to as a "field" in General DB). The field formats allowed are shown below. For more details on how fields are stored, click here.
- Text
- Number
- Date
- Time
- Duration
- Location
- Photo
- Barcode
- Raw
- Picker (defined by the user)
- Lookup Table (defined by the user)
This enhancement does not require any extension to be built-in, or any special library to be included with the database. The file is still a SQLite database file, so you can use it in another app, or the sqlite3 monitor, or in any other tool that works on SQLite databases.
When you create a table in General DB, the SQL CREATE statement that is executed will define each field as a BLOB data type without a default value or index and will allow NULL values. If you would like a different table definition, you can execute your own CREATE statement using the SQL Console built in to the app.
If you do not know what NULL values are used for in a database, you do not need to worry as they are optional in this app. Some people like to use them to indicate a special value for a field, or for the absence of a value in a field. General DB has options available to set and display NULL values more easily.