Focused Lab Topics

Browse labs by learning focus. Each section links to a single, well-scoped topic so students can zero in on one skill at a time.

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.