Module 1: SQL Overview
Outlining SQL as the cornerstone of database activity
Applying the ANSI/ISO standards
Describing the fundamental building blocks: tables, columns, primary keys, and foreign keys
Module 2: Building the Database Schema
Creating tables and columns
Building tables with CREATE TABLE
Modifying table structure with ALTER TABLE
Adding columns to an existing table
Removing tables with DROP TABLE
Protecting data integrity with constraints
Guaranteeing uniqueness with primary key constraints
Enforcing integrity with foreign key constraints
Imposing business rules with check constraints
Improving performance with indexes
Expediting data retrieval with indexes
Recommending guidelines for index creation
Module 3: Manipulating Data
Modifying table contents
Adding table rows with INSERT
Changing row content with UPDATE
Removing rows with DELETE
Applying transactions
Controlling transactions with COMMIT and ROLLBACK
Deploying BEGIN TRANSACTION in SQL Server
Module 4: Working with the SELECT Statement
Writing Single Table queries
Retrieving data with SELECT
Specifying column expressions
Sorting the result with ORDER BY
Handling NULL values in expressions
Restricting rows with the WHERE filter
Testing for equality or inequality
Applying wildcard characters
Avoiding NULL value pitfalls
Module 5: Querying Multiple Tables
Applying the ANSI/ISO standard join syntax
Matching related rows with INNER JOIN
Including nonmatched rows with OUTER JOIN
Creating a Cartesian product with CROSS JOIN
Combining results with set operators
Stacking results with UNION
Identifying matching rows with INTERSECT
Utilising EXCEPT to find nonmatching rows
Module 6: Employing Functions in Data Retrieval
Processing data with row functions
Conditional formatting with the CASE expression
Utilising the CASE expression to simulate IF tests
Dealing with NULL values
Performing analysis with aggregate functions
Summarising data using SUM, AVG and COUNT
Finding the highest/lowest values with MAX and MIN
Defining the summary level with GROUP BY
Applying filter conditions with HAVING
Module 7: Constructing Nested Queries
Applying subqueries in filter conditions
Creating correlated vs. noncorrelated subqueries
Testing the existence of rows
Including subqueries in expressions
Placing subqueries in the column list
Creating complex expressions containing subqueries
Handling subqueries that return no rows
Module 8: Developing In-Line and Stored Views
Breaking down complex problems
Selecting data from a query result set
Using subqueries in the FROM clause
Creating views in a database
Building reusable code
Creating updateable vs. non-updateable views