Saltar al contenido

Fundamentos de SQL

El núcleo de las bases de datos relacionales: consultar, filtrar, unir, agregar y modificar datos, además de las sentencias de esquema y transacciones del día a día. SQL estándar que funciona en PostgreSQL, MySQL, SQLite y casi cualquier motor, salvo pequeñas diferencias de dialecto.

Imprime o guarda esta página como referencia sin conexión.

Consultar

ComandoDescripción
SELECT * FROM users;Devuelve todas las columnas y filas de una tabla.
SELECT name, email FROM users;Devuelve solo las columnas indicadas.
SELECT DISTINCT country FROM users;Devuelve valores únicos, eliminando duplicados.
SELECT COUNT(*) FROM users;Cuenta el número de filas.

Filtrar y ordenar

ComandoDescripción
WHERE age >= 18Conserva solo las filas que cumplen una condición.
WHERE name LIKE 'A%'Coincidencia de patrón: nombres que empiezan por A.
WHERE id IN (1,2,3)Coincide con cualquier valor de una lista.
ORDER BY created_at DESCOrdena las filas, más recientes primero.
LIMIT 10 OFFSET 20Devuelve 10 filas, saltando las 20 primeras (paginación).

Uniones

ComandoDescripción
INNER JOIN orders ON orders.user_id = users.idFilas con coincidencia en ambas tablas.
LEFT JOIN orders ON ...Todas las filas de la izquierda, más coincidencias (NULL si no hay).
COUNT(*) ... GROUP BY user_idAgrupa filas y agrega valores.
HAVING COUNT(*) > 5Filtra grupos tras la agregación.

Modificar datos

ComandoDescripción
INSERT INTO users (name) VALUES ('Ada');Añade una fila nueva.
UPDATE users SET active = true WHERE id = 1;Modifica filas existentes — siempre con WHERE.
DELETE FROM users WHERE id = 1;Elimina filas que cumplen una condición.
UPSERT / ON CONFLICT DO UPDATEInserta, o actualiza la fila si ya existe.

Esquema

ComandoDescripción
CREATE TABLE t (id INTEGER PRIMARY KEY, name TEXT);Define una tabla nueva y sus columnas.
ALTER TABLE t ADD COLUMN email TEXT;Añade una columna a una tabla existente.
CREATE INDEX idx ON t (email);Acelera las búsquedas por una columna.
FOREIGN KEY (user_id) REFERENCES users(id)Impone una relación entre dos tablas.

Transacciones

ComandoDescripción
BEGIN;Inicia una transacción.
COMMIT;Hace permanentes todos los cambios de la transacción.
ROLLBACK;Deshace todos los cambios desde BEGIN.
SAVEPOINT sp1;Marca un punto al que revertir parcialmente.

Pon esto en práctica en Android con el Gestor de bases de datos.