SQL

The standard language for querying and managing relational databases — required in nearly every technical and analytical role.

SQL (Structured Query Language) is the universal language for working with relational databases. It's required for backend engineers, data analysts, data scientists, and business analysts — and increasingly expected of product managers and operations roles. Proficiency ranges from basic SELECT queries to complex window functions, query optimization, and schema design.

Typical time to job-readiness: ~2 months.

Learning SQL

Beginner

Write SELECT statements with WHERE, GROUP BY, ORDER BY, and basic JOINs. Understand primary keys, foreign keys, and what indexes do before worrying about optimization.

Intermediate

Multi-table JOINs, subqueries, window functions (RANK, ROW_NUMBER, LAG/LEAD), and CTEs. Learn to read basic execution plans to understand why a query is slow.

Advanced

Design normalized schemas, optimize queries with indexes and rewrites, and understand transaction isolation levels. SQL take-home challenges are the most common data interview assessment format.

Key concepts

  • SELECT, WHERE, GROUP BY, ORDER BY, and HAVING — the core query structure
  • JOIN types: INNER, LEFT, RIGHT, FULL OUTER, and CROSS
  • Aggregate functions: COUNT, SUM, AVG, MIN, MAX
  • Window functions: ROW_NUMBER, RANK, LAG, LEAD, and running totals
  • CTEs (Common Table Expressions) with the WITH clause
  • Indexes — how they speed up reads and slow down writes

Common interview topics

  • Explain the difference between INNER JOIN, LEFT JOIN, and FULL OUTER JOIN
  • Write a query to find the second-highest salary in a table
  • What is a CTE and when would you use one instead of a subquery
  • Explain window functions with an example using ROW_NUMBER or LAG
  • How do indexes work and when should you add one
  • Explain GROUP BY with HAVING vs WHERE — what is the difference

Browse SQL jobs