We expect that you're a programmer coding for (or about to begin coding for) an SQL DBMS. Because of this, we won't be explaining basic SQL syntax or programming techniques. Our assumption is that you already know basic SQL syntax, how to program with an SQL Application Programming Interface (API) such as ODBC or JDBC, how to write stored procedures, are familiar with how indexes operate , and so on. We also expect that you're familiar with SQL terms as used in introductory SQL texts . For example, suppose we illustrate a SELECT statement like this:
SELECT <select list> WHERE <search conditions> FROM <Table list> GROUP BY <grouping columns> HAVING <conditions> ORDER BY <sorting columns>
We assume you've already seen terms like "select list" and "search condition" and "grouping column," and we won't repeat their well-known definitions. At most, we'll just provide a brief refresher for common SQL syntax and concepts.
Some further terms are not so well known, but are important for understanding this book. We will define such terms the first time we use them. If you miss such a definition, you can look it up in the glossary in Appendix B.
We use a particular style in our examples. SQL keywords are always in uppercase (e.g., SELECT). Table and other major SQL object names are initial capitalized (e.g., Table1 , Index1 ); column names are in lowercase (e.g., column1 ). When it is necessary to use more than one line, each line will begin with a clause-leader keyword.
We deliberately avoid "real-world" names like Employees or cust_id because we believe that meaningful names would distract from the universality of the example. Sometimes, though, when illustrating a particular characteristic, we will use a name that hints at the item's nature. For example:
SELECT column1, column2 FROM Table1 WHERE indexed_column = <literal>
This book doesn't contain many SQL syntax diagrams, but here's a very brief refresher on the common variant of Backus-Naur Form (BNF) notation that we've used: