Fundamentos del lenguaje
23 pasos en 5 series de SQL.
SELECT y todo lo que lo rodea de inmediato. Elegir filas, ordenar y paginar, filtrar con los operadores que SQL te da, y luego crear tablas y meterles filas.
Veintitrés pasos. Escritos y verificados contra SQLite, así que cada consulta de aquí corrió de verdad contra un esquema real antes de llegar a ti.
Selección de filas
- Columnas con SELECTLa forma de toda consulta: elegir columnas, nombrar una tabla, poner alias al resultado.
- SELECT *El asterisco está bien en un prompt y es un riesgo en código que debe seguir funcionando.
- Columnas calculadasLa lista de un SELECT admite expresiones, no solo nombres de columnas.
- Filtrar con WHEREWHERE conserva solo las filas cuya condición se cumple.
- Valores con DISTINCTDISTINCT colapsa las filas duplicadas en una sola.
Orden y paginación
- Ordenar y limitarORDER BY ordena el resultado; LIMIT lo recorta a las primeras filas.
- Ordenar por varias clavesCada clave de orden rompe los empates de la anterior.
- Páginas con LIMIT y OFFSETPaginar sin ORDER BY devuelve las filas en el orden que se le antoje al motor.
Filtrado
- AND, OR y paréntesisCombinar condiciones: los paréntesis hacen explícita la precedencia.
- IN y BETWEENPertenencia a un conjunto y rangos inclusivos, sin una pila de cláusulas OR.
- Patrones con LIKELIKE compara texto contra un patrón de comodines.
- NULL no es un valorNULL significa desconocido, así que pide IS en lugar del signo igual.
- Negar una condiciónNOT se lee bien hasta que llegan los NULL, y entonces descarta filas en silencio.
Tablas y filas
- CREATE TABLELa definición de una tabla: columnas, tipos y las restricciones que los cuidan.
- Claves foráneasUna clave foránea ata cada fila hija al padre al que pertenece.
- Tipos y CASTEl tipo declarado de una columna es una promesa de almacenamiento, no siempre un muro.
- Filas con INSERTINSERT agrega filas; una lista VALUES por fila.
- INSERT desde una consultaLas filas a insertar pueden venir de una consulta en lugar de una lista VALUES.
- UPDATE con filtroUPDATE reescribe columnas en las filas que WHERE encuentra — todas si lo olvidas.
- Borrar filas con DELETEDELETE elimina filas enteras; no hay deshacer fuera de una transacción.
- RETURNING: las filas que cambiasteRETURNING devuelve las filas que tocó una escritura, ids generados incluidos.
Bis
- schema_setup.sqlUna migración completa: eliminar, crear, indexar y sembrar el esquema de una tienda pequeña.
- library_schema.sqlUn esquema pequeño desde cero: tres tablas, las reglas entre ellas y dos reportes.