Clase 07 · 19 minGratis

INSERT, UPDATE y DELETE: manipular datos

Clase 7 del curso gratis SQL desde Cero: el lenguaje de manipulación de datos (DML). Cómo insertar registros, actualizarlos sin dañar la tabla y borrarlos con cuidado.

Toca cualquier marca ▸ 0:00 de los apuntes y el video salta a ese momento. Abrir en YouTube

Lo que ya sabes leer

Una consulta completa tiene esta forma, y las piezas van en este orden:

sql
SELECT columnas
FROM tabla
JOIN otra_tabla ON ...
WHERE condiciones
GROUP BY columnas
HAVING condiciones_de_grupo
ORDER BY columnas
LIMIT n;

Esta clase deja de leer y empieza a cambiar los datos. INSERT, UPDATE y DELETE forman el DML (Data Manipulation Language) .

En este editor puedes romper lo que quieras: Reiniciar base devuelve los cien clientes originales. En una base de verdad no existe ese botón. Ojo: si ejecutas dos veces el mismo INSERT, la segunda vez falla porque esa llave ya existe; reinicia y listo.

La tabla de práctica

Pruébalo · base clientes

id_cliente es la llave primaria y va de C001 a C100 . (Nuestra versión trae además una columna edad, que usamos en la clase 8.)

INSERT: agregar registros

INSERT INTO la tabla, las columnas entre paréntesis y, en el mismo orden, los valores:

Pruébalo · base clientes

Falla: C100 ya existe y una llave primaria no se repite . En un sistema real el código lo genera la aplicación, no una persona. Con uno nuevo funciona, y se pueden insertar varios registros a la vez :

Pruébalo · base clientes

El orden de los valores tiene que seguir el de las columnas que escribiste, no el de la tabla . La columna edad quedó en NULL porque no la nombramos.

UPDATE: el WHERE lo es todo

UPDATE tabla SET columna = valor WHERE condición. Todo lo que cumpla el WHERE se actualiza . Este es el ejemplo de lo que no hay que hacer:

Pruébalo · base clientes

Los dos clientes de Pasto perdieron su nombre: un WHERE demasiado general borró información valiosa . Lo correcto es identificar el registro por su llave primaria :

Pruébalo · base clientes

Truco de oficio: antes de un UPDATE o un DELETE, corre un SELECT con el mismo WHERE. Lo que te devuelva es exactamente lo que vas a cambiar.

DELETE: el comando más peligroso

DELETE FROM tabla WHERE condición. Sin WHERE, borra todos los registros . Siempre un DELETE va con un WHERE, y mejor si apunta a llaves primarias; con IN se borran varios a la vez :

Pruébalo · base clientes

Quedan los cien de siempre . En las empresas, muchos perfiles ni siquiera tienen permiso de borrar: así de serio es.

Retos de esta clase

1. Inserta dos clientes nuevos, C101 y C102, con los datos que quieras.

Reto · base clientes

2. Cambia el email de C004 a luis.torres@empresa.ec sin tocar a nadie más.

Reto · base clientes

3. Borra a los clientes de Esmeraldas menores de 30 años. Mira primero cuántos son con un SELECT.

Reto · base clientes

Sigue con la clase 8

Subconsultas y WITH

Seguir el canal de WhatsApp