Channels ▼

Mike Riley

Dr. Dobb's Bloggers

Using SQLite Book Review

October 21, 2010

SQLite has the makings of the story of the little engine that could. Developed as a lightweight, limited alternative to traditionally designed DBMS's like SQL Server, MySQL and Oracle, SQLite has become one of the most popular databases of mobile phones, prototype web development and even small departmental data-driven applications. How does this book fair on helping developers get the most out of this remarkable database technology? Read on to find out.Written primarily for those being initiated into database theory and the Structured Query Language (SQL), Using SQLite contains ten chapters and seven appendixes (of which consume nearly have the number of pages in the book) intended to take readers from learning the basics to more advanced topics like virtual tables, R*Trees and SQLite extensions.

The book begins with an introduction to SQLite, its place and popular uses in today's database-driven world (along with database scenarios when to use and not to use SQLite), followed by a chapter on compiling from source and installing SQLite on a variety of platforms. Chapter 4 is the obligatory crash course chapter on SQL as it pertains to SQLite's implementation, followed by a chapter on the most prevalent SQL command most SQLite programmers will call upon - the SELECT statement. Chapter 6 is dedicated to database design, a subject that has been written about extensively many other in other books. The C programming interface and SQLite's APIs are reviewed in the next chapter, followed by a chapter capturing miscellaneous topics such as full-text search, scripting language (PHP, Python, Perl, etc.) examples, mobile device considerations (memory and storage limitations, etc.). The only mobile device given the spotlight (six paragraphs) is the iPhone; no mention of Android, which is too bad considering that Apple would prefer developers use Core Data instead of SQLite for their iPhone application data stores. Android, on the other hand, uses SQLite as its primary application data store, such that anyone who has developed an Android database-driven application has built it using SQLite.

Chapter 9 covers SQL Functions like Scalars, Aggregate and Collation functions, as well as SQLite extensions (designing, building and loading). The last chapter on virtual tables and modules covers the module API with two examples. Appendixes cover SQLite build options, a 40+ page command reference, and an Expression, Function and PRAGMA reference. The last appendix covers the SQLite C API reference.

Besides the lack of Android coverage, I was also disappointed that there weren't more examples of code scenarios on the various platforms that SQLite has received so much attention. How can I manipulate the system-level aspects of its data store in Mozilla's Firefox or HTML5 Web SQL databases? How can I easily sync data between a desktop SQLite database and one on a mobile device? How does Rails' ActiveRecord or Django's ORM work with SQLite, and what should I avoid when using SQLite with those web frameworks? Such questions are unfortunately not considered in the book.

While a bit on the pricey side, especially for a book on a technology that is supposed to reduce cost and complexity, the depth of detail, the broad coverage of SQLite use cases and the copious amount of database theory in various scenarios does help justify the cover price to a certain degree. Nevertheless, Using SQLite will best serve any developer interested in an expansive introduction to SQLite. Those individuals already familiar with the basics of SQLite and want to take their proficiency to a higher level will find the book to be an adequate investment.

Title: Using SQLite Author: Jay A. Kreibich Publisher: O'Reilly Media ISBN: 978-0-596-52118-9 Pages: 528 Price: $49.99

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.