Sunday, March 22, 2009

Review: SQL in a Nutshell, 3rd Edition

Authors: Kevin E. Kline, Daniel Kline, and Brand Hunt Format: Paperback, 591 pages Publisher: O'Reilly Media, Inc.; 3rd edition (December 2, 2008) ISBN-10: 0596518846 ISBN-13: 978-0596518844 The original edition of this book was published the better part of a decade ago and both the 1st and 2nd editions did fairly well in the reviews and on the market. What does this 3rd edition have to offer and who is it offering it to? The blurb on the back states that the "...new edition clearly documents every SQL command according to the latest ANSI standard and details how those commands are implemented in Microsoft SQL Server 2008, Oracle, 11g, MySQL 5.1, and PostgreSQL 8.3". Of course that was written by either one of the authors or the O'Reilly editorial staff, so you'd expect them to say such a thing. Assuming all this is true and you need to know the SQL commands relative to those products, then I guess you'll really want this book. As far as who this book is for, the front matter of the text targets a number of different groups including programmers looking for a quick SQL reference, developers needing to migrate from one SQL to another, and DBAs (who else?) who need to keep up with the latest and greatest. Keep in mind (and if you're familiar with the In a Nutshell series, you won't need this reminder) that this series is strictly a reference guide, not a tutorial. If you need to learn how to work with the SQL language, this isn't the first place to start. The Kline, Kline, and Hunt book is, in essence, the "wiki" for the SQL language as interpreted by O'Reilly. Chapter 1: Long, long ago, in a Galaxy far, far away...but I digress. Anyway, like so many other books on so many other technical subjects, the book starts out with a brief history lesson, but fortunately, it's mercifully brief at a mere 15 pages. Depending on your needs, you can blow past this part and go directly to your destination, whatever it may be in the world of SQL. That's the beauty of a reference; you need read only what you are looking for...but thereby hangs a small tale...finding things. Maybe it's just that you can't search a hardcopy version of a book the way you can the web, but the indexing seems to continue to struggle, or rather, cause readers to struggle. If I'm looking for something specific in a reference text, the book is more valuable to me if I can find what I'm searching for quickly. The longer I have to look, the more "value added" becomes "value subtracted". If you don't intend on reading the book cover-to-cover (and it's not written to be used that way), then you'll likely have to use a combination of scanning the index, the TOC, and the relevant chapter or chapters to find whatever bit of data you need, depending on how obscure it is. That's really the only ding I can give the book though, and the authors did update the content with the present state of the techology in mind. There's actually two reasons to update such a book. The first I've already mentioned; to keep up with changes in the SQL language. The second is, since this reference is probably used often by those who need it most, to provide a fresh book to replace the dog eared copy you now likely have sitting by your keyboard. Who shouldn't buy this book, at least not yet? I previously mentioned this too, at least in part. The book isn't for someone who doesn't have a good handle on SQL. It's not a tutorial or an all-in-one learning book. If you need something like that, and you want to see what O'Reilly provides in that arena, try Learning SQL by Alan Beaulieu. It also seems to have done quite well, and once you've become at least adequate with the SQL language, revisit this book. You'll be ready for it then.