This book covers the following topics:
Chapter 1, "Understanding SQL and Relational Databases": Introduces and clarifies key concepts you'll use throughout the book. This chapter also looks at relational database design theory.
Chapter 2, "Retrieving Data with SQL": Discusses the use of simple SELECT statements to retrieve data from a table.
Chapter 3, "Modifying Data": Covers modifying data in a table using INSERT and UPDATE statements.
Chapter 4, "Summarizing and Grouping Data": Shows how to use some built-in functions for counting rows and averaging columns and then moves on to look at the GROUP BY and HAVING statements. This chapter also highlights differences between platforms when it comes to displaying selected rows.
Chapter 5, "Performing Calculations and Using Functions": Describes many more available functions that can be used for performing calculations, manipulating strings, working with dates and times, and so on. It also covers creating your own functions.
Chapter 6, "Combining SQL Queries": Talks about subqueries and how to refine queries by combining data from different queries.
Chapter 7, "Querying Multiple Tables": Introduces joins between tables and using the built-in relationships defined in the database to present the correct results when building up a query.
Chapter 8, "Hiding Complex SQL with Views": Discusses creating views for storing queries. It also discusses how you can use views to grant restricted access to data to users without having to worry about them harming the underlying data.
Chapter 9, "Using Stored Procedures": Shows how to create and work with stored procedures on each of the supporting database platforms. It also shows how to use conditional execution, loops, and cursors, and how to handle errors.
Chapter 10, "Transactions": Covers the topic of transactions and how they're implemented on different platforms to handle updates to a database. This chapter also covers different locking methods that can be applied to data while a transaction is processed.
Chapter 11, "Users and Security": Discusses the key concepts of user authentication and authorization, focusing on the use of roles and permissions to restrict or enable certain database functionality.
Chapter 12, "Working with Database Objects": Discusses how to create (and delete) databases, tables, temporary tables, sequences, and indexes and how to apply constraints to columns in a table.
Chapter 13, "Triggers": Discusses how to create and use triggers to react to events in databases; for example, the insertion of a row or the deletion of a table.
Chapter 14, "Case Study: Building a Product Catalog": Drawing on much of the knowledge gained throughout the rest of the book, this case study demonstrates how to create and query the underlying database for a real e-commerce application
Chapter 15, "Case Study: Implementing Role-Based Security": Examines how to use SQL and stored procedures to implement a role-based security system.
Also in this book are three appendixes that cover the following:
Appendix A, "Executing SQL Statements": Provides an overview of how to get up and running so that you're ready to start executing SQL statements against each of the database platforms.
Appendix B, "Setting Up the InstantUniversity Database": Describes how to create and populate the InstantUniversity sample database that's used throughout the examples in this book.
Appendix C, "Data Types": Lists the different data types available to SQL programmers on each of the different database platforms.