Table of Contents for
Learning SQL, 2nd Edition
Close
Version ebook
/
Retour
Learning SQL, 2nd Edition
by Alan Beaulieu
Published by O'Reilly Media, Inc., 2009
Cover
Learning SQL
O'Reilly Strata Conference
Learning SQL
A Note Regarding Supplemental Files
Preface
1. A Little Background
2. Creating and Populating a Database
3. Query Primer
4. Filtering
5. Querying Multiple Tables
6. Working with Sets
7. Data Generation, Conversion, and Manipulation
8. Grouping and Aggregates
9. Subqueries
10. Joins Revisited
11. Conditional Logic
12. Transactions
13. Indexes and Constraints
14. Views
15. Metadata
A. ER Diagram for Example Database
B. MySQL Extensions to the SQL Language
C. Solutions to Exercises
Index
About the Author
Colophon
Copyright
Learning SQL
Table of Contents
A Note Regarding Supplemental Files
Preface
Why Learn SQL?
Why Use This Book to Do It?
Structure of This Book
Conventions Used in This Book
How to Contact Us
Using Code Examples
Safari® Books Online
Acknowledgments
1. A Little Background
Introduction to Databases
Nonrelational Database Systems
The Relational Model
Some Terminology
What Is SQL?
SQL Statement Classes
SQL: A Nonprocedural Language
SQL Examples
What Is MySQL?
What’s in Store
2. Creating and Populating a Database
Creating a MySQL Database
Using the mysql Command-Line Tool
MySQL Data Types
Character Data
Character sets
Text data
Numeric Data
Temporal Data
Table Creation
Step 1: Design
Step 2: Refinement
Step 3: Building SQL Schema Statements
Populating and Modifying Tables
Inserting Data
Generating numeric key data
The insert statement
Updating Data
Deleting Data
When Good Statements Go Bad
Nonunique Primary Key
Nonexistent Foreign Key
Column Value Violations
Invalid Date Conversions
The Bank Schema
3. Query Primer
Query Mechanics
Query Clauses
The select Clause
Column Aliases
Removing Duplicates
The from Clause
Tables
Subquery-generated tables
Views
Table Links
Defining Table Aliases
The where Clause
The group by and having Clauses
The order by Clause
Ascending Versus Descending Sort Order
Sorting via Expressions
Sorting via Numeric Placeholders
Test Your Knowledge
Exercise 3-1
Exercise 3-2
Exercise 3-3
Exercise 3-4
4. Filtering
Condition Evaluation
Using Parentheses
Using the not Operator
Building a Condition
Condition Types
Equality Conditions
Inequality conditions
Data modification using equality conditions
Range Conditions
The between operator
String ranges
Membership Conditions
Using subqueries
Using not in
Matching Conditions
Using wildcards
Using regular expressions
Null: That Four-Letter Word
Test Your Knowledge
Exercise 4-1
Exercise 4-2
Exercise 4-3
Exercise 4-4
5. Querying Multiple Tables
What Is a Join?
Cartesian Product
Inner Joins
The ANSI Join Syntax
Joining Three or More Tables
Using Subqueries As Tables
Using the Same Table Twice
Self-Joins
Equi-Joins Versus Non-Equi-Joins
Join Conditions Versus Filter Conditions
Test Your Knowledge
Exercise 5-1
Exercise 5-2
Exercise 5-3
6. Working with Sets
Set Theory Primer
Set Theory in Practice
Set Operators
The union Operator
The intersect Operator
The except Operator
Set Operation Rules
Sorting Compound Query Results
Set Operation Precedence
Test Your Knowledge
Exercise 6-1
Exercise 6-2
Exercise 6-3
7. Data Generation, Conversion, and Manipulation
Working with String Data
String Generation
Including single quotes
Including special characters
String Manipulation
String functions that return numbers
String functions that return strings
Working with Numeric Data
Performing Arithmetic Functions
Controlling Number Precision
Handling Signed Data
Working with Temporal Data
Dealing with Time Zones
Generating Temporal Data
String representations of temporal data
String-to-date conversions
Functions for generating dates
Manipulating Temporal Data
Temporal functions that return dates
Temporal functions that return strings
Temporal functions that return numbers
Conversion Functions
Test Your Knowledge
Exercise 7-1
Exercise 7-2
Exercise 7-3
8. Grouping and Aggregates
Grouping Concepts
Aggregate Functions
Implicit Versus Explicit Groups
Counting Distinct Values
Using Expressions
How Nulls Are Handled
Generating Groups
Single-Column Grouping
Multicolumn Grouping
Grouping via Expressions
Generating Rollups
Group Filter Conditions
Test Your Knowledge
Exercise 8-1
Exercise 8-2
Exercise 8-3
Exercise 8-4 (Extra Credit)
9. Subqueries
What Is a Subquery?
Subquery Types
Noncorrelated Subqueries
Multiple-Row, Single-Column Subqueries
The in and not in operators
The all operator
The any operator
Multicolumn Subqueries
Correlated Subqueries
The exists Operator
Data Manipulation Using Correlated Subqueries
When to Use Subqueries
Subqueries As Data Sources
Data fabrication
Task-oriented subqueries
Subqueries in Filter Conditions
Subqueries As Expression Generators
Subquery Wrap-up
Test Your Knowledge
Exercise 9-1
Exercise 9-2
Exercise 9-3
Exercise 9-4
10. Joins Revisited
Outer Joins
Left Versus Right Outer Joins
Three-Way Outer Joins
Self Outer Joins
Cross Joins
Natural Joins
Test Your Knowledge
Exercise 10-1
Exercise 10-2
Exercise 10-3
Exercise 10-4 (Extra Credit)
11. Conditional Logic
What Is Conditional Logic?
The Case Expression
Searched Case Expressions
Simple Case Expressions
Case Expression Examples
Result Set Transformations
Selective Aggregation
Checking for Existence
Division-by-Zero Errors
Conditional Updates
Handling Null Values
Test Your Knowledge
Exercise 11-1
Exercise 11-2
12. Transactions
Multiuser Databases
Locking
Lock Granularities
What Is a Transaction?
Starting a Transaction
Ending a Transaction
Transaction Savepoints
Test Your Knowledge
Exercise 12-1
13. Indexes and Constraints
Indexes
Index Creation
Unique indexes
Multicolumn indexes
Types of Indexes
B-tree indexes
Bitmap indexes
Text indexes
How Indexes Are Used
The Downside of Indexes
Constraints
Constraint Creation
Constraints and Indexes
Cascading Constraints
Test Your Knowledge
Exercise 13-1
Exercise 13-2
14. Views
What Are Views?
Why Use Views?
Data Security
Data Aggregation
Hiding Complexity
Joining Partitioned Data
Updatable Views
Updating Simple Views
Updating Complex Views
Test Your Knowledge
Exercise 14-1
Exercise 14-2
15. Metadata
Data About Data
Information_Schema
Working with Metadata
Schema Generation Scripts
Deployment Verification
Dynamic SQL Generation
Test Your Knowledge
Exercise 15-1
Exercise 15-2
A. ER Diagram for Example Database
B. MySQL Extensions to the SQL Language
Extensions to the select Statement
The limit Clause
Combining the limit clause with the order by clause
The limit clause’s optional second parameter
Ranking queries
The into outfile Clause
Combination Insert/Update Statements
Ordered Updates and Deletes
Multitable Updates and Deletes
C. Solutions to Exercises
Chapter 3
3-1
3-2
3-3
3-4
Chapter 4
4-1
4-2
4-3
4-4
Chapter 5
5-1
5-2
5-3
Chapter 6
6-1
6-2
6-3
Chapter 7
7-1
7-2
7-3
Chapter 8
8-1
8-2
8-3
8-4 (Extra Credit)
Chapter 9
9-1
9-2
9-3
9-4
Chapter 10
10-1
10-2
10-3
10-4 (Extra Credit)
Chapter 11
11-1
11-2
Chapter 12
12-1
Chapter 13
13-1
13-2
Chapter 14
14-1
14-2
Chapter 15
15-1
15-2
Index
About the Author
Colophon
Copyright