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:
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
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:
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 :
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:
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 :
Truco de oficio: antes de un
UPDATEo unDELETE, corre unSELECTcon el mismoWHERE. 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
:
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.
2. Cambia el email de C004 a luis.torres@empresa.ec sin tocar a nadie
más.
3. Borra a los clientes de Esmeraldas menores de 30 años. Mira primero
cuántos son con un SELECT.
