Start Here
Onboarding and setup
Quick Start Guide
Environment setup, workflow, and first queries.
Foundations Practice
Short guided exercises to warm up.
Query Fundamentals
Core SQL building blocks
Foundations Lab
Schema basics, SELECTs, and filtering.
Single-Table Queries
Filtering, sorting, and projections.
Set and Nested Queries
UNION, INTERSECT, and subqueries.
Aggregation and GROUP BY
COUNT, SUM, GROUP BY, HAVING.
CASE Expressions
Conditional logic in queries.
Relationships and Joins
Working across tables
Join Strategies
INNER, LEFT, and multi-step joins.
Foreign Keys
Constraints and referential integrity.
Multi-Table Queries
Joining more than two relations.
Windowing and Advanced SQL
Power features
Window + Recursive Queries
Analytics, ranking, and recursion.
Advanced SQL Techniques
Patterns, CTEs, and optimization.
Query Patterns
CASE vs CTEs and query comparisons.
Cursors
Procedural control in SQL.
Modeling and Design
Structure, constraints, and reuse
Views
Reusable query layers.
Normalization
Normal forms and schema quality.
Transactions and Triggers
Reliability and automation
Transactions
ACID behavior and transaction blocks.
Isolation Levels
Concurrency control and anomalies.
Triggers
Automated actions on data changes.
Bank Trigger Case Study
End-to-end trigger example.
Database Programming
Connecting apps to SQL
Python Interface
Connect, query, and iterate results.
Java Interface Part 1
JDBC fundamentals and setup.
Java Interface Part 2
Prepared statements and queries.
Java Interface Part 3
Transactions and advanced usage.
Node.js Interface
Async query flows in Node.
ORM Basics
Mapping objects to relations.
Callback Coordination
Managing multiple DB callbacks.
NoSQL and Beyond
Alternative data models
JSON and XML
Document data handling.
MongoDB
Collections, queries, and aggregations.
Neo4j
Graph queries and relationships.
Notebooks and Samples
Hands-on references
MySQL with Jupyter
Interactive SQL notebook.
ROLLUP Notebook
Aggregation patterns in practice.
Triggers Notebook
Trigger examples in a notebook.
Lab 6 Sample
Listing databases in MySQL.
Lab 7 Sample
Browser-based example.
Lab 8 Sample
Express-based example.
Archive
Legacy and reference
Lab 2 Original Backup
Historical reference.
Lab 8 Legacy
Archived material.
Lab 9 Legacy
Archived material.
Lecture Example 1
Older lecture demo.
Old Materials
Legacy archive index.