Qué es el query builder
El query builder de Laravel es un mecanismo para construir y ejecutar consultas de base de datos mediante una interfaz fluida. Se parte deDB::table() y se encadenan métodos para armar la consulta.
El query builder funciona con todas las bases de datos soportadas por Laravel (MySQL, MariaDB, PostgreSQL, SQLite, SQL Server). Puedes cambiar de motor sin modificar el código.
Query builder frente a Eloquent
Obtener datos
Todos los registros
get() devuelve una Illuminate\Support\Collection. Cada registro es un stdClass de PHP.
Un solo registro
Lista de valores de una columna
Procesar grandes volúmenes por partes
Streaming (LazyCollection)
Agregados
Comprobar existencia de registros
Cláusula SELECT
Cláusula WHERE
Condiciones básicas
Agrupar condiciones
whereIn / whereBetween / whereNull
whereLike (coincidencia de patrón)
whereAny / whereAll (misma condición en varias columnas)
whereNullSafeEquals (igualdad NULL-safe)
whereNullSafeEquals y orWhereNullSafeEquals comparan una columna con un valor tratando dos NULL como iguales.
Con el operador = normal, NULL = NULL es false; en cambio whereNullSafeEquals considera NULL igual a NULL. Se corresponde con <=> en MySQL y con IS NOT DISTINCT FROM en PostgreSQL.
where('column', null) se convierte en WHERE column IS NULL, pero whereNullSafeEquals('column', $value) se comporta de la misma manera independientemente de que el valor bindeado sea null o no. Es especialmente útil cuando el valor de entrada del usuario puede ser null.JOIN
JOIN con subconsulta
Orden, agrupación y límites
Subconsultas
Expresiones Raw
INSERT / UPDATE / DELETE
INSERT
UPSERT (INSERT o UPDATE)
UPDATE
DELETE
Consultas condicionales (when)
Para aplicar condiciones dinámicamente, when() mantiene el código limpio.
Depuración
Resumen
Métodos habituales
Métodos habituales
Query builder frente a Eloquent
Query builder frente a Eloquent
El query builder es más bajo nivel: devuelve
stdClass en lugar de instancias de modelo.
Cuando no necesitas relaciones ni observers, el query builder es más sencillo y rápido.