About SQL
SQL is the standard language for working with relational data, and this course
walks through it the way most people actually learn to use it on the job. It starts
with SQL Fundamentals — tables, rows, columns, data types, and how
relational databases are organized — followed by
Querying & Filtering with SELECT,
WHERE, sorting, and limiting results, and
Functions & Expressions for transforming text, numbers, and
dates and adding logic with CASE.
From there, Aggregation & Grouping covers summarizing data with
COUNT, SUM, and AVG, GROUP BY, and
HAVING, while Joins covers combining tables.
Subqueries & CTEs show how to break complex questions into
readable steps, and Window Functions cover ranking, running totals,
and comparing rows with OVER, PARTITION BY, and
LAG/LEAD.
Data Modification covers INSERT, UPDATE, DELETE, and upserts, and
Transactions & Concurrency covers ACID guarantees, isolation
levels, and locking. Database Design covers creating tables,
constraints, keys, and normalizing a schema so it stays clean as it grows.
Indexes & Performance covers reading execution plans and making
slow queries fast. Views, Procedures & Triggers covers putting
logic inside the database, and Advanced SQL covers recursive
queries, pivoting, and JSON. Finally, Security & Administration
covers permissions, SQL injection, and backups — the skills that take you from
writing queries to running real database-backed systems.
Content
14 modules
01
SQL Fundamentals
How relational databases are structured, the core data types, and setting up a database to practice in.
Tables & Rows
Data Types
Keys
02
Querying & Filtering
Retrieving exactly the data you need with SELECT, filtering with WHERE and pattern matching, and sorting and limiting results.
SELECT
WHERE
ORDER BY
LIKE
03
Functions & Expressions
Transforming data with string, numeric, and date functions, adding conditional logic with CASE, and handling NULL values correctly.
String Functions
Date Functions
CASE
COALESCE
04
Aggregation & Grouping
Summarizing data with aggregate functions, grouping rows with GROUP BY, and filtering groups with HAVING.
COUNT / SUM / AVG
GROUP BY
HAVING
05
Joins
Combining data across tables with inner, left, right, full, cross, and self joins.
INNER JOIN
LEFT JOIN
Self Join
06
Subqueries & CTEs
Nesting queries inside queries, using common table expressions to keep complex logic readable, and checking existence with EXISTS.
Subqueries
CTEs
EXISTS
07
Window Functions
Ranking rows, calculating running totals and moving averages, and comparing a row to its neighbors without collapsing the result set.
OVER
PARTITION BY
RANK
LAG / LEAD
08
Data Modification
Adding, changing, and removing data with INSERT, UPDATE, DELETE, and upserts, plus bulk loading data from files.
INSERT
UPDATE
DELETE
Upserts
09
Transactions & Concurrency
Keeping changes consistent with ACID transactions, isolation levels, locking, and avoiding deadlocks.
Transactions
Isolation Levels
Locking
10
Database Design
Creating tables with CREATE and ALTER, enforcing integrity with constraints and foreign keys, and normalizing a schema.
DDL
Constraints
Normalization
ER Diagrams
11
Indexes & Performance
How indexes work, reading execution plans with EXPLAIN, and rewriting queries to run faster on large tables.
Indexes
EXPLAIN
Query Tuning
12
Views, Procedures & Triggers
Encapsulating logic inside the database with views, stored procedures, user-defined functions, and triggers.
Views
Stored Procedures
Triggers
13
Advanced SQL
Recursive queries for hierarchical data, set operations, pivoting, and working with JSON data inside the database.
Recursive CTEs
UNION / INTERSECT
Pivoting
JSON
14
Security & Administration
Managing users and permissions with GRANT and REVOKE, preventing SQL injection, and backing up and restoring a database.
GRANT / REVOKE
SQL Injection
Backups
What You Can Do After This Course
By the end of the curriculum you'll have shipped five real projects and covered the
core of what a data analyst, backend developer, or database administrator role
expects. Concretely, you'll be able to:
Query data confidently — retrieve, filter, sort, transform, and summarize data from any relational database.
Combine data across tables — write joins, subqueries, and CTEs to answer questions that span multiple tables.
Do real analysis — use window functions to rank, compare, and compute running totals directly in SQL.
Change data safely — insert, update, and delete records inside transactions, and reason about isolation and locking.
Design a clean schema — create tables with the right keys and constraints, and normalize them to avoid duplicate and inconsistent data.
Make slow queries fast — read execution plans, add the right indexes, and rewrite queries that don't scale.
Build database-backed logic — package reusable logic into views, stored procedures, and triggers, and work with JSON when needed.
Protect your data — manage permissions, prevent SQL injection, and back up and restore a database.