This excellent introduction to querying in SQL is based on the standard SQL92. The authors attempt to simplify the logical complexity of SQL queries by systematically evolving the SELECT-FROM-WHERE statement from the expression of the query in English. Each such expression is translated into a more formal expression in the natural language as well, and this result is further cleaned up, that is, some non-significant words are omitted. Finally, the SQL statement is constructed. Obviously, this approach is successful only for some queries. In general, it is restricting. There are many other queries where the differences between their English and SQL versions are more significant. For example, the authors do not discuss queries with NOT EXISTS simulating the universal quantifier.
The book is divided into four parts. Part 1 explains the relational data model informally and presents some basics of sound relational database design. No formal notions--such as normal forms and functional dependencies--are used here. This approach is in accordance with the goal of the book--to present the material to “mere mortals.” A short history of SQL concludes this part.
Part 2 introduces SQL basics. Queries over one table are discussed here. In Part 3, readers are forced to think in sets, which enables them to formulate SQL queries with multiple tables. Part 4 concerns summarizing and grouping data; the GROUP BY and HAVING constructs are explained here.
Each syntactic construction is accompanied by its diagrammatic equivalent. Such diagrams are frequently used in computer science. They provide a powerful and clearly arranged tool for any user of SQL. The SQL syntax used in the book is summarized in the appendices.
The book uses five comprehensible database schemes, which are also described in the appendices. An accompanying CD contains all the sample databases, in versions for Microsoft Access databases, Microsoft SQL servers, and other DBMSs. The database is also described in text files. The examples at the ends of particular chapters are also useful. They provide both problems and their solutions.
The book is pedagogically valuable. It will benefit anyone who is studying SQL independently. Instructors of SQL will also find inspiration here for their courses.