Read our blogs, tips and tutorials
Try our exercises or test your skills
Watch our tutorial videos or shorts
Take a self-paced course
Read our recent newsletters
License our courseware
Book expert consultancy
Buy our publications
Get help in using our site
427 attributed reviews in the last 3 years
Refreshingly small course sizes
Outstandingly good courseware
Whizzy online classrooms
Wise Owl trainers only (no freelancers)
Almost no cancellations
We have genuine integrity
We invoice after training
Review 30+ years of Wise Owl
View our top 100 clients
Search our website
We also send out useful tips in a monthly email newsletter ...
Here are the chapters included in this course manual (we use exactly the same manuals for our classroom and online SQL courses).
Click here to download a sample of the first two chapters of this Fast-track manual, or review how to license our courseware.
| Section | Title |
|---|---|
| 1.1 | The Four Stages of Database Design |
| 1.2 | Many-to-Many Relationships |
| Section | Title |
|---|---|
| 2.1 | Starting to Use Management Studio |
| 2.2 | Object Explorer |
| Section | Title |
|---|---|
| 3.1 | Creating the Database |
| 3.2 | Creating Tables |
| 3.3 | Setting an Identity Primary Key |
| 3.4 | Creating Columns |
| 3.5 | Whole Numbers |
| 3.6 | Other Numerical Fields |
| 3.7 | Character Data Types |
| 3.8 | Date/Time Data Types |
| 3.9 | Default and Null Values |
| 3.10 | Database Diagrams |
| Section | Title |
|---|---|
| 4.1 | Basic SELECT Statements |
| 4.2 | Creating Queries |
| 4.3 | Running Queries |
| 4.4 | Dealing with Errors |
| 4.5 | Using IntelliSense |
| 4.6 | Multiple SQL Commands |
| 4.7 | Saving, Opening and Closing Queries |
| Section | Title |
|---|---|
| 5.1 | Using Case |
| 5.2 | Indentation and Word Wrap |
| 5.3 | Comments |
| 5.4 | Colours in SQL |
| 5.5 | Auto-formatting SQL |
| Section | Title |
|---|---|
| 6.1 | SELECT Statement Syntax |
| 6.2 | Qualified Tables and Columns |
| 6.3 | Table Aliases |
| 6.4 | Column Aliases |
| 6.5 | Ordering Rows |
| 6.6 | Miscellaneous SELECT Tricks |
| 6.7 | Using UNION to Combine Results |
| Section | Title |
|---|---|
| 7.1 | Starting Query Designer |
| 7.2 | Using Query Designer |
| 7.3 | Editing Generated SQL |
| 7.4 | Advanced Features |
| Section | Title |
|---|---|
| 8.1 | The WHERE Clause |
| 8.2 | Criteria with Numbers |
| 8.3 | Criteria using Text |
| 8.4 | Criteria for Dates |
| 8.5 | Combining Criteria |
| 8.6 | Nulls |
| Section | Title |
|---|---|
| 9.1 | Copying and Pasting |
| 9.2 | Exporting Data |
| Section | Title |
|---|---|
| 10.1 | Creating Calculated Columns |
| 10.2 | Using SQL Functions |
| 10.3 | Casting Data Types |
| 10.4 | Numerical Calculations |
| 10.5 | Text Calculations |
| 10.6 | Dealing with Nulls |
| 10.7 | Testing Conditions using IIF |
| Section | Title |
|---|---|
| 11.1 | The Searched Case Expression |
| 11.2 | The Simple Case Statement |
| 11.3 | Nested CASE Statements |
| Section | Title |
|---|---|
| 12.1 | How Dates and Times Work |
| 12.2 | Formatting Dates using FORMAT |
| 12.3 | Formatting Dates using CONVERT |
| 12.4 | Parts of a Date: DATEPART and DATENAME |
| 12.5 | Getting the Difference between Dates |
| 12.6 | Calculating Ages Correctly |
| 12.7 | Adding Dates using DATEADD |
| Section | Title |
|---|---|
| 13.1 | Overview of Joins |
| 13.2 | Understanding your Database |
| 13.3 | Easy Joins, using Query Designer |
| 13.4 | Inner Joins |
| 13.5 | Outer Joins |
| 13.6 | Cross Joins |
| 13.7 | Self-Joins |
| Section | Title |
|---|---|
| 14.1 | Simple Summarising |
| 14.2 | Counting |
| 14.3 | Grouping |
| 14.4 | Filtering Results using HAVING |
| 14.5 | Casting Data for (eg) Averages |
| 14.6 | Dealing with Nulls |
| 14.7 | Additional Options when Grouping |
| Section | Title |
|---|---|
| 15.1 | Why Views are Useful |
| 15.2 | Views using the Designer |
| 15.3 | Scripting Views |
| 15.4 | Switching between the Designer and Scripting |
| Section | Title |
|---|---|
| 16.1 | Multi-Stage Queries |
| 16.2 | Derived Tables |
| 16.3 | Single CTEs (Common Table Expressions) |
| 16.4 | Multiple CTEs |
| Section | Title |
|---|---|
| 17.1 | Single-Value Subqueries |
| 17.2 | ANY, ALL, IN and NOT IN |
| 17.3 | Correlated Subqueries |
| Section | Title |
|---|---|
| 18.1 | Ranking and Numbering |
| 18.2 | Leading and Lagging |
| 18.3 | Percentiles |
| Section | Title |
|---|---|
| 19.1 | Overview |
| 19.2 | Creating Stored Procedures |
| 19.3 | Altering a Stored Procedure |
| 19.4 | Executing Stored Procedures |
| 19.5 | Renaming and Deleting Stored Procedures |
| 19.6 | System Stored Procedures |
| 19.7 | Getting Help on SQL |
| Section | Title |
|---|---|
| 20.1 | Declaring Variables |
| 20.2 | Using Variables |
| 20.3 | Using Variables with Subqueries |
| 20.4 | Storing Column Values in Variables |
| 20.5 | Global Variables |
| Section | Title |
|---|---|
| 21.1 | Numeric Data Types |
| 21.2 | Character Data Types |
| 21.3 | Date/Time Data Types |
| Section | Title |
|---|---|
| 22.1 | Overview |
| 22.2 | Simple Parameters |
| 22.3 | Running Procedures using Parameters |
| 22.4 | Default Parameter Values |
| 22.5 | The RETURN Statement |
| 22.6 | Output Parameters |
| Section | Title |
|---|---|
| 23.1 | IF Conditions |
| 23.2 | Looping using WHILE |
| Section | Title |
|---|---|
| 24.1 | Overview |
| 24.2 | Writing a Scalar Function |
| 24.3 | Running a Function |
| 24.4 | Worked Examples |
| 24.5 | Limitations of Functions |
| Section | Title |
|---|---|
| 25.1 | About Errors |
| 25.2 | TRY / CATCH |
| 25.3 | Error Functions |
| 25.4 | Customising Error Messages |
| Section | Title |
|---|---|
| 26.1 | Deleting (Dropping) Tables |
| 26.2 | Deleting Rows |
| Section | Title |
|---|---|
| 27.1 | The UPDATE Command |
| 27.2 | Updating using JOIN |
| Section | Title |
|---|---|
| 28.1 | Three Possible Ways to Insert |
| 28.2 | Creating Tables from Existing Data (SELECT INTO) |
| 28.3 | Inserting Multiple Rows into an Existing Table |
| 28.4 | Inserting Single Rows |
| 28.5 | INSERT INTO – More Possibilities |
| Section | Title |
|---|---|
| 29.1 | Setting Up our Example |
| 29.2 | Creating Tables |
| 29.3 | Setting Primary Keys |
| 29.4 | Setting a Default Value for a Column |
| 29.5 | Preventing Null Values in a Column |
| 29.6 | Putting Checks or Constraints on a Column |
| 29.7 | Foreign Keys and Relationships |
| 29.8 | Two Reasons/Ways to Index a Column |
| 29.9 | A Complete Example |
| Section | Title |
|---|---|
| 30.1 | The Concept |
| 30.2 | A Simple Example |
| 30.3 | Case Study – Recategorising Films |
| 30.4 | Errors and Transactions |
| Section | Title |
|---|---|
| 31.1 | Overview of Temporary Tables |
| 31.2 | Creating and Deleting Temporary Tables |
| 31.3 | Scope of Temporary Tables |
| 31.4 | Case Study – Successful People |
| Section | Title |
|---|---|
| 32.1 | About Table Variables |
| 32.2 | Case Study Revisited |
| Section | Title |
|---|---|
| 33.1 | Differences between Table Variables and Temporary Tables |
| Section | Title |
|---|---|
| 34.1 | The Two Types of Table-Valued Functions |
| 34.2 | In-line Table-Valued Functions |
| 34.3 | Multi-Statement Table-Valued Functions |
| Section | Title |
|---|---|
| 35.1 | The EXEC Command and Dynamic SQL |
| 35.2 | Example –Parameterising Row Selection |
| Section | Title |
|---|---|
| 36.1 | Overview |
| 36.2 | The Two Stages of Creating a Pivot Query |
| 36.3 | Varying the Number of Row Fields |
| 36.4 | Queries Based on Pivot Queries |
| 36.5 | Getting and Using Dynamic Columns |
| Section | Title |
|---|---|
| 37.1 | Overview of Triggers |
| 37.2 | Working with Triggers |
| 37.3 | More Sophisticated Triggers |
| 37.4 | A Case Study: Transactions in Triggers |
| Section | Title |
|---|---|
| 38.1 | Choosing an AI Tool |
| 38.2 | Blind Queries |
| 38.3 | Querying a Specific Database |
| 38.4 | Formatting and Refactoring |
| 38.5 | Optimising Queries |
| 38.6 | Debugging SQL |
If you book a place on one of our courses you will automatically get access to the relevant courseware manual online, and also have the option to receive a paper copy of it.
Kingsmoor House
Railway Street
GLOSSOP
SK13 2AA
Landmark Offices
99 Bishopsgate
LONDON
EC2M 3XD
Holiday Inn
25 Aytoun Street
MANCHESTER
M1 3AE
© Wise Owl Business Solutions Ltd 2025. All Rights Reserved.