🎯 DDL vs DML

Guía completa para decidir qué tipo de cambios necesitas

DDL - Data Definition Language

¿Estoy cambiando la ESTRUCTURA?

  • ❓ ¿Agregué/eliminé COLUMNAS?
  • ❓ ¿Cambié TIPOS DE DATOS?
  • ❓ ¿Creé/modifiqué TABLAS?
  • ❓ ¿Creé/modifiqué VISTAS?
  • ❓ ¿Creé/eliminé ÍNDICES?
  • ❓ ¿Cambié PARTICIONES?
✅ SI respondiste SÍ a alguna → NECESITAS DDL

DML - Data Manipulation Language

¿Estoy cambiando solo los DATOS?

  • ❓ ¿Solo modifico cómo INSERTO datos?
  • ❓ ¿Solo cambio cómo ACTUALIZO datos?
  • ❓ ¿Solo cambio FILTROS/WHERE?
  • ❓ ¿Solo cambio CÁLCULOS?
  • ❓ ¿Solo cambio JOINS?
  • ❓ ¿Solo cambio fuentes de datos?
✅ SI respondiste SÍ a alguna → SOLO DML

📊 Matriz de Decisión Práctica

Mi Cambio ¿DDL? ¿DML? Ejemplo
Agregar campo ✅ SÍ ✅ SÍ ALTER TABLE + SELECT nuevo_campo
Eliminar campo ✅ SÍ ✅ SÍ ALTER TABLE DROP + quitar del SELECT
Cambiar tipo ✅ SÍ ⚠️ Tal vez ALTER COLUMN TYPE
Cambiar cálculo ❌ NO ✅ SÍ Solo cambiar CAST(campo*2)
Cambiar filtro ❌ NO ✅ SÍ Solo cambiar WHERE
Cambiar JOIN ❌ NO ✅ SÍ Solo cambiar FROM tabla_nueva
Crear vista ✅ SÍ ❌ NO CREATE VIEW
Crear índice ✅ SÍ ❌ NO CREATE INDEX

🚀 Proceso Rápido de 10 Segundos

1️⃣ Estructura

¿Cambié cuántos/qué campos tiene la tabla?

SÍ → Necesito DDL

2️⃣ Procesamiento

¿Cambié cómo proceso/calculo los datos?

SÍ → Necesito DML

3️⃣ Ambos

¿Cambié estructura Y procesamiento?

SÍ → Necesito DDL + DML

💡 Ejemplos Prácticos

🔄 CASO A: Solo DML

# ANTES SELECT campo1, CAST(campo2 AS INT) FROM tabla # DESPUÉS SELECT campo1, CAST(campo2 AS DECIMAL) FROM tabla
📊 Solo cambio el cálculo → Solo DML

🆕 CASO B: DDL + DML

# ANTES SELECT campo1, campo2 FROM tabla # DESPUÉS SELECT campo1, campo2, campo_nuevo FROM tabla
🏗️ Nuevo campo → DDL + DML

⚡ CASO C: Solo DDL

-- Agregar índice para performance CREATE INDEX idx_fecha ON tabla(fecha);
🏗️ Solo estructura → Solo DDL

🎯 Preguntas Master

🏗️ DDL

"¿Estoy cambiando QUÉ CAMPOS tiene la tabla/vista?"

✅ SÍ → DDL

📊 DML

"¿Estoy cambiando CÓMO se llenan los campos existentes?"

✅ SÍ → DML