||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: SQL, SQL2003, RDBMS, databases, database query
Title: SQL In A Nutshell
Author: Kevin Kline, with Daniel Kline and Brand Hunt
Verdict: An excellent reference for SQL
While SQL is a language with clear definitions and an international standard (SQL2003 is an ANSI standard), in practice different vendors implement different subsets of the standard and syntax varies across database products. Add to this the intricacies of datatypes, functions and constants and it's easy to understand why SQL can sometimes be such a complex beastie to master, particularly for those developers who have to code to different database products. In this kind of environment 'SQL In A Nutshell', now into a second edition, can be a life-saver.
As well as being a complete language reference for SQL2003, the book majors on being a guide to actual implementations. Five major database platforms are covered: DB2, Oracle, SQL Server, MySQL and PostreSQL, with some additional cover of Sybase, (which shares a common history with SQL Server), in an appendix. This means that for every SQL statement there is coverage both of the official definition and the details of the actual implementations, complete with any differences or extensions in each of the five platforms. Along with this there are programming tips and gotchas, thus providing a complete and useful reference for every SQL statement. While the SQL statement command reference makes up the core of the book it's not the whole story.
In addition to statements SQL defines a number of functions, (such as sum, count, average etc). Again there is a complete reference for these functions as well as the variations included in each of the dialects of SQL implemented in the five platforms. Coverage is included of platform-specific extensions to the standard list of functions, some of which include regular expressions, XML support and a whole lot more.
Aside from these two reference sections, the book includes a section of the history and background of SQL, a very useful section on core concepts, and a chapter on database programming. This last looks at two of the most common database programming APIs - ADO.NET and JDBC. While the book does not include a full tutorial, the chapter provides a good introduction and some sample code (C# and Java respectively). It's nice to have, but to be honest the real value of this book lies in the reference chapters rather than this very high-level introduction to database programming.
Note that this book does not function as a tutorial, it's primarily a comprehensive a useful reference work. Anyone looking for a tutorial would be well-advised to seek out something online (such as our own TechBookReport SQL tutorial), or else go for a book such as the excellent 'SQL In 10 Minutes').
To conclude, this is an excellent single point of reference for SQL, both for the standard definitions and for the language as she is spoke in the real-world.