Rullst AcademyRullst Academy/Lección
Bases de datos y SQL I · Lección 06 / 12

Cambiar sin perder el objetivo

Predecir el alcance de UPDATE y DELETE, probar y deshacer.

Rutas de aprendizaje16 min

Vamos a descubrir juntos

  1. 1

    Antes de cambiar, usa SELECT con la condición y revisa ids y cantidad. label = Orbit encuentra dos filas; id = 1 identifica una. Elige según el problema, no la primera fila visual.

  2. 2

    UPDATE cambia columnas; DELETE elimina filas. Sin WHERE pueden afectar toda la tabla. DELETE no elimina la definición: DROP TABLE es diferente. Practica solo en la base ficticia.

  3. 3

    El ejemplo inicia BEGIN, cambia id 1, consulta y usa ROLLBACK. La última consulta muestra el valor anterior. COMMIT requiere revisar; las operaciones reales también necesitan recuperación.

  4. 4

    Para practicar DELETE, inserta un registro sin préstamos y elimina solo su id. La FK impide eliminar materiales con dependencias, incluso préstamos devueltos. Prueba y explica el error.

Tu mesa de datos

Nuestro modelo: kits.id ← loans.kit_id. Un material puede tener varios préstamos; nombres pueden repetirse. Solo usamos datos ficticios.

Predice antes de abrir la referencia. Muestra salida verificada del ejemplo original, no ejecuta tu texto. Ejecuta cambios con el kit en tu computadora.

-- Cambiar sin perder el objetivo
BEGIN;
SELECT id, stock FROM kits WHERE id=1;
UPDATE kits SET stock=4 WHERE id=1;
SELECT id, stock FROM kits WHERE id=1;
ROLLBACK;
SELECT id, stock FROM kits WHERE id=1;
Comparar con la salida de referencia
[
  {
    "columns": [
      "id",
      "stock"
    ],
    "rows": [
      [
        1,
        3
      ]
    ]
  },
  {
    "columns": [
      "id",
      "stock"
    ],
    "rows": [
      [
        1,
        4
      ]
    ]
  },
  {
    "columns": [
      "id",
      "stock"
    ],
    "rows": [
      [
        1,
        3
      ]
    ]
  }
]

Ejecuta el comando en la carpeta extraída. Usa python3 en macOS/Ubuntu o py si es tu launcher Windows. Cada ejecución empieza en memoria; lee README.md para guardar archivos y practicar recuperación.

python lab.py run lesson.sql
Mis archivos y GitHub

El editor guarda tu borrador .sql en este navegador. Descárgalo y sustituye lesson.sql en el kit; en el proyecto final, availability.sql. El ZIP conserva el modelo original. GitHub envía solo el archivo confirmado, sin ejecutar SQL ni enviar la base.

Enlaces oficiales y siguiente paso

✦
TU MISIÓN

Predecir el alcance de UPDATE y DELETE, probar y deshacer.

Ahora te toca

Taller de descubrimientos

Lee, predice y comprueba

Predecir el alcance de UPDATE y DELETE, probar y deshacer.
Prepara tus respuestas y comprueba cuando estés listo.
Una pausa para entender

¿Cómo verificar el objetivo antes de actualizar?

Necesito una pista

UPDATE cambia columnas; DELETE elimina filas. Sin WHERE pueden afectar toda la tabla. DELETE no elimina la definición: DROP TABLE es diferente. Practica solo en la base ficticia.

Cargando tu camino…

Llévatelo contigo

Cambia id 4 en una transacción, consulta antes/después y revierte. Explica por qué label puede afectar otro conjunto.

A tu ritmo

Mis archivos y GitHub

Cada lección puede convertirse en un registro propio: código, notas o un plan de práctica. Guardar un archivo en GitHub es opcional y no cambia tus XP.

Manual del alumno

El editor y las descargas se abren cuando esta lección esté disponible para tu cuenta. Revisa el acceso indicado abajo o vuelve al mapa de la ruta.

Comprobando tu acceso a esta lección…

Rullstpetbot

La IA puede equivocarse. Consulta el material de la lección.