Skip to content
Maestro

SQL para gente de datos: piensa en tablas, no en hojas de cálculo

Al terminar, podrás leer, escribir y depurar consultas SQL de varios pasos que filtran, unen y resumen datos reales, y explicar qué hace cada parte con los términos correctos.

Avanzas a tu ritmo, con tu Maestro que te acompaña en todo el curso: le preguntas lo que quieras y también te pregunta a ti.

59 habilidades · 7 módulos

$25 USD

Incluye tu Maestro para acompañarte 1:1 en todo el curso.

Pregúntale algo a tu Maestro ahora

¿Qué vas a poder hacer al terminar?

Cada recuadro es una habilidad. Abajo está la base, reconocer y explicar, y de ahí vas subiendo hasta construir lo tuyo y juzgar qué funciona y por qué.

  1. Evaluar

    • Choose whether a step belongs in SQL or in Python, R or Excel, and justify the choice

      Dónde lo enseño: Crear y cambiar datos · ¿SQL, o Python, R o Excel?

      Se apoya en:

      • Explain that SQL is declarative: you describe the result you want and the DBMS decides how to get it
      • Explain how a database table differs from a DataFrame: it lives in the database, not in your session's memory
      • Summarize per group with GROUP BY
      • Combine two tables with INNER JOIN on a key

      Tu Maestro te pide juzgar cuándo conviene y por qué y, cuando lo haces, lo guarda como evidencia.

  2. Sintetizar

    • Design a multi-step query with CTEs that filters, joins and summarizes to answer a question

      Dónde lo enseño: Consultas más grandes · Proyecto final: una consulta de varios pasos

      Se apoya en:

      • Break a query into named steps with WITH (common table expressions)
      • Join three or more tables in one query by following the schema's keys
      • Filter groups by an aggregate with HAVING

      Tu Maestro te pide construir algo propio con ello y, cuando lo haces, lo guarda como evidencia.

  3. Analizar

    • Trace the logical order in which a query's clauses run (FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY, LIMIT) to predict what each clause can see

      Dónde lo enseño: Preguntarle cosas a una tabla · El orden en que realmente se ejecutan las cláusulas

      Se apoya en:

      • Filter rows with WHERE using comparison operators
      • Sort results with ORDER BY on one or more columns, ascending or descending
      • Compute new columns with expressions and rename result columns with AS
      • Explain that SQL is declarative: you describe the result you want and the DBMS decides how to get it

      Tu Maestro te pide descomponer un problema con ello y, cuando lo haces, lo guarda como evidencia.

    • Diagnose a failing query from its error message (unknown column, syntax error, alias used too early)

      Dónde lo enseño: Preguntarle cosas a una tabla · Leer mensajes de error

      Se apoya en:

      • Trace the logical order in which a query's clauses run (FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY, LIMIT) to predict what each clause can see

      Tu Maestro te pide descomponer un problema con ello y, cuando lo haces, lo guarda como evidencia.

    • Diagnose a GROUP BY error caused by a selected column that is neither grouped nor aggregated

      Dónde lo enseño: Resumir datos · GROUP BY: una fila de resumen por grupo

      Se apoya en:

      • Summarize per group with GROUP BY
      • Trace the logical order in which a query's clauses run (FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY, LIMIT) to predict what each clause can see

      Tu Maestro te pide descomponer un problema con ello y, cuando lo haces, lo guarda como evidencia.

    • Decide whether a filter belongs in WHERE or HAVING based on when each runs

      Dónde lo enseño: Resumir datos · HAVING vs. WHERE

      Se apoya en:

      • Filter groups by an aggregate with HAVING
      • Trace the logical order in which a query's clauses run (FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY, LIMIT) to predict what each clause can see

      Tu Maestro te pide descomponer un problema con ello y, cuando lo haces, lo guarda como evidencia.

    • Diagnose inflated totals caused by joining a one-to-many table before aggregating

      Dónde lo enseño: Combinar tablas · Predecir el número de filas, y totales que crecen

      Se apoya en:

      • Predict how a join changes the row count with one-to-one, one-to-many and many-to-many relationships
      • Summarize per group with GROUP BY

      Tu Maestro te pide descomponer un problema con ello y, cuando lo haces, lo guarda como evidencia.

    • Predict how a join changes the row count with one-to-one, one-to-many and many-to-many relationships

      Dónde lo enseño: Combinar tablas · Predecir el número de filas, y totales que crecen

      Se apoya en:

      • Combine two tables with INNER JOIN on a key
      • Explain what a primary key is: the column or columns whose values uniquely identify each row and are never NULL

      Tu Maestro te pide descomponer un problema con ello y, cuando lo haces, lo guarda como evidencia.

  4. Aplicar

    • Run a query from a SQL client and read the result set it shows

      Dónde lo enseño: Tu primera consulta · Conéctate y ejecuta tu primera consulta

      Se apoya en:

      • Distinguish the database, the DBMS (engine) that manages it, and the client tool used to talk to it
      • Explain what a database connection is and what connection details (host, database, user, credentials) specify
      • Explain what a query is: a statement sent to the DBMS that asks for data and gets back a result

      Tu Maestro te pide usarlo en un caso nuevo y, cuando lo haces, lo guarda como evidencia.

    • Write a SELECT that returns chosen columns from a table

      Dónde lo enseño: Tu primera consulta · SELECT: elige las columnas que quieres

      Se apoya en:

      • Run a query from a SQL client and read the result set it shows
      • Name the parts of a table: table, row (record), column (field) and value

      Tu Maestro te pide usarlo en un caso nuevo y, cuando lo haces, lo guarda como evidencia.

    • Compute new columns with expressions and rename result columns with AS

      Dónde lo enseño: Qué hay realmente en una tabla · Columnas calculadas y AS

      Se apoya en:

      • Write a SELECT that returns chosen columns from a table
      • Explain why each column has one data type and recognize common SQL types (integer, decimal, text, date, boolean)

      Tu Maestro te pide usarlo en un caso nuevo y, cuando lo haces, lo guarda como evidencia.

    • Reference a table by its qualified name (schema.table) to say exactly which table you mean

      Dónde lo enseño: Qué hay realmente en una tabla · Esquemas: la palabra con dos significados

      Se apoya en:

      • Explain the two meanings of schema: a table's structure and a namespace that groups tables

      Tu Maestro te pide usarlo en un caso nuevo y, cuando lo haces, lo guarda como evidencia.

    • Use a schema diagram (ERD) to identify tables, their keys and how the tables relate

      Dónde lo enseño: Qué hay realmente en una tabla · Leer un diagrama de esquema

      Se apoya en:

      • Explain what a primary key is: the column or columns whose values uniquely identify each row and are never NULL
      • Explain what a foreign key is and how it relates rows in one table to rows in another

      Tu Maestro te pide usarlo en un caso nuevo y, cuando lo haces, lo guarda como evidencia.

    • Filter rows with WHERE using comparison operators

      Dónde lo enseño: Preguntarle cosas a una tabla · WHERE: quédate solo con las filas que quieres

      Se apoya en:

      • Write a SELECT that returns chosen columns from a table

      Tu Maestro te pide usarlo en un caso nuevo y, cuando lo haces, lo guarda como evidencia.

  5. Comprender

    • Distinguish the database, the DBMS (engine) that manages it, and the client tool used to talk to it

      Dónde lo enseño: Tu primera consulta · Base de datos, DBMS, cliente: tres cosas a las que la gente llama "la base de datos"

      Se apoya en:

      • Define a relational database as an organized collection of related tables managed by software

      Tu Maestro te pide explicarlo con tus palabras y, cuando lo haces, lo guarda como evidencia.

    • Explain how a database table differs from a spreadsheet: no row order, one type per column, no cell addresses

      Dónde lo enseño: Tu primera consulta · Las tablas no son hojas de cálculo

      Se apoya en:

      • Name the parts of a table: table, row (record), column (field) and value

      Tu Maestro te pide explicarlo con tus palabras y, cuando lo haces, lo guarda como evidencia.

    • Explain how a database table differs from a DataFrame: it lives in the database, not in your session's memory

      Dónde lo enseño: Tu primera consulta · Las tablas tampoco son DataFrames

      Se apoya en:

      • Name the parts of a table: table, row (record), column (field) and value

      Tu Maestro te pide explicarlo con tus palabras y, cuando lo haces, lo guarda como evidencia.

    • Explain that a SELECT returns a result set that is shown, not stored or assigned to a variable, unless you save it

      Dónde lo enseño: Tu primera consulta · Qué es una consulta, y por qué no se guarda nada

      Se apoya en:

      • Explain what a query is: a statement sent to the DBMS that asks for data and gets back a result
      • Explain how a database table differs from a DataFrame: it lives in the database, not in your session's memory

      Tu Maestro te pide explicarlo con tus palabras y, cuando lo haces, lo guarda como evidencia.

    • Explain what a query is: a statement sent to the DBMS that asks for data and gets back a result

      Dónde lo enseño: Tu primera consulta · Qué es una consulta, y por qué no se guarda nada

      Se apoya en:

      • Define a relational database as an organized collection of related tables managed by software

      Tu Maestro te pide explicarlo con tus palabras y, cuando lo haces, lo guarda como evidencia.

    • Explain what a database connection is and what connection details (host, database, user, credentials) specify

      Dónde lo enseño: Tu primera consulta · Conéctate y ejecuta tu primera consulta

      Se apoya en:

      • Distinguish the database, the DBMS (engine) that manages it, and the client tool used to talk to it

      Tu Maestro te pide explicarlo con tus palabras y, cuando lo haces, lo guarda como evidencia.

  6. Recordar

    • Define a relational database as an organized collection of related tables managed by software

      Dónde lo enseño: Tu primera consulta · Base de datos, DBMS, cliente: tres cosas a las que la gente llama "la base de datos"

      Tu Maestro te pide reconocerlo y recordarlo y, cuando lo haces, lo guarda como evidencia.

    • Name the parts of a table: table, row (record), column (field) and value

      Dónde lo enseño: Tu primera consulta · Las tablas no son hojas de cálculo

      Se apoya en:

      • Define a relational database as an organized collection of related tables managed by software

      Tu Maestro te pide reconocerlo y recordarlo y, cuando lo haces, lo guarda como evidencia.

¿Para quién es este curso?

Para personas que ya trabajan con datos en Excel, R o Python y quieren aprender SQL desde cero, empezando por qué es realmente una base de datos. Vas de tu primer SELECT a joins, CTE y la modificación de datos, practicando en DuckDB en las páginas del curso.

Pregúntale a tu Maestro

Tu Maestro es una IA que conoce cada curso, página por página. Pruébalo aquí gratis, en el curso gratis "Funciones de ventana en SQL".

Ejemplo

Tú: ¿Por dónde empiezo?

Tu Maestro: Por lo que ya sabes. Cuéntame qué has hecho con datos y empiezo esta página desde ahí.

Pregunta sobre: Responde desde la página "¿Qué diferencia hay entre PARTITION BY y GROUP BY?"

Solo este navegador guarda lo que preguntas aquí. ¿Cómo funciona?

Lo que vamos a ver

  1. Tu primera consulta

    1. Bienvenida: SQL para quienes ya trabajan con datosconsulta
    2. Base de datos, DBMS, cliente: tres cosas a las que la gente llama "la base de datos"
    3. Las tablas no son hojas de cálculo
    4. Las tablas tampoco son DataFrames
    5. Qué es una consulta, y por qué no se guarda nada
    6. Conéctate y ejecuta tu primera consulta
    7. SELECT: elige las columnas que quieres
  2. Qué hay realmente en una tabla

    1. Tipos, y el valor que no está: NULL
    2. Columnas calculadas y AS
    3. Esquemas: la palabra con dos significados
    4. Llaves primarias y llaves foráneas
    5. Leer un diagrama de esquema
    6. Leer vs. escribir, y por qué SQL es declarativo
    7. Glosario: las palabras hasta ahoraconsulta
  3. Preguntarle cosas a una tabla

    1. WHERE: quédate solo con las filas que quieres
    2. IN, BETWEEN y LIKE
    3. Filtrar NULL: IS NULL, no = NULL
    4. ORDER BY, LIMIT y DISTINCT
    5. El orden en que realmente se ejecutan las cláusulas
    6. Leer mensajes de error
  4. Resumir datos

    1. Funciones de agregación, y los tres tipos de COUNT
    2. Cómo cambia NULL una agregación
    3. GROUP BY: una fila de resumen por grupo
    4. HAVING vs. WHERE
    5. De tablas dinámicas, dplyr y pandas a GROUP BY
  5. Combinar tablas

    1. Cómo funcionan los joins (y por qué no son VLOOKUP)
    2. INNER JOIN y alias de tabla
    3. LEFT JOIN: conserva todas las filas de la izquierda
    4. Predecir el número de filas, y totales que crecen
    5. Unir tres o más tablas
  6. Consultas más grandes

    1. CASE WHEN: columnas condicionales y conteos condicionales
    2. Subconsultas: una consulta dentro de otra
    3. CTE: ponle nombre a tus pasos con WITH
    4. Leer la consulta de otra persona
    5. Proyecto final: una consulta de varios pasos
  7. Crear y cambiar datos

    1. CREATE TABLE e INSERT
    2. Conservar un resultado: tablas y vistas
    3. UPDATE y DELETE, con seguridad
    4. ¿SQL, o Python, R o Excel?
    5. Lo que sigueconsulta

¿Cuánto tiempo toma?

Entre 2 y 3 horas

Es una guía: vas a tu ritmo, y el curso te espera donde lo dejaste.

Preguntas frecuentes

¿Este curso de SQL es para principiantes absolutos?
Es para personas que ya trabajan con datos en Excel, R o Python, y enseña SQL desde cero, empezando por qué es realmente una base de datos. Vas de tu primer SELECT a filtros, agrupaciones y joins, hasta CTE, CASE WHEN y la creación y modificación de datos. Practicas en DuckDB, directamente en las páginas del curso.
¿Cuál es la diferencia entre una tabla y una hoja de cálculo?
Una hoja de cálculo tiene direcciones de celda, deja las filas donde las pones y acepta cualquier cosa en cualquier celda. Una tabla no tiene orden de filas, cada columna guarda un solo tipo y señalas un valor por lo que es, no por dónde está. El curso empieza aquí y enseña los términos correctos: base de datos, DBMS, cliente, NULL, esquemas y llaves.
¿Me sirve con mi base de datos, no con DuckDB?
Casi todo, sí. Practicas en DuckDB en las páginas del curso, y la mayor parte de lo que aprendes se aplica sin cambios. Cada motor tiene sus detalles: cómo te conectas, cómo se nombran las tablas, algunos tipos y funciones. Las páginas señalan dónde difieren PostgreSQL o SQLite, y tu Maestro puede traducir una consulta a SQLite, PostgreSQL, BigQuery, Snowflake o Databricks.
¿Necesito un curso o puedo aprender esto por mi cuenta?
Puedes aprenderlo por tu cuenta. El curso te da un camino ordenado de tu primer SELECT a los CTE, consultas que corres en cada página y tu Maestro para resolver tus dudas. ¿No sabes si te conviene? Empieza por un curso gratis, como Tu IA y tus datos. Si no es para ti, tienes 7 días para pedir reembolso.

Lo que recibes

  • 7 módulos y 40 páginas, todo abierto para cuando quieras.
  • Tu Maestro para todo el curso, que siempre sabe en qué página vas: lo abres desde ahí.

  • Trabaja con las habilidades de este curso, las de arriba.

  • Si le preguntas cómo vas, te dice lo que ya demostraste y qué sigue.

Quién te va a enseñar

Sergio Sánchez

Soy Sergio, chekos en el internet. Soy arquitecto de datos y llevo más de diez años trabajando con datos en el Área de la Bahía, casi siempre en organizaciones con una misión social: primero en investigación de políticas públicas, luego en educación y ahora en servicios para la primera infancia. Crecí en Tijuana. En 2018 empecé tacosdedatos para compartir lo que iba aprendiendo, y desde entonces ha sido blog, podcast, cursos, guías y comunidad. Hoy paso buena parte de mi tiempo construyendo con agentes de IA y escribiendo sobre cómo organizo mi trabajo alrededor de ellos. Yo comparto lo que he aprendido; tú tomas lo que te sirva y lo haces tuyo.

Nos vemos en el curso

SQL para gente de datos: piensa en tablas, no en hojas de cálculo