Cos’è il Query Builder
Il Query Builder di Laravel offre un’interfaccia fluida per costruire ed eseguire query sul database. Parte daDB::table() e concatena i metodi.
Il Query Builder funziona su tutti i database supportati (MySQL, MariaDB, PostgreSQL, SQLite, SQL Server). Il codice non cambia cambiando database.
Quando usare il Query Builder o Eloquent
Recupero dei dati
Tutti i record
get() restituisce Illuminate\Support\Collection. Ogni record è uno stdClass.
Un solo record
Elenchi di colonne
Elaborazione a blocchi
Streaming (LazyCollection)
Aggregazioni
Verifica esistenza
SELECT
WHERE
Condizioni base
Raggruppamento
whereIn / whereBetween / whereNull
whereLike
whereAny / whereAll
whereNullSafeEquals
whereNullSafeEquals (e orWhereNullSafeEquals) confronta considerando due NULL come uguali.
L’operatore = normale rende NULL = NULL come false; con whereNullSafeEquals invece i NULL sono uguali. Corrisponde a <=> di MySQL e IS NOT DISTINCT FROM di PostgreSQL.
Il classico
where('column', null) diventa WHERE column IS NULL; whereNullSafeEquals('column', $value) funziona in modo coerente anche quando il valore associato è o non è null. Molto utile con input utente potenzialmente nullo.JOIN
JOIN con sottoquery
Ordinamento, raggruppamento, limit
Sottoquery
Espressioni Raw
INSERT / UPDATE / DELETE
INSERT
UPSERT
UPDATE
DELETE
Query condizionali (when)
Debug
Riepilogo
Metodi più usati
Metodi più usati
Query Builder vs Eloquent
Query Builder vs Eloquent
Il Query Builder è più a basso livello e restituisce
stdClass.
Se non ti servono relazioni ed eventi dei modelli è più semplice e veloce.