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
519 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 | Subsections | Page |
---|---|---|---|
1.1 | The Four Stages of Database Design |
|
11 |
1.2 | Many-to-Many Relationships |
|
15 |
Section | Title | Subsections | Page |
---|---|---|---|
2.1 | Starting to Use Management Studio |
|
16 |
2.2 | Object Explorer |
|
17 |
Section | Title | Subsections | Page |
---|---|---|---|
3.1 | Creating the Database |
|
18 |
3.2 | Creating Tables |
|
19 |
3.3 | Setting an Identity Primary Key |
|
20 |
3.4 | Creating Columns |
|
21 |
3.5 | Whole Numbers |
|
22 |
3.6 | Other Numerical Fields |
|
23 |
3.7 | Character Data Types |
|
24 |
3.8 | Date/Time Data Types |
|
25 |
3.9 | Default and Null Values |
|
26 |
3.10 | Database Diagrams |
|
27 |
Section | Title | Subsections | Page |
---|---|---|---|
4.1 | Basic SELECT Statements |
|
29 |
4.2 | Creating Queries |
|
30 |
4.3 | Running Queries |
|
31 |
4.4 | Dealing with Errors |
|
33 |
4.5 | Using IntelliSense |
|
34 |
4.6 | Multiple SQL Commands |
|
35 |
4.7 | Saving, Opening and Closing Queries |
|
36 |
Section | Title | Subsections | Page |
---|---|---|---|
5.1 | Using Case |
|
38 |
5.2 | Indentation and Word Wrap |
|
39 |
5.3 | Comments |
|
40 |
5.4 | Colours in SQL |
|
41 |
5.5 | Auto-formatting SQL |
|
42 |
Section | Title | Subsections | Page |
---|---|---|---|
6.1 | SELECT Statement Syntax |
|
43 |
6.2 | Qualified Tables and Columns |
|
44 |
6.3 | Table Aliases |
|
44 |
6.4 | Column Aliases |
|
47 |
6.5 | Ordering Rows |
|
49 |
6.6 | Miscellaneous SELECT Tricks |
|
50 |
6.7 | Using UNION to Combine Results |
|
52 |
Section | Title | Subsections | Page |
---|---|---|---|
7.1 | Starting Query Designer |
|
53 |
7.2 | Using Query Designer |
|
54 |
7.3 | Editing Generated SQL |
|
57 |
7.4 | Advanced Features |
|
58 |
Section | Title | Subsections | Page |
---|---|---|---|
8.1 | The WHERE Clause |
|
59 |
8.2 | Criteria with Numbers |
|
60 |
8.3 | Criteria using Text |
|
61 |
8.4 | Criteria for Dates |
|
64 |
8.5 | Combining Criteria |
|
65 |
8.6 | Nulls |
|
66 |
Section | Title | Subsections | Page |
---|---|---|---|
9.1 | Copying and Pasting |
|
67 |
9.2 | Exporting Data |
|
68 |
Section | Title | Subsections | Page |
---|---|---|---|
10.1 | Creating Calculated Columns |
|
72 |
10.2 | Using SQL Functions |
|
74 |
10.3 | Casting Data Types |
|
75 |
10.4 | Numerical Calculations |
|
78 |
10.5 | Text Calculations |
|
81 |
10.6 | Dealing with Nulls |
|
87 |
10.7 | Testing Conditions using IIF |
|
89 |
Section | Title | Subsections | Page |
---|---|---|---|
11.1 | The Searched Case Expression |
|
90 |
11.2 | The Simple Case Statement |
|
92 |
11.3 | Nested CASE Statements |
|
93 |
Section | Title | Subsections | Page |
---|---|---|---|
12.1 | How Dates and Times Work |
|
94 |
12.2 | Formatting Dates using FORMAT |
|
96 |
12.3 | Formatting Dates using CONVERT |
|
98 |
12.4 | Parts of a Date: DATEPART and DATENAME |
|
99 |
12.5 | Getting the Difference between Dates |
|
100 |
12.6 | Calculating Ages Correctly |
|
102 |
12.7 | Adding Dates using DATEADD |
|
104 |
Section | Title | Subsections | Page |
---|---|---|---|
13.1 | Overview of Joins |
|
105 |
13.2 | Understanding your Database |
|
106 |
13.3 | Easy Joins, using Query Designer |
|
107 |
13.4 | Inner Joins |
|
108 |
13.5 | Outer Joins |
|
112 |
13.6 | Cross Joins |
|
115 |
13.7 | Self-Joins |
|
116 |
Section | Title | Subsections | Page |
---|---|---|---|
14.1 | Simple Summarising |
|
117 |
14.2 | Counting |
|
118 |
14.3 | Grouping |
|
120 |
14.4 | Filtering Results using HAVING |
|
123 |
14.5 | Casting Data for (eg) Averages |
|
124 |
14.6 | Dealing with Nulls |
|
125 |
14.7 | Additional Options when Grouping |
|
126 |
Section | Title | Subsections | Page |
---|---|---|---|
15.1 | Why Views are Useful |
|
128 |
15.2 | Views using the Designer |
|
130 |
15.3 | Scripting Views |
|
135 |
15.4 | Switching between the Designer and Scripting |
|
137 |
Section | Title | Subsections | Page |
---|---|---|---|
16.1 | Multi-Stage Queries |
|
138 |
16.2 | Derived Tables |
|
139 |
16.3 | Single CTEs (Common Table Expressions) |
|
140 |
16.4 | Multiple CTEs |
|
141 |
Section | Title | Subsections | Page |
---|---|---|---|
17.1 | Single-Value Subqueries |
|
143 |
17.2 | ANY, ALL, IN and NOT IN |
|
144 |
17.3 | Correlated Subqueries |
|
145 |
Section | Title | Subsections | Page |
---|---|---|---|
18.1 | Ranking and Numbering |
|
147 |
18.2 | Leading and Lagging |
|
148 |
18.3 | Percentiles |
|
149 |
Section | Title | Subsections | Page |
---|---|---|---|
19.1 | Overview |
|
150 |
19.2 | Creating Stored Procedures |
|
151 |
19.3 | Altering a Stored Procedure |
|
153 |
19.4 | Executing Stored Procedures |
|
154 |
19.5 | Renaming and Deleting Stored Procedures |
|
156 |
19.6 | System Stored Procedures |
|
157 |
19.7 | Getting Help on SQL |
|
159 |
Section | Title | Subsections | Page |
---|---|---|---|
20.1 | Declaring Variables |
|
160 |
20.2 | Using Variables |
|
161 |
20.3 | Using Variables with Subqueries |
|
164 |
20.4 | Storing Column Values in Variables |
|
165 |
20.5 | Global Variables |
|
167 |
Section | Title | Subsections | Page |
---|---|---|---|
21.1 | Numeric Data Types |
|
168 |
21.2 | Character Data Types |
|
169 |
21.3 | Date/Time Data Types |
|
170 |
Section | Title | Subsections | Page |
---|---|---|---|
22.1 | Overview |
|
171 |
22.2 | Simple Parameters |
|
172 |
22.3 | Running Procedures using Parameters |
|
174 |
22.4 | Default Parameter Values |
|
176 |
22.5 | The RETURN Statement |
|
178 |
22.6 | Output Parameters |
|
179 |
Section | Title | Subsections | Page |
---|---|---|---|
23.1 | IF Conditions |
|
180 |
23.2 | Looping using WHILE |
|
183 |
Section | Title | Subsections | Page |
---|---|---|---|
24.1 | Overview |
|
185 |
24.2 | Writing a Scalar Function |
|
186 |
24.3 | Running a Function |
|
187 |
24.4 | Worked Examples |
|
188 |
24.5 | Limitations of Functions |
|
191 |
Section | Title | Subsections | Page |
---|---|---|---|
25.1 | About Errors |
|
192 |
25.2 | TRY / CATCH |
|
193 |
25.3 | Error Functions |
|
195 |
25.4 | Customising Error Messages |
|
197 |
Section | Title | Subsections | Page |
---|---|---|---|
26.1 | Deleting (Dropping) Tables |
|
199 |
26.2 | Deleting Rows |
|
201 |
Section | Title | Subsections | Page |
---|---|---|---|
27.1 | The UPDATE Command |
|
202 |
27.2 | Updating using JOIN |
|
203 |
Section | Title | Subsections | Page |
---|---|---|---|
28.1 | Three Possible Ways to Insert |
|
205 |
28.2 | Creating Tables from Existing Data (SELECT INTO) |
|
206 |
28.3 | Inserting Multiple Rows into an Existing Table |
|
208 |
28.4 | Inserting Single Rows |
|
210 |
28.5 | INSERT INTO – More Possibilities |
|
212 |
Section | Title | Subsections | Page |
---|---|---|---|
29.1 | Setting Up our Example |
|
214 |
29.2 | Creating Tables |
|
215 |
29.3 | Setting Primary Keys |
|
216 |
29.4 | Setting a Default Value for a Column |
|
217 |
29.5 | Preventing Null Values in a Column |
|
218 |
29.6 | Putting Checks or Constraints on a Column |
|
219 |
29.7 | Foreign Keys and Relationships |
|
220 |
29.8 | Two Reasons/Ways to Index a Column |
|
222 |
29.9 | A Complete Example |
|
223 |
Section | Title | Subsections | Page |
---|---|---|---|
30.1 | The Concept |
|
224 |
30.2 | A Simple Example |
|
225 |
30.3 | Case Study – Recategorising Films |
|
226 |
30.4 | Errors and Transactions |
|
228 |
Section | Title | Subsections | Page |
---|---|---|---|
31.1 | Overview of Temporary Tables |
|
229 |
31.2 | Creating and Deleting Temporary Tables |
|
230 |
31.3 | Scope of Temporary Tables |
|
231 |
31.4 | Case Study – Successful People |
|
234 |
Section | Title | Subsections | Page |
---|---|---|---|
32.1 | About Table Variables |
|
237 |
32.2 | Case Study Revisited |
|
238 |
Section | Title | Subsections | Page |
---|---|---|---|
33.1 | Differences between Table Variables and Temporary Tables |
|
239 |
Section | Title | Subsections | Page |
---|---|---|---|
34.1 | The Two Types of Table-Valued Functions |
|
241 |
34.2 | In-line Table-Valued Functions |
|
242 |
34.3 | Multi-Statement Table-Valued Functions |
|
244 |
Section | Title | Subsections | Page |
---|---|---|---|
35.1 | The EXEC Command and Dynamic SQL |
|
246 |
35.2 | Example –Parameterising Row Selection |
|
247 |
Section | Title | Subsections | Page |
---|---|---|---|
36.1 | Overview |
|
248 |
36.2 | The Two Stages of Creating a Pivot Query |
|
249 |
36.3 | Varying the Number of Row Fields |
|
251 |
36.4 | Queries Based on Pivot Queries |
|
253 |
36.5 | Getting and Using Dynamic Columns |
|
254 |
Section | Title | Subsections | Page |
---|---|---|---|
37.1 | Overview of Triggers |
|
256 |
37.2 | Working with Triggers |
|
257 |
37.3 | More Sophisticated Triggers |
|
259 |
37.4 | A Case Study: Transactions in Triggers |
|
260 |
Section | Title | Subsections | Page |
---|---|---|---|
38.1 | Choosing an AI Tool |
|
261 |
38.2 | Blind Queries |
|
262 |
38.3 | Querying a Specific Database |
|
263 |
38.4 | Formatting and Refactoring |
|
266 |
38.5 | Optimising Queries |
|
269 |
38.6 | Debugging SQL |
|
270 |
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.