Ir al contenido
wannacode

Bases de datos y SQL

Casi todo programa guarda datos: pedidos, usuarios, mensajes, pagos. Este curso trata de dónde y cómo. Empiezas por tu primera consulta sobre una base de datos real de una tienda y llegas al diseño, las transacciones, los índices, la conexión desde el código y la pregunta de qué base de datos sirve para cada trabajo.

Las consultas se ejecutan aquí, en el navegador: cada campo de código es una base de datos SQLite real. Escribes, pulsas «Ejecutar» y ves el resultado. No hay que instalar nada. Al final hay un módulo sobre los otros tipos de bases de datos (documentos, clave-valor, flujos de eventos, grafos, columnares, búsqueda, vectores), también con simuladores en vivo.

El curso está dividido en módulos, y cada módulo en lecciones cortas. Una lección es una serie de tarjetas, una idea por tarjeta: una pregunta del trabajo real, la consulta que la responde y una tarea pequeña que compruebas al instante. Tu respuesta se compara con el resultado correcto sobre la misma base de datos, y el error de SQLite se explica con palabras sencillas.

Cada módulo usa solo lo que han mostrado los anteriores. Tu progreso se guarda en tu navegador.

Módulo 0

Bienvenida a las bases de datos

3 lecciones · qué es una base de datos, tablas, la primera consulta

  1. Por qué una base de datos
  2. La tienda
  3. SQL y las bases de datos reales

Módulo 1

Leer datos

5 lecciones · SELECT, WHERE, ORDER BY, LIMIT, NULL

  1. SELECT: elegir columnas
  2. WHERE: filtrar filas
  3. IN, BETWEEN y LIKE
  4. NULL: sin valor
  5. ORDER BY, LIMIT y DISTINCT

Módulo 2

Expresiones y funciones

4 lecciones · cálculos, texto, fechas, CASE

  1. Aritmética en una consulta
  2. Funciones de texto
  3. Funciones de fecha
  4. CASE y los valores que faltan

Módulo 3

Resumir

4 lecciones · COUNT, SUM, AVG, GROUP BY, HAVING

  1. Funciones de agregación: COUNT, SUM, AVG
  2. GROUP BY: un informe por grupos
  3. HAVING: una condición para los grupos
  4. El orden de ejecución de una consulta

Módulo 4

Unir tablas

5 lecciones · claves, JOIN, LEFT JOIN, UNION

  1. Clave primaria y clave foránea
  2. JOIN: dos tablas en una consulta
  3. LEFT JOIN: también las filas sin pareja
  4. Muchas tablas, y una tabla unida consigo misma
  5. UNION, INTERSECT, EXCEPT y CROSS JOIN

Módulo 5

Subconsultas y ventanas

5 lecciones · subconsultas, WITH, árboles, funciones de ventana

  1. Subconsultas
  2. Subconsultas correlacionadas
  3. Un informe por pasos: WITH
  4. Árboles y secuencias: WITH RECURSIVE
  5. Funciones de ventana

Módulo 6

Cambiar los datos

4 lecciones · INSERT, UPDATE, DELETE, UPSERT

  1. INSERT: insertar filas
  2. UPDATE: cambiar valores
  3. DELETE: borrar filas
  4. Upsert: insertar o cambiar

Módulo 7

Tablas y reglas

6 lecciones · CREATE DATABASE y DROP, CREATE TABLE, tipos, claves, vistas

  1. La base de datos: de CREATE a DROP
  2. CREATE TABLE: crear una tabla
  3. Restricciones: reglas para los datos
  4. Claves foráneas: vínculos entre tablas
  5. ALTER TABLE: cambiar una tabla
  6. Vistas

Módulo 8

Diseñar una base de datos

4 lecciones · relaciones, diagramas ER, normalización

  1. Tipos de relación: 1:1, 1:N, M:N
  2. Diagrama ER: de la descripción al esquema
  3. Normalización
  4. Claves naturales y desnormalización

Módulo 9

Transacciones

4 lecciones · ACID, BEGIN y COMMIT, acceso simultáneo, triggers

  1. ACID: todo o nada
  2. BEGIN, COMMIT, ROLLBACK
  3. Transacciones simultáneas
  4. Triggers

Módulo 10

Índices y velocidad

4 lecciones · índices, plan de consulta, consultas lentas

  1. Índices
  2. EXPLAIN: el plan de la consulta
  3. Índices de varias columnas
  4. Consultas lentas

Módulo 11

La base de datos en el programa

5 lecciones · conexión desde el código, parámetros, inyección SQL, ORM, migraciones

  1. Conectarse a la base de datos desde el código
  2. Inyección SQL y parámetros
  3. ORM y el problema N+1
  4. Migraciones del esquema
  5. Pools de conexiones, copias de seguridad y permisos

Módulo 12

Tipos de bases de datos

10 lecciones · documentos, clave-valor, eventos, grafos, columnares, búsqueda, vectores

  1. OLTP y OLAP
  2. Clave-valor y la caché
  3. Bases de datos documentales
  4. Flujos de eventos
  5. Bases de datos de grafos
  6. Bases de datos columnares y series temporales
  7. Buscar en el texto
  8. Buscar por significado
  9. Replicación, sharding y CAP
  10. Cómo elegir una base de datos

Módulo 13

Proyecto: la panadería desde cero

6 lecciones · toda la base de datos, de CREATE TABLE a DROP

  1. La panadería, etapa 1: la base de datos y las tablas
  2. La panadería, etapa 2: los datos
  3. La panadería, etapa 3: las preguntas
  4. La panadería, etapa 4: los cambios
  5. La panadería, etapa 5: la base trabaja sola
  6. La panadería, etapa 6: el informe, la copia y DROP

Creado por Ivo Gergov como parte de la campaña de Evo Tech por una educación accesible en programación ·