| |
| |
Foreword | |
| |
| |
Preface | |
| |
| |
| |
Introducing SQL | |
| |
| |
Kinds of Database Systems | |
| |
| |
Relational Concepts | |
| |
| |
Tables, Rows, and Columns | |
| |
| |
Keys | |
| |
| |
An Example Table | |
| |
| |
The Visual Approach | |
| |
| |
| |
Elements of the Language | |
| |
| |
Ways to Use SQL | |
| |
| |
Versions of SQL | |
| |
| |
Defining the Language | |
| |
| |
Data Types | |
| |
| |
The Structure of SQL Statements | |
| |
| |
Keywords | |
| |
| |
An Example Database | |
| |
| |
Organization of the Examples | |
| |
| |
| |
Retrieving Data from a Table: The SELECT Statement | |
| |
| |
Selecting Specific Columns in a Table | |
| |
| |
Selecting All Columns in a Table | |
| |
| |
Selecting Only Some of a Table's Records: The WHERE Clause | |
| |
| |
Comparisons in a WHERE Clause | |
| |
| |
Combining Predicates in a WHERE Clause | |
| |
| |
Using AND | |
| |
| |
Using OR | |
| |
| |
Using NOT | |
| |
| |
Other Uses of WHERE | |
| |
| |
BETWEEN and NOT BETWEEN | |
| |
| |
LIKE and NOT LIKE | |
| |
| |
IN and NOT IN | |
| |
| |
IS NULL and IS NOT NULL | |
| |
| |
| |
More on SELECT | |
| |
| |
Ordering Selected Data | |
| |
| |
Doing Arithmetic with Selected Information | |
| |
| |
Using Aggregates | |
| |
| |
Finding Maximum and Minimum Values | |
| |
| |
Totaling Columns | |
| |
| |
Finding Averages | |
| |
| |
Counting Records | |
| |
| |
Using DISTINCT | |
| |
| |
Grouping Selected Data | |
| |
| |
More on Grouping: The HAVING Clause | |
| |
| |
| |
Retrieving Data from Several Tables: Joins | |
| |
| |
Qualified Names | |
| |
| |
What Is a Join? | |
| |
| |
Restricting the Results of a Join | |
| |
| |
Query Diagrams for Joins | |
| |
| |
Joining Tables Using the Join Operator | |
| |
| |
Manipulating the Results of a Join | |
| |
| |
Aliases | |
| |
| |
Joins with Three Tables | |
| |
| |
The Visual Approach with More Than Two Tables | |
| |
| |
Joins with More Than Three Tables | |
| |
| |
Retrieving the Same Information in Different Ways | |
| |
| |
Using GROUP BY in a Join | |
| |
| |
| |
Queries within Queries: Subqueries | |
| |
| |
What Is a Subquery? | |
| |
| |
Using Comparison Operators with Subqueries | |
| |
| |
Using ANY and ALL | |
| |
| |
Existence Tests | |
| |
| |
Correlated Subqueries | |
| |
| |
Using HAVING with Correlated Subqueries | |
| |
| |
| |
Creating and Destroying Tables | |
| |
| |
Creating a Table | |
| |
| |
Disallowing NULL Values | |
| |
| |
Requiring Unique Values in a Column | |
| |
| |
Destroying (Dropping) Tables | |
| |
| |
| |
Adding, Modifying, and Deleting Records | |
| |
| |
Adding Records to a Table | |
| |
| |
Adding Records with Values Only for Some Columns | |
| |
| |
Adding Records Using SELECT | |
| |
| |
Modifying Records in a Table | |
| |
| |
Deleting Records from a Table | |
| |
| |
| |
Views | |
| |
| |
Creating Views | |
| |
| |
Creating Views Based on One Table | |
| |
| |
Creating Views Based on More Than One Table | |
| |
| |
Queries Using Views | |
| |
| |
Selecting Records from a View | |
| |
| |
Adding Records to a View | |
| |
| |
Modifying Records in a View | |
| |
| |
Deleting Records from a View | |
| |
| |
Destroying (Dropping) Views | |
| |
| |
| |
Granting and Revoking Privileges | |
| |
| |
Granting Privileges | |
| |
| |
Granting Privileges on Views | |
| |
| |
Passing Privileges On: The GRANT Option | |
| |
| |
Revoking Privileges | |
| |
| |
| |
Advanced Topics | |
| |
| |
Indexes | |
| |
| |
Creating Indexes | |
| |
| |
When to Create Indexes | |
| |
| |
Destroying Indexes | |
| |
| |
Using Multiple SQL Statements to Solve a Problem | |
| |
| |
Outer Joins | |
| |
| |
Unions | |
| |
| |
Joining a Table with Itself | |
| |
| |
Final Thoughts | |
| |
| |
| |
The Example Database | |
| |
| |
| |
List of Examples | |
| |
| |
| |
The Example Database | |
| |
| |
Index | |