- Amazon Student members save an additional 10% on Textbooks with promo code TEXTBOOK10. Enter code TEXTBOOK10 at checkout. Here's how (restrictions apply)
The Definitive Guide to SQLite Hardcover – May 24 2006
Special Offers and Product Promotions
No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
To get the free app, enter your e-mail address or mobile phone number.
About the Author
Mike Owens is the information technology director for a major real estate firm in Fort Worth, Texas, where he's charged with the development and management of the company's core systems. His prior experience includes time spent at Oak Ridge National Laboratory as a process design engineer, and at Nova Information Systems as a C++ programmer. He is the original creator of Pysqlite, the Python extension for SQLite. Mike earned his bachelor's degree in chemical engineering from the University of Tennessee in Knoxville.
Inside This Book(Learn More)
Most Helpful Customer Reviews on Amazon.com (beta)
I run away from most books with "Definitive" in the title, especially when they aren't heavy enough to break toes if I drop them on my foot. However, the author doesn't waste any space or get distracted with long explanations. In the 440 pages, he effectively covers all of SQLite, including its various language bindings and APIs. Although he created the initial Python bindings, Perl gets the most coverage (if you don't count the third of the book that talks about the C API for completely embedding SQLite into your own programs).
The front of the book covers basic database concepts. At times the subject matter gets a bit complicated, but the author has a clear style and easily explains the tough subjects. Without his command of the topic (as you'll find lacking with many database books), the explanations could have spun wildly out of control, taking the author for a ride. There's no question who's in charge here, though.
I've been using SQLite for a couple years and regularly delve into its documentation, and even I learned several things from this book. The handy SQL reference will keep me from waiting for websites to load, and I expect to have this book close at hand when I'm working with SQLite. It's one of the best database books I've encountered in a long time.
If you need a book on SQLite, The Definitive Guide to SQLite is the only one you should even consider.
I bet if you buy 1000 technical books in your life this will be the only one with an index that isn't alphabetical. Do your self a favor and buy the other 999 and skip this one.
Here's a suggestion for the next version:
ORDER BY KEYWORD ASC;
The answer thankfully, is not very much. As the author goes to great pains to reinforce many times, SQL as a logical Data Manipulation Language is specified as being completely divorced from the underlying implementation. While all SQL DBs have their own annoying extensions, incompatibilities and divergences from the standard, the underlying syntax and form of SQL is mostly constant. You may, in the course of reading this book, come under the impression you're actually reading two separate publications, with their chapters collated together and coarsely interleaved in the same binding. One is broadly about SQL and RDBMS's, the other is actually about SQLite. As it turns out, there isn't much specific to the topic of SQLite that really demands so much coverage, so with the declared intention of being "definitive", the author has written something of a ground up tutorial/reference that aims to introduce both SQL and SQLite to audiences thoroughly unfamiliar with either. Passing over the table of contents in the front of the book I found myself raising an eyebrow as I realized how narrow of a demographic this book aims to cater to; that is, programmers who know nothing of SQL or relational DB theory and yet feel compelled and ready to embed an RDBMS library into their applications. I happened to be one of these people, but I question the usefulness of much of this book to someone already familiar with SQL.
Chapters 1 and 2 are boilerplate for introducing and setting up SQLite. Chapter 3 is an interesting but non-particular explanation of the Relational model. Chapter 4 is the centerpiece of the book and is a thorough introduction to SQL; while SQLite obviously is chosen as the reference implementation here, apart from the usual nuances this should not be at all unfamiliar to users of other relational DB's.
It isn't until chapter 5 that the book veers into territory solidly in the realm of SQLite. Chapters 5,6,7 and 8 all concern programming language interfaces to SQLite, however there's questionable utility to some of this. Chapter 5 "Design Concepts" redundantly presents the general structure of the API in pseudocode in advance of chapter 6 doing it all over again with the actual C function calls. 7 is the extension API, then chapter 8 continues over to the interfaces to higher level scripting and RAD languages. The repetition in this chapter is somewhat disquieting as unsurprisingly the general process of using SQLite is unchanged regardless of modules or the API in use, and in most languages there are reasonable standard generic DB interfaces to be used and there turns out not to be anything necessarily special about working with SQLite. Nonetheless, it's all there for reference and I found the examples in the Perl section useful while working on a project. The book ends with an overview of the internals of SQLite's compiler and VM backend. It's suggested in the chapter that an understanding of the engine may be of use to an application developer in reasoning about the workings of his or her queries, but I generally suspect that the point at which someone would need to concern themselves with the workings of the internal VM is the point at which they've either reached the performance limitations of their machine or the library, or else they've missed the forest for the trees and need to review the logical organization of their query. The remaining 60 or so pages are all reference appendices.
For programmers already familiar with SQL, most of what you should find of worth here is the API reference. Listings of function calls don't necessarily validate these chapters but the in-depth explanations of locking issues and race conditions do make these parts of the book worth the read versus just looking up the on-line documentation. Despite the criticisms earlier, if you actually fall within the boundaries of whom this book would provide instruction of unfamiliar topics to and need the long explanation of SQL given here, this is a good book for the topics it covers. The general SQL chapters are interesting and highly educational and well written, the SQLite chapters are good reference tutorials, but note that this book aims to be exhaustive and potentially retreads material that will likely already be known to advanced users.
If you are using MySQL or Postgres and don't need a distributed DBM, you need to look hard at SQLite. If you are using SQLite, you need this book.
I would recommend this book to anyone wanting to develop database enabled applications or light to medium traffic websites. I would also highly recommend it to anyone who wants to learn more about SQL or database theory in general.
Probably the most important thing I learned from this book is that 80% of us with databasing needs simply don't need to wrestle with a SQL server anymore.
Look for similar items by category
- Books > Computers & Technology > Databases
- Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Software Development
- Books > Computers & Technology > Software > Databases
- Books > Computers & Technology > Web Development > Programming > SQL
- Books > Qualifying Textbooks - Fall 2007 > Computers & Internet
- Books > Textbooks > Computer Science & Information Systems > Computer Science
- Books > Textbooks > Computer Science & Information Systems > Database Storage & Design
- Books > Textbooks > Computer Science & Information Systems > Software Design & Engineering