
The Complete SQL Bootcamp
Are you ready to take control of your data, unlock hidden insights, and make smarter, faster decisions using one of the most powerful tools in analytics? SQL is the industry-standard language for managing and querying databases—trusted by data professionals, analysts, and developers around the world.
Our Complete SQL Bootcamp is designed to take you from zero to confident, guiding you through everything from writing your first query to joining tables, filtering data, and performing advanced aggregations. You’ll gain the practical skills needed to work with real-world datasets, streamline reporting, and boost your analytical capabilities—no prior coding experience required.
Whether you're in business, finance, marketing, or tech, this course will empower you to speak the language of data and confidently interact with databases to get the answers you need.
Don’t just collect data—command it. Enroll today and start your journey to SQL mastery!
-
Introduction to SQL
-
The Complete SQL Bootcamp
Master the language of data with the SQL Bootcamp. Learn to retrieve, filter, and analyse data through key topics like SELECT queries, JOINs, subqueries, and data aggregation. From understanding database structures to writing complex queries, this course equips you with practical skills to handle real-world data challenges confidently and efficiently.
-
What is SQL used for?
In this session, you will explore what SQL is used for and how it helps manage and work with data effectively. SQL allows users to access, organise, and manipulate information stored in relational databases. You’ll look at common applications such as querying data, filtering results, and updating records, and discover how SQL supports everything from simple data tasks to large-scale data analysis across a wide range of fields.
-
What opportunities open up if I learn SQL?
In this session, you will explore the opportunities that open up when you learn SQL. As a core skill in working with data, SQL is used across a wide range of industries and roles. You’ll discover how it can enhance your career in areas such as data analysis, business intelligence, software development, and beyond. Whether you’re looking to grow in your current role or move into a more data-focused field, SQL provides valuable pathways to develop, specialise, and stand out.
-
Database Installation
In this session, you will learn how to install MySQL and set up your environment for working with SQL. You’ll be guided through choosing the right version, downloading the installer, and configuring basic settings. You’ll also explore tools like MySQL Workbench for writing and running queries, ensuring you’re fully prepared to start practising SQL in a real database environment.
-
Datasets used in this course
In this session, you will be introduced to the datasets used throughout the course. You’ll explore a range of sample databases designed to reflect real-world scenarios, including customer orders, products, sales, and employee records. These datasets will help you practise key SQL concepts in context—giving you hands-on experience with structured data, relationships, and typical query challenges you’ll encounter in everyday data tasks.
-
Database Overview
In this session, you will get an overview of what a database is and how it works. You’ll explore the basic structure of a relational database, including tables, rows, columns, and relationships. By understanding how data is organised and connected, you’ll build a solid foundation for writing effective SQL queries and working confidently with data stored in a structured format.
-
Getting to know our first schema
In this session, you will be introduced to the Sakila schema—the first sample database used in this course. Designed to represent a DVD rental store, Sakila includes tables for films, customers, staff, rentals, and more. You’ll explore its structure, understand how the tables relate to each other, and begin to see how real-world data is modelled in a relational database, setting the stage for practical SQL practice.
-
-
Module 1 - Fundamental SQL Syntax
-
Single / Multi-line comments
In this session, you will learn how to use single-line and multi-line comments in SQL. Comments are essential for writing clear, readable code—whether you're explaining a complex query or leaving notes for future reference. You’ll explore the syntax for both types of comments and see how they can help document your work, improve collaboration, and make your SQL scripts easier to understand and maintain.
-
SELECT / FROM Statements
In this session, you will learn how to use the SELECT and FROM keywords—the foundation of almost every SQL query. You’ll discover how SELECT retrieves specific data and how FROM tells SQL where to look. By practising simple queries, you’ll gain confidence in extracting information from a table, setting the stage for more advanced data exploration later in the course.
-
Select Unique Values (DISTINCT)
In this session, you will learn how to use the DISTINCT keyword to filter out duplicate values in your query results. You’ll explore how DISTINCT works with the SELECT statement to return only unique records from a column or set of columns. This is a useful tool for cleaning up results and gaining clearer insights from your data.
-
Single Quotes, Double Quotes, Back-ticks
In this session, you will learn the difference between single quotes, double quotes, and backticks in SQL. You’ll explore how single quotes are used for string values, how some systems use double quotes for identifiers, and how backticks are used in MySQL to reference column or table names that might otherwise cause errors. Understanding these distinctions will help you write cleaner, error-free SQL queries.
-
ALIAS Tables & Columns
In this session, you will learn how to use aliases to rename tables and columns in your SQL queries. Using the AS keyword—or skipping it for simplicity—you’ll explore how aliases can make your results clearer, shorten long table names, and improve readability in complex queries. Aliasing is especially helpful when working with joins or when preparing data for reports and presentations.
-
Filtering Rows of Data (WHERE)
In this session, you will learn how to filter rows of data using the WHERE clause. This powerful SQL feature allows you to narrow down results by specifying conditions—such as matching values, ranges, or patterns. You’ll explore how to use comparison operators and logical expressions to return only the data you need, making your queries more targeted and efficient.
-
Multiple Conditions (AND)
In this session, you will learn how to use the AND keyword to combine multiple conditions in a WHERE clause. By using AND, you can filter rows that meet all specified criteria, making your queries more precise. You’ll explore practical examples that show how AND helps refine your results when working with multiple columns or complex filtering logic.
-
Multiple Conditions (OR)
In this session, you will learn how to use the OR keyword to broaden your filters in a WHERE clause. Unlike AND, which requires all conditions to be true, OR returns rows that meet any of the specified conditions. You’ll explore how OR can help you capture more flexible query results and combine it with other keywords for more dynamic filtering.
-
Using both AND & OR in a single query
In this session, you will learn how to combine AND and OR keywords to create more complex and flexible filtering conditions. You’ll explore how SQL evaluates these logical operators and why using parentheses is important to control the order of operations. Through practical examples, you’ll gain the skills to write clear, accurate queries that return exactly the data you need.
-
Filter by multiple values at once (IN)
In this session, you will learn how to use the IN keyword to filter results based on a list of values. Instead of writing multiple OR conditions, IN lets you simplify your queries by checking if a value matches any item in a given set. You’ll explore how this makes your SQL more concise, readable, and efficient—especially when working with long lists of possible matches.
-
Filtering Data BETWEEN two values
In this session, you will learn how to use the BETWEEN keyword to filter data within a specific range. Whether you're working with numbers, dates, or text, BETWEEN helps you return values that fall between two boundaries. You’ll explore how it simplifies range-based queries and makes your SQL cleaner and easier to understand.
-
NULL data (IS NULL / IS NOT NULL)
In this session, you will learn how SQL handles NULL values—placeholders for missing or unknown data. You’ll explore why NULL is different from zero or an empty string, and how it affects query results. Through practical examples, you’ll learn how to check for NULL using IS NULL and IS NOT NULL, helping you write more accurate and reliable queries when dealing with incomplete data.
-
Wildcard Matches (LIKE / % / _ / REGEXP)
In this session, you will learn how to use wildcards to match patterns within text data. Using the LIKE keyword along with symbols such as % and _, you’ll explore how to search for partial matches, flexible formats, and variations in strings. Wildcards are especially useful when exact matches aren’t possible, allowing you to filter and find data with more flexibility.
-
NOT Keyword
In this session, you will learn how to use the NOT keyword to reverse conditions in your SQL queries. By adding NOT before expressions like IN, BETWEEN, LIKE, or logical comparisons, you can exclude specific values or patterns from your results. You’ll explore how NOT enhances your control over data filtering, helping you fine-tune queries to return exactly what you need—and nothing you don’t.
-
Sorting Data (ORDER BY / ASC / DESC)
In this session, you will learn how to sort data using the ORDER BY clause. Sorting helps you organise query results in ascending or descending order based on one or more columns. You’ll explore how to sort by numbers, text, and dates, and how to control the order to make your data easier to read, analyse, and present.
-
Limit your query results
In this session, you will learn how to limit the number of results returned by a query using the LIMIT clause. This is especially useful when working with large datasets or when you only need a sample of the data. You’ll explore how to display a specific number of rows, combine LIMIT with ORDER BY, and use it to test queries more efficiently.
-
-
Module 2 - Data Aggregations
-
What are data aggregations?
In this session, you will be introduced to the concept of database aggregations and why they’re useful. Aggregations allow you to group and summarise data to uncover patterns, trends, and key insights. You’ll explore the general idea behind combining multiple rows into meaningful results, setting the stage for deeper learning with specific SQL functions in upcoming lessons.
-
The GROUP BY Keyword
In this session, you will learn how to use the GROUP BY keyword to organise data into groups based on one or more columns. This is especially useful when working with aggregate functions like SUM or COUNT, allowing you to summarise data for each group. You’ll explore how GROUP BY works in practice and how it helps turn raw data into clear, structured insights.
-
Counting Records (COUNT)
In this session, you will learn how to use the COUNT function to find the number of rows that match a specific condition or exist in a table. COUNT is one of the most commonly used aggregation functions in SQL, helping you quickly measure the size of datasets or track how often certain values appear. You’ll explore practical examples to understand how COUNTworks with WHERE, GROUP BY, and more.
-
Summation (SUM)
In this session, you will learn how to use the SUM function to calculate the total of numeric values in a column. Whether you're adding up sales, quantities, or other figures, SUM helps you quickly generate meaningful totals from your data. You’ll explore how to use it on its own or with GROUP BY to summarise totals across different categories or groups.
-
Finding the Minimum & Maximum value (MIN / MAX)
In this session, you will learn how to use the MIN and MAX functions to find the smallest and largest values in a column. These functions are useful for identifying things like the lowest price, the earliest date, or the highest score in your data. You’ll explore how to apply them in simple queries and alongside GROUP BY to gain deeper insights from your datasets.
-
Calculating Averages (AVG)
In this session, you will learn how to use the AVG function to calculate the average value of a numeric column. This function is helpful for understanding typical values—such as average prices, scores, or quantities—within your data. You’ll explore how AVG works on its own and how it can be combined with GROUP BY to compare averages across different categories.
-
Filtering aggregated data (HAVING)
In this session, you will learn how to use the HAVING keyword to filter grouped data after using GROUP BY. Unlike WHERE, which filters rows before grouping, HAVING allows you to apply conditions to aggregated results—such as only showing groups with totals above a certain value. You’ll explore how HAVING works with functions like SUM, COUNT, and AVG to refine your summaries and insights.
-
Totals & Subtotals on Aggregated data (WITH ROLLUP)
In this session, you will learn how to calculate totals and subtotals on aggregated data using the WITH ROLLUP feature in MySQL. This powerful addition to GROUP BY lets you automatically generate summary rows, showing combined totals for each group and an overall grand total. You’ll explore how WITH ROLLUP simplifies reporting and helps you present data in a more complete and structured way.
-
-
Module 3 - Generating Your Own Columns of Data
-
Generating new columns in the result set
In this session, you will learn how to generate new columns in your result set using expressions and calculations in SQL. By creating derived columns—such as combining text, performing arithmetic, or applying functions—you can enrich your query results with new insights. You’ll explore how to add these custom columns directly in your SELECT statements to make your data more informative and tailored to your needs.
-
Arithmetic Operators
In this session, you will learn how to use arithmetic operators in SQL to perform basic calculations within your queries. Operators like +, -, *, and / allow you to add, subtract, multiply, or divide values directly in your SELECT statements. You’ll explore how these operators help create dynamic columns, calculate differences, and generate new insights from your data.
-
Aggregating New Columns
In this session, you will learn how to aggregate newly created columns in your SQL queries. By combining expressions with aggregate functions like SUM, AVG, or COUNT, you can perform calculations on custom fields directly within your result set. You’ll explore how to create these on-the-fly columns and summarise them to extract deeper insights from your data.
-
Conditional Statements Part 1
In this session, you will be introduced to conditional statements in SQL and how they add flexibility to your queries. Conditional logic allows you to return different results based on certain rules or criteria. You’ll explore how to apply basic conditions to shape your output, customise values, and create more responsive and insightful query results.
-
Conditional Statements Part 2
In this session, you will build on your understanding of conditional statements by exploring more advanced uses in SQL. You’ll learn how to nest conditions, combine them with other functions, and apply logic across different columns or scenarios. These techniques help you create more complex, customised queries that adapt to a wider range of data situations and analysis needs.
-
Multi-conditional statements
In this session, you will learn how to use multiple conditional statements in SQL to handle more complex logic within your queries. By combining several conditions using CASE, AND, OR, and nested logic, you can control output based on a variety of scenarios. You’ll explore how multi-conditional statements allow for more detailed categorisation, custom outputs, and flexible data transformations.
-
-
Module 4 - SQL Functions & Operators
-
Comparison Operators
In this session, you will learn how to use comparison operators in SQL to evaluate relationships between values. Operators like =, !=, <, >, <=, and >= help you filter and compare data in your queries. You’ll explore how these tools form the foundation of conditions in WHERE clauses, enabling you to find exactly the data you need.
-
String Functions
In this session, you will learn how to use string functions in SQL to manipulate and work with text data. These functions allow you to modify, extract, combine, or format strings within your queries. You’ll explore commonly used functions like CONCAT, UPPER, LOWER, SUBSTRING, and more—giving you the tools to clean and customise text-based data effectively.
-
Numeric Functions
In this session, you will learn how to use numeric functions in SQL to perform calculations and transform number-based data. These functions help you round values, calculate absolute differences, generate random numbers, and more. You’ll explore commonly used functions like ROUND, CEIL, FLOOR, ABS, and others, giving you greater control over how numeric data is processed and presented.
-
Comparison Functions
In this session, you will learn about comparison functions in SQL and how they help evaluate values within your data. These functions allow you to compare inputs and return results based on those comparisons. You’ll explore how they can be used to simplify logic, handle differences between values, and support more dynamic and responsive queries.
-
Window Functions
In this session, you will be introduced to window functions in SQL—powerful tools for performing calculations across sets of rows related to the current row. Unlike standard aggregate functions, window functions let you keep detailed row-level data while also adding running totals, rankings, and comparisons. You’ll explore the general idea behind how they work and how they can enhance your ability to analyse data more deeply.
-
-
Module 5 - Working with Dates
-
Extracting Date Information
In this session, you will learn how to extract date information in SQL to work more effectively with time-based data. By using date functions, you can pull out specific parts of a date—such as the year, month, day, or weekday—to group, filter, or analyse your data in new ways. You’ll explore how this helps you uncover trends, track changes over time, and build more insightful queries.
-
Current Date & Time functions
In this session, you will learn how to use current date and time functions in SQL to work with real-time data. These functions allow you to retrieve the current date, time, or timestamp directly from the database. You’ll explore how they’re used in filtering, logging, and tracking changes—enabling you to build queries that respond to the present moment and support time-sensitive analysis.
-
Extracting Time Information
In this session, you will learn how to extract time information from datetime values in SQL. By isolating elements like hours, minutes, and seconds, you can analyse time-based patterns more precisely. You’ll explore how this helps with tasks such as tracking activity by time of day, grouping data by time intervals, and gaining deeper insights from temporal data.
-
Performing Calculations on Dates & Times
In this session, you will learn how to perform calculations on dates and times in SQL. These techniques allow you to find differences between dates, add or subtract time intervals, and measure durations. You’ll explore how working with date and time arithmetic can support scheduling, track time-based trends, and help answer questions like how long something took or when an event occurred.
-
Formatting Dates (DATE_FORMAT)
In this session, you will learn how to format dates in SQL using the DATE_FORMAT function. This allows you to display dates in a specific style or structure—such as showing only the month and year or reordering the day, month, and year. You’ll explore how formatting can make your results more readable, align with reporting standards, and better suit different audiences or regions.
-
Filtering by dates
In this session, you will learn how to filter data by dates in SQL. Filtering by dates allows you to focus on specific time periods—such as a particular day, month, or year—or compare records across date ranges. You’ll explore how to write queries that return only the data you need, helping you analyse trends, track activity, and manage time-sensitive information more effectively.
-
-
Module 6 - Joining Data
-
Join Types
In this session, you will learn about the different types of joins in SQL and how they allow you to combine data from multiple tables. Joins are essential for working with relational databases, where information is often spread across related tables. You’ll explore key join types—such as INNER JOIN, LEFT JOIN, RIGHT JOIN, and FULL JOIN—and see how each one helps you bring data together to answer more complex questions.
-
Primary & Foreign Keys
In this session, you will learn about primary and foreign keys—core concepts that define relationships between tables in a relational database. A primary key uniquely identifies each record in a table, while a foreign key links records across different tables. You’ll explore how these keys ensure data integrity, support joins, and help organise your data into a connected, structured format.
-
Inner Joins (INNER JOIN)
In this session, you will learn how to use INNER JOIN to combine data from two or more tables based on a related column. INNER JOIN returns only the rows that have matching values in both tables, making it ideal for focusing on connected data. You’ll explore how this type of join works, when to use it, and how it helps you build more meaningful, relationship-based queries.
-
Left Joins (LEFT JOIN)
In this session, you will learn how to use LEFT JOIN to combine data from two tables while keeping all records from the left table—even if there’s no match in the right table. This join type is useful when you want to see all data from one table, along with any related information from another. You’ll explore how LEFT JOIN helps uncover missing matches and supports broader data analysis.
-
Right Joins (RIGHT JOIN)
In this session, you will learn how to use RIGHT JOIN to combine data from two tables while keeping all records from the right table—even if there’s no match in the left table. This join type is helpful when your focus is on the right-hand table and you want to include related data from the left. You’ll explore how RIGHT JOIN works and when it’s useful for highlighting unmatched or incomplete relationships.
-
Joining multiple tables with filters and aggregations
In this session, you will learn how to join multiple tables while applying filters and aggregations to your queries. Combining data from several sources allows you to build richer, more detailed insights, while filters and functions like SUM, COUNT, or AVG help you focus and summarise the results. You’ll explore how to structure complex queries that connect, refine, and analyse data all in one go.
-
Appending tables together (UNION / UNION ALL)
In this session, you will learn how to append tables together using UNION and UNION ALL in SQL. These commands allow you to stack results from multiple queries with the same structure into a single result set. You’ll explore the difference between UNION, which removes duplicates, and UNION ALL, which keeps them—helping you combine data efficiently from similar sources.
-
-
Module 7 - MySQL Join Emulation
-
Full Outer Join Emulation
In this session, you will learn how to emulate a FULL OUTER JOIN in MySQL, which does not support it natively. By combining a LEFT JOIN and a RIGHT JOIN with a UNION, you can return all matching and non-matching rows from both tables. You’ll explore how this approach allows you to work around MySQL’s limitations and still retrieve a complete set of combined data.
-
Intersect Emulation
In this session, you will learn how to emulate the INTERSECT operation in MySQL, which is not supported by default. By using INNER JOIN or combining IN and DISTINCT in creative ways, you can retrieve rows that appear in the result sets of two queries. You’ll explore how this technique helps you identify shared data across tables while working within MySQL’s feature set.
-
Minus Emulation
In this session, you will learn how to emulate the MINUS operation in MySQL, which isn’t available as a built-in feature. By using techniques such as LEFT JOIN with IS NULL or NOT IN, you can return rows from one query that do not appear in another. You’ll explore how to apply these methods to compare datasets and exclude overlapping results effectively.
-
-
Module 8 - Creating a Database
-
Datatypes Overview - Numeric Datatypes
In this session, you will get an overview of numeric data types in MySQL and how they are used to store different kinds of numbers. You’ll explore common types such as INT, FLOAT, DOUBLE, and DECIMAL, and learn when to use each based on precision, range, and storage needs. Understanding numeric data types helps ensure your data is accurate, efficient, and suitable for the tasks at hand.
-
Datatypes - Boolean, String & Dates
In this session, you will explore core data types used in SQL for handling Boolean values, text, and dates. You’ll learn how Boolean types represent true or false logic, how string types store and manage text, and how date and time types capture temporal information. Understanding these data types is essential for organising, querying, and interpreting different kinds of data accurately and efficiently.
-
Creating a schema / database
In this session, you will learn how to create a new schema—or database—to organise and manage your data. Schemas act as containers for related tables and objects, helping you keep your data structured and easy to navigate. You’ll explore the basic steps for setting up a schema and understand how it forms the foundation for everything you build in your database projects.
-
Creating a database table (CREATE TABLE)
In this session, you will learn how to create a database table using the CREATE TABLE statement. Tables are where data is stored in rows and columns, forming the core structure of any relational database. You’ll explore how to define columns, set data types, and apply basic constraints—laying the groundwork for storing and managing your data effectively.
-
Inserting data into a table (INSERT / INTO)
In this session, you will learn how to insert data into a table using the INSERT INTO statement. This command allows you to add new rows of information to your database. You’ll explore how to insert single and multiple records, match values to columns, and ensure your data is entered accurately—building the foundation for meaningful data analysis and retrieval.
-
Updating data in a table (UPDATE / SET)
In this session, you will learn how to update existing data in a table using the UPDATE and SET statements. These commands allow you to modify values in one or more rows based on specific conditions. You’ll explore how to target the right records, change data safely, and maintain accuracy as your information evolves over time.
-
Deleting data from a table (DELETE)
In this session, you will learn how to delete data from a table using the DELETE statement. This command allows you to remove one or more rows based on specific conditions. You’ll explore how to safely target the right records, avoid accidental data loss, and understand when and why to use deletion as part of managing your database.
-
Deleting data from a table (TRUNCATE)
In this session, you will learn how to remove all data from a table using the TRUNCATE statement. Unlike DELETE, which removes rows one at a time, TRUNCATE quickly clears all records while preserving the table structure. You’ll explore when to use this command, how it differs from other deletion methods, and why it’s useful for resetting tables during testing or data refreshes.
-
Altering table structures (ALTER)
In this session, you will learn how to modify the structure of an existing table using the ALTER statement. This command allows you to add, remove, or change columns, as well as update constraints and data types. You’ll explore how to adapt your tables as requirements evolve, ensuring your database remains flexible, accurate, and well-organised over time.
-
Deleting tables from a database (DROP)
In this session, you will learn how to delete entire tables from a database using the DROP statement. This command permanently removes a table and all of its data, so it must be used with care. You’ll explore when it’s appropriate to drop a table, how it differs from other deletion methods, and how to manage your database structure responsibly.
-
Transactions (COMMIT / ROLLBACK)
In this session, you will learn about transactions in SQL and how to manage them using COMMIT and ROLLBACK. Transactions allow you to group multiple operations into a single unit of work, ensuring data integrity. You’ll explore how to confirm changes with COMMIT, undo them with ROLLBACK, and use transactions to maintain accuracy and control in your database processes.
-
Delete from multiple tables using JOINS
In this session, you will learn how to delete data from multiple tables using JOIN operations. This approach allows you to target and remove related records across tables based on shared conditions. You’ll explore how to structure these queries carefully to maintain data integrity, and understand when multi-table deletions are useful for keeping your database clean and consistent.
-
Load data from a csv file (LOAD DATA)
In this session, you will learn how to load data from a CSV file into a table using the LOAD DATA statement. This method allows you to quickly import large amounts of data from external sources into your database. You’ll explore how to map file contents to table columns, handle delimiters, and manage formatting—making it easier to integrate real-world data into your workflows.
-
-
Module 9 - Temporary Tables, CTE's & Subqueries
-
Introduction to Temporary Tables
In this session, you will be introduced to temporary tables and how they are used in SQL. Temporary tables allow you to store and manipulate data during a session without affecting the main database. You’ll explore when to use them, how they differ from regular tables, and how they can simplify complex queries or hold intermediate results during data processing.
-
Creating a temporary table
In this session, you will learn how to create a temporary table to store data temporarily within a database session. Temporary tables are useful for holding intermediate results, testing changes, or simplifying complex queries. You’ll explore how to define their structure, insert data, and understand how they automatically disappear when your session ends.
-
Common Table Expressions (CTE)
In this session, you will learn about Common Table Expressions (CTEs) and how they simplify complex queries by breaking them into readable parts. CTEs allow you to define temporary result sets using the WITH keyword, making your SQL more organised and easier to understand. You’ll explore how to use CTEs for tasks like filtering, joining, and recursive operations, all within a clean, reusable structure.
-
Derived Tables / Subqueries
In this session, you will learn about derived tables and subqueries—powerful tools that let you use a query inside another query. These techniques allow you to create temporary result sets that can be filtered, joined, or aggregated on the fly. You’ll explore how subqueries can be used in SELECT, FROM, or WHERE clauses to solve complex problems and make your SQL more flexible and efficient.
-
-
Module 10 - Database Views
-
Introduction to Views
In this session, you will be introduced to views and how they are used to simplify data access in SQL. A view is a virtual table based on a stored query, allowing you to present complex data in a cleaner, more manageable format. You’ll explore how views help organise queries, improve security, and provide consistent results across different parts of a project.
-
Creating a View
In this session, you will learn how to create a view using the CREATE VIEW statement. Views allow you to save and reuse complex queries as virtual tables, making your SQL more organised and efficient. You’ll explore how to define a view, use it like a regular table, and understand the benefits of simplifying data access and maintaining consistency across your queries.
-
Renaming & Dropping Views
In this session, you will learn how to rename and drop views to manage and maintain your database structure. Renaming allows you to update view names for clarity or consistency, while dropping permanently removes views that are no longer needed. You’ll explore how these actions help keep your database clean, organised, and aligned with evolving project requirements.
-
Create updatable views
In this session, you will learn how to create updatable views—views that allow you to modify the underlying data through the view itself. You’ll explore the conditions that make a view updatable, such as referencing a single base table and avoiding certain clauses. By understanding how to use updatable views, you can simplify data access while still maintaining control and flexibility in your updates.
-
Understanding how views are processed
In this session, you will learn how views are processed in SQL and what happens behind the scenes when a view is queried. You’ll explore how the database substitutes the view definition into your query, and how performance can be affected depending on the complexity of the view. Understanding how views are processed helps you write more efficient queries and use views effectively in your database design.
-
-
Module 11 - Stored Procedures
-
What is a stored procedure?
In this session, you will learn what a stored procedure is and how it can help automate tasks in a database. A stored procedure is a saved block of SQL code that performs a specific operation, such as inserting data or generating reports. You’ll explore how stored procedures promote code reuse, improve consistency, and simplify complex processes by allowing you to run predefined logic with a single call.
-
Understanding the DELIMITER
In this session, you will learn about the DELIMITER command and why it’s important when working with stored procedures and other multi-statement blocks. By changing the delimiter, you can define where a procedure ends without confusing the database with semicolons used within the code. You’ll explore how to set and reset delimiters to ensure your SQL scripts run smoothly and as intended.
-
How to create a new stored procedure
In this session, you will learn how to create a new stored procedure using the CREATE PROCEDURE statement. Stored procedures allow you to group SQL commands into reusable blocks that perform specific tasks. You’ll explore how to define a procedure, include parameters, and structure the code—making it easier to automate processes, improve consistency, and streamline your database operations.
-
Deleting stored procedures
In this session, you will learn how to delete stored procedures using the DROP PROCEDURE statement. This command permanently removes a stored procedure from the database when it’s no longer needed. You’ll explore how and when to safely drop procedures as part of maintaining a clean, efficient, and well-organised database environment.
-
Introducing variables
In this session, you will be introduced to variables in SQL and how they are used to store and manage temporary values during a session or within stored programs. Variables allow you to hold data, perform calculations, and pass values between steps in a process. You’ll explore how to declare, set, and use variables to add flexibility and control to your SQL scripts.
-
Introducing parameters and arguments
In this session, you will be introduced to parameters and arguments in SQL, which are used to pass values into stored procedures and functions. Parameters make your code more dynamic and reusable by allowing input to vary with each execution. You’ll explore how to define parameters, supply arguments when calling a procedure, and use them to customise logic based on different inputs.
-
How to change a stored procedure
In this session, you will learn how to change a stored procedure to update its logic, structure, or parameters. While some systems allow direct modification, others require dropping and recreating the procedure. You’ll explore best practices for making changes safely, including reviewing dependencies, testing updates, and maintaining version control to ensure smooth and reliable database operations.
-
IF - ELSEIF - ELSE Conditional Statements
In this session, you will learn how to use IF, ELSEIF, and ELSE conditional statements to control the flow of logic in SQL. These structures allow you to execute different blocks of code based on specific conditions. You’ll explore how to write clear, step-by-step decision-making logic within stored procedures and scripts, making your SQL more dynamic and responsive to varying inputs.
-
CASE WHEN Conditional Statements Part 1
In this session, you will be introduced to CASE WHEN conditional statements in SQL, a powerful way to apply logic directly within your queries. CASE allows you to return different values based on specified conditions, making your results more flexible and readable. You’ll explore the basic structure and use cases of CASE WHEN to create customised outputs based on your data.
-
CASE WHEN Conditional Statements Part 2
In this session, you will build on your understanding of CASE WHEN statements by exploring more advanced uses. You’ll learn how to nest CASE expressions, combine them with other functions, and apply them in different parts of a query—such as SELECT, ORDER BY, and GROUP BY. These techniques help you handle more complex logic and tailor your results to meet specific needs.
-
-
Module 12 - Loops
-
Understanding Loops with FizzBuzz!
In this session, you will explore how loops work in SQL through the FizzBuzz challenge—a fun and practical way to understand repetition and control flow. You’ll learn how to use looping structures like WHILE, create counters, and apply conditional logic to print different outputs based on number values. This hands-on example helps you build confidence with loops while reinforcing core programming concepts in SQL.
-
Loops
In this session, you will be introduced to loops in SQL and how they help perform repeated actions based on a condition. Loops are useful when you need to run the same set of instructions multiple times. You’ll explore basic loop structures, understand how to control when they start and stop, and see how they can add flexibility and automation to your SQL processes.
-
Loops - ITERATE keyword
In this session, you will learn about the ITERATE keyword and how it is used within SQL loops. ITERATE allows you to skip the rest of the current loop cycle and move directly to the next iteration. You’ll explore how it helps control the flow of a loop, especially when certain conditions are met, making your loop logic more precise and efficient.
-
WHILE Loop
In this session, you will learn how to use the WHILE loop in SQL to repeat a set of instructions as long as a specified condition remains true. The WHILE loop is useful for running tasks until a particular goal is met. You’ll explore how to set up the loop, define the condition, and control the flow to ensure your operations run smoothly and efficiently.
-
REPEAT Loop
In this session, you will learn how to use the REPEAT loop in SQL, which continues to execute a block of code until a specified condition becomes true. Unlike other loop types, REPEAT checks the condition after each iteration, ensuring the code runs at least once. You’ll explore how this structure works and when it’s best suited for your SQL routines.
-
-
Module 13 - Functions
-
What is a function?
In this session, you will learn what a function is in SQL and how it helps you perform reusable, self-contained operations on your data. Functions take input values, process them, and return a result—such as a calculation, transformation, or lookup. You’ll explore how functions can simplify your queries, promote consistency, and make your SQL code more modular and efficient.
-
How to create a stored function
In this session, you will learn how to create a stored function in SQL using the CREATE FUNCTION statement. Stored functions allow you to encapsulate logic that returns a single value, making your queries cleaner and more reusable. You’ll explore how to define input parameters, write the function body, and return results—helping you build modular, efficient solutions within your database.
-
Using functions in stored procedures
In this session, you will learn how to use functions within stored procedures to enhance modularity and clarity in your SQL code. Functions can be called from inside procedures to perform calculations, format data, or apply logic, all while keeping the procedure clean and focused. You’ll explore how combining functions with procedures improves reusability, consistency, and maintainability in your database operations.
-
Deleting and altering stored functions
In this session, you will learn how to manage stored functions by deleting or altering them as your database needs change. You’ll explore how to use the DROP FUNCTION statement to remove a function and understand common approaches for updating a function—such as redefining it when changes are needed. Managing stored functions effectively helps keep your codebase clean, efficient, and up to date.
-
-
Module 14 - Introduction to Cursors
-
Module 15 - Introduction to Triggers
-
What is a trigger
In this session, you will learn what a trigger is in SQL and how it can automate actions in response to specific events in a table. Triggers are special routines that run automatically when events like INSERT, UPDATE, or DELETE occur. You’ll explore how triggers help enforce rules, maintain data consistency, and streamline workflows without requiring manual intervention.
-
Our first trigger (BEFORE UPDATE)
In this session, you will create your first trigger using the BEFORE UPDATE event. This type of trigger runs automatically before a row in a table is updated, allowing you to check or modify values before changes are saved. You’ll explore how to define the trigger, when to use it, and how it can help enforce business rules and maintain data integrity.
-
Trigger Use Case 2
In this session, you will explore another practical use case for triggers and how they can automate actions within your database. Triggers respond to events such as data being inserted, updated, or deleted, allowing you to perform additional tasks automatically. You’ll see how this helps maintain consistency, enforce rules, and reduce the need for manual intervention in everyday database operations.
-
Trigger Use Case 3
In this session, you will explore a third use case for triggers, focusing on how they can be used to monitor and respond to changes in your data. You’ll learn how triggers can help with tasks such as auditing activity, tracking modifications, or enforcing custom business logic. This example shows how triggers can add an extra layer of control and automation to your database workflows.
-
Multiple triggers on same table
In this session, you will learn how multiple triggers can be used on the same table to handle different types of events or actions. You’ll explore how to create triggers for various operations—such as INSERT, UPDATE, and DELETE—and understand how they interact. This helps you design flexible, event-driven logic that responds to multiple changes within a single table.
-
Deleting Triggers
In this session, you will learn how to delete triggers using the DROP TRIGGER statement. Removing triggers is useful when they are no longer needed or need to be replaced. You’ll explore how to safely manage and clean up triggers to keep your database efficient, maintainable, and free from unnecessary or outdated automated actions.
-
-
Module 16 - Using SQL in other Software / Languages
-
SQL in Tableau
In this session, you will learn how SQL is used in Tableau to connect, query, and visualise data from databases. SQL plays a key role in shaping data before it’s visualised—whether through custom queries, calculated fields, or data source filters. You’ll explore how integrating SQL with Tableau enhances data control, supports deeper analysis, and helps build more dynamic, interactive dashboards.
-
SQL in Alteryx
In this session, you will learn how SQL is used in Alteryx to query, manipulate, and blend data from various sources. SQL can be embedded in tools like Input Data, Join, and Formula to enhance workflows and control data transformation. You’ll explore how using SQL within Alteryx supports powerful, flexible analysis while streamlining data preparation and automation tasks.
-
SQL in Python
In this session, you will learn how SQL is used in Python to interact with databases and manage data within your code. By using libraries like sqlite3, SQLAlchemy, or pandas, you can run SQL queries directly from Python scripts. You’ll explore how combining SQL with Python enhances data analysis, automates workflows, and allows for seamless integration between databases and programming logic.
-
Exporting data in a variety of file formats
In this session, you will learn how to export data into different file formats to make it easier to share, analyse, or use in other tools. Exporting allows you to move data out of the database and into formats like spreadsheets, text files, or structured data files. You’ll explore common approaches to exporting and how to choose the right format based on your goals.
-
-
Module 17 - Final Remarks
Course FAQ
-
This course is designed for anyone looking to build a strong foundation in SQL, regardless of prior experience. Whether you're a student, aspiring data analyst, developer, business professional, or simply curious about working with data, this course will guide you step-by-step through essential SQL concepts and practical skills. No previous coding knowledge is required—just a willingness to learn.
-
This course covers a wide range of SQL topics, starting with the basics and progressing to more advanced concepts. You'll learn about data types, writing queries with SELECT, filtering with WHERE, using joins, aggregating data, working with functions, subqueries, views, stored procedures, and more. The course also includes hands-on lessons on importing and exporting data, using SQL with tools like Python and Tableau, and understanding database structures.
-
By the end of this course, you’ll have a solid understanding of how to write and run SQL queries, manage and explore data, and work confidently with relational databases. You’ll gain practical skills in filtering, joining, aggregating, and transforming data, as well as building reusable database objects like views, procedures, and functions. You’ll also learn how to apply SQL in real-world tools and scenarios, preparing you for data-related roles or further study.
-
The course is structured into clear, progressive lessons that build on each other step by step. It begins with foundational concepts and gradually introduces more advanced topics, combining theory with hands-on practice. Each session focuses on a specific skill or concept, supported by examples, exercises, and real-world use cases. This structured approach ensures you can learn at your own pace while developing a strong, practical understanding of SQL.
-
The time commitment for this course depends on your learning pace and prior experience. There are ~12 hours of video tutorials to cover. On average, you can expect to spend about 3-5 hours per week working through the lessons, exercises, and projects. Some learners may progress more quickly, while others might take a bit longer to fully grasp the concepts. You can complete the course at your own pace, making it flexible to fit around your schedule.
-
No prior experience with SQL or programming is required for this course. It is designed for beginners, so you can start from scratch and build your skills step by step. Basic computer skills, such as navigating software and using the internet, will be helpful, but everything else you need to know will be taught throughout the course.
-
This course stands out by offering a hands-on, practical approach to learning SQL. It not only covers fundamental concepts but also dives into real-world applications, including how to use SQL with popular tools like Python, Tableau, and Alteryx. The course is structured to cater to beginners while providing enough depth to build real-world skills. With a focus on clear explanations, interactive exercises, and a supportive learning environment, you'll gain both confidence and competence in SQL.
-
This course is ideal for you if you're new to SQL or looking to strengthen your foundational skills in working with databases. If you're interested in data analysis, software development, or any field that requires data manipulation and querying, this course will provide you with the skills you need. If you prefer a hands-on, structured learning experience with real-world examples, this course will be a great fit for you. If you’re unsure, you can always start with the first few lessons to see if the content aligns with your learning goals.
-
Yes! Many organisations sponsor professional development courses. Feel free to request a detailed course brochure or contact us for an employer-ready outline to share with your manager or HR team.