El lenguaje de manipulación de datos (DML)
Mientras SELECT lee, estas tres sentencias modifican el contenido de
las tablas.
INSERT — añadir filas
INSERT INTO clientes (id, nombre, email, activo)
VALUES (4, 'Sara Vega', 'sara@example.com', 1);
Indicas la tabla, las columnas y los valores. Las columnas con DEFAULT o que
admiten NULL se pueden omitir.
UPDATE — cambiar filas existentes
UPDATE pedidos SET estado = 'pagado' WHERE id = 2;
⚠️ Sin
WHERE,UPDATEmodifica TODAS las filas. ElWHEREdecide qué filas se cambian.
DELETE — borrar filas
DELETE FROM pedidos WHERE estado = 'cancelado';
⚠️ Igual que
UPDATE: sinWHERE,DELETEvacía toda la tabla.
Restricciones (constraints)
Las restricciones se declaran en el CREATE TABLE y hacen que la base de
datos rechace datos inválidos, protegiendo la integridad:
| Restricción | Qué garantiza |
|---|---|
NOT NULL |
la columna no puede quedar vacía |
UNIQUE |
no se repite el valor (p. ej. un email) |
CHECK (cond) |
el valor cumple una condición (total >= 0) |
DEFAULT v |
valor por defecto si no se indica otro |
FOREIGN KEY |
el valor debe existir en la tabla referenciada |
CREATE TABLE pedidos (
id INTEGER PRIMARY KEY,
cliente_id INTEGER NOT NULL,
total REAL NOT NULL CHECK (total >= 0),
estado TEXT NOT NULL DEFAULT 'pendiente',
FOREIGN KEY (cliente_id) REFERENCES clientes(id)
);
Diseñar con restricciones significa que muchos errores se vuelven imposibles: no se cuela un pedido con total negativo, ni dos clientes con el mismo email, ni un pedido huérfano sin cliente.