SQL

Overview

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.