| Credits Preface | |
| SQL Fundamentals | |
| Run SQL from the Command Line | |
| Connect to SQL from a Program | |
| Perform Conditional INSERTs | |
| UPDATE the Database | |
| Solve a Crossword Puzzle Using SQL | |
| Don't Perform the Same Calculation Over and Over | |
| Joins, Unions, and Views | |
| Modify a Schema Without Breaking Existing Queries | |
| Filter Rows and Columns | |
| Filter on Indexed Columns | |
| Convert Subqueries to JOINs | |
| Convert Aggregate Subqueries to JOINs | |
| Simplify Complicated Updates | |
| Choose the Right Join Style for Your Relationships | |
| Generate Combinations | |
| Text Handling | |
| Search for Keywords Without LIKE | |
| Search for a String Across Columns | |
| Solve Anagrams | |
| Sort Your Email | |
| Date Handling | |
| Convert Strings to Dates | |
| Uncover Trends in Your Data | |
| Report on Any Date Criteria | |
| Generate Quarterly Reports | |
| Second Tuesday of the Month | |
| Number Crunching | |
| Multiply Across a Result Set | |
| Keep a Running Total | |
| Include the Rows Your JOIN Forgot | |
| Identify Overlapping Ranges | |
| Avoid Dividing by Zero | |
| Other Ways to COUNT | |
| Calculate the Maximum of Two Fields | |
| Disaggregate a COUNT | |
| Cope with Rounding Errors | |
| Get Values and Subtotals in One Shot | |
| Calculate the Median | |
| Tally Results into a Chart | |
| Calculate the Distance Between GPS Locations | |
| Reconcile Invoices and Remittances | |
| Find Transposition Errors | |
| Apply a Progressive Tax | |
| Calculate Rank | |
| Online Applications | |
| Copy Web Pages into a Table | |
| Present Data Graphically Using SVG | |
| Add Navigation Features to Web Applications | |
| Tunnel into MySQL from Microsoft Access | |
| Process Web Server Logs | |
| Store Images in a Database | |
| Exploit an SQL Injection Vulnerability | |
| Prevent an SQL Injection Attack | |
| Organizing Data | |
| Keep Track of Infrequently Changing Values | |
| Combine Tables Containing Different Data | |
| Display Rows As Columns | |
| Display Columns As Rows | |
| Clean Inconsistent Records | |
| Denormalize Your Tables | |
| Import Someone Else's Data | |
| Play Matchmaker | |
| Generate Unique Sequential Numbers | |
| Storing Small Amounts of Data | |
| Store Parameters in the Database | |
| Define Personalized Parameters | |
| Create a List of Personalized Parameters | |
| Set Security Based on Rows | |
| Issue Queries Without Using a Table | |
| Generate Rows Without Tables | |
| Locking and Performance | |
| Determine Your Isolation Level | |
| Use Pessimistic Locking | |
| Use Optimistic Locking | |
| Lock Implicitly Within Transactions | |
| Cope with Unexpected Redo | |
| Execute Functions in the Database | |
| Combine Your Queries | |
| Extract Lots of Rows | |
| Extract a Subset of the Results | |
| Mix File and Database Storage | |
| Compare and Synchronize Tables | |
| Minimize Bandwidth in One-to-Many Joins | |
| Compress to Avoid LOBs | |
| Reporting | |
| Fill in Missing Values in a Pivot Table | |
| Break It Down by Range | |
| Identify Updates Uniquely | |
| Play Six Degrees of Kevin Bacon | |
| Build Decision Tables | |
| Generate Sequential or Missing Data | |
| Find the Top n in Each Group | |
| Store Comma-Delimited Lists in a Column | |
| Traverse a Simple Tree | |
| Set Up Queuing in the Database | |
| Generate a Calendar | |
| Test Two Values from a Subquery | |
| Choose Any Three of Five | |
| Users and Administration | |
| Implement Application-Level Accounts | |
| Export and Import Table Definitions | |
| Deploy Applications | |
| Auto-Create Database Users | |
| Create Users and Administrators | |
| Issue Automatic Updates | |
| Create an Audit Trail | |
| Table of Contents provided by Publisher. All Rights Reserved. |