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
422 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 Advanced manual, or review how to license our courseware.
| Section | Title |
|---|---|
| 1.1 | Our Example Database |
| Section | Title |
|---|---|
| 2.1 | Overview |
| 2.2 | Creating Stored Procedures |
| 2.3 | Altering a Stored Procedure |
| 2.4 | Executing Stored Procedures |
| 2.5 | Renaming and Deleting Stored Procedures |
| 2.6 | System Stored Procedures |
| 2.7 | Getting Help on SQL |
| Section | Title |
|---|---|
| 3.1 | Declaring Variables |
| 3.2 | Using Variables |
| 3.3 | Using Variables with Subqueries |
| 3.4 | Storing Column Values in Variables |
| 3.5 | Global Variables |
| Section | Title |
|---|---|
| 4.1 | Numeric Data Types |
| 4.2 | Character Data Types |
| 4.3 | Date/Time Data Types |
| Section | Title |
|---|---|
| 5.1 | Overview |
| 5.2 | Simple Parameters |
| 5.3 | Running Procedures using Parameters |
| 5.4 | Default Parameter Values |
| 5.5 | The RETURN Statement |
| 5.6 | Output Parameters |
| Section | Title |
|---|---|
| 6.1 | IF Conditions |
| 6.2 | Looping using WHILE |
| Section | Title |
|---|---|
| 7.1 | Overview |
| 7.2 | Writing a Scalar Function |
| 7.3 | Running a Function |
| 7.4 | Worked Examples |
| 7.5 | Limitations of Functions |
| Section | Title |
|---|---|
| 8.1 | About Errors |
| 8.2 | TRY / CATCH |
| 8.3 | Error Functions |
| 8.4 | Customising Error Messages |
| Section | Title |
|---|---|
| 9.1 | Deleting (Dropping) Tables |
| 9.2 | Deleting Rows |
| Section | Title |
|---|---|
| 10.1 | The UPDATE Command |
| 10.2 | Updating using JOIN |
| Section | Title |
|---|---|
| 11.1 | Three Possible Ways to Insert |
| 11.2 | Creating Tables from Existing Data (SELECT INTO) |
| 11.3 | Inserting Multiple Rows into an Existing Table |
| 11.4 | Inserting Single Rows |
| 11.5 | INSERT INTO – More Possibilities |
| Section | Title |
|---|---|
| 12.1 | Setting Up our Example |
| 12.2 | Creating Tables |
| 12.3 | Setting Primary Keys |
| 12.4 | Setting a Default Value for a Column |
| 12.5 | Preventing Null Values in a Column |
| 12.6 | Putting Checks or Constraints on a Column |
| 12.7 | Foreign Keys and Relationships |
| 12.8 | Two Reasons/Ways to Index a Column |
| 12.9 | A Complete Example |
| Section | Title |
|---|---|
| 13.1 | The Concept |
| 13.2 | A Simple Example |
| 13.3 | Case Study – Recategorising Films |
| 13.4 | Errors and Transactions |
| Section | Title |
|---|---|
| 14.1 | Overview of Temporary Tables |
| 14.2 | Creating and Deleting Temporary Tables |
| 14.3 | Scope of Temporary Tables |
| 14.4 | Case Study – Successful People |
| Section | Title |
|---|---|
| 15.1 | About Table Variables |
| 15.2 | Case Study Revisited |
| Section | Title |
|---|---|
| 16.1 | Differences between Table Variables and Temporary Tables |
| Section | Title |
|---|---|
| 17.1 | The Two Types of Table-Valued Functions |
| 17.2 | In-line Table-Valued Functions |
| 17.3 | Multi-Statement Table-Valued Functions |
| Section | Title |
|---|---|
| 18.1 | About Cursors |
| 18.2 | Example of a Cursor |
| Section | Title |
|---|---|
| 19.1 | Example Used |
| 19.2 | Debugging |
| Section | Title |
|---|---|
| 20.1 | The EXEC Command and Dynamic SQL |
| 20.2 | Example –Parameterising Row Selection |
| Section | Title |
|---|---|
| 21.1 | Multi-Stage Queries |
| 21.2 | Derived Tables |
| 21.3 | Single CTEs (Common Table Expressions) |
| 21.4 | Multiple CTEs |
| Section | Title |
|---|---|
| 22.1 | Single-Value Subqueries |
| 22.2 | ANY, ALL, IN and NOT IN |
| 22.3 | Correlated Subqueries |
| Section | Title |
|---|---|
| 23.1 | Overview |
| 23.2 | The Two Stages of Creating a Pivot Query |
| 23.3 | Varying the Number of Row Fields |
| 23.4 | Queries Based on Pivot Queries |
| 23.5 | Getting and Using Dynamic Columns |
| Section | Title |
|---|---|
| 24.1 | Overview of Triggers |
| 24.2 | Working with Triggers |
| 24.3 | More Sophisticated Triggers |
| 24.4 | A Case Study: Transactions in Triggers |
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.