Esistono tre tipi principali di join SQLite.
- LA CROCE UNISCITI
- INNER JOIN
- UNIONE ESTERNO SINISTRO
Questo tutorial ti guiderà rapidamente attraverso questi join SQLite e ti mostrerà come unire i record del database.
Iniziamo con INNER JOIN in quanto è semplice e costituisce una base per comprendere altri tipi di JOIN.
1: L'INNER JOIN
L'INNER JOIN funziona creando una nuova tabella combinando i valori delle tabelle specificate. Inizia confrontando la riga su ciascuna tabella e trovando tutte le coppie corrispondenti per il predicato specificato. Quindi combina le coppie corrispondenti in un'unica riga.
La sintassi generale per INNER JOIN è:
SELECT colonne FROM table1 INNER JOIN table2 ON table1.colonna = tabella2.colonna;Diamo un'occhiata a un'operazione JOIN per illustrare come funziona.
Supponiamo di avere una tabella chiamata utenti con campi: id, nome, età, query SQL di esempio di lingua per creare la tabella è di seguito:
CREATE TABLE "utenti" ("id" INTEGER NOT NULL,
"nome" TESTO NON NULL,
"età" INTERO NON NULL,
TESTO "lingua",
CHIAVE PRIMARIA("id" AUTOINCREMENT)
);
Abbiamo anche un'altra tabella chiamata righe con l'id dei campi e la query SQL del ruolo fornita di seguito:
CREA TABELLA "Ruoli" ("id" INTERO NON NULL,
"ruolo" TESTO,
CHIAVE PRIMARIA("id" AUTOINCREMENT)
)
Ora possiamo eseguire un'operazione SQLite INNER JOIN utilizzando la query mostrata di seguito:
SELEZIONA gli utenti.ID, utenti.nome, ruoli.ruolo FROM utenti INNER JOIN Ruoli ON utenti.id = Ruoli.identificazione;La query di cui sopra risulterà nella tabella mostrata di seguito:
2: LA CROCE UNISCITI
L'altro tipo di SQL JOIN è il CROSS JOIN. Questo tipo abbina ogni riga della prima tabella a ogni riga della seconda tabella. Pensalo come un prodotto cartesiano perché i risultati sono un insieme di righe della tabella 1 abbinate a ciascuna riga della tabella 2. Ad esempio, se table1 ha (a) righe e table2 ha (b) righe, la tabella risultante avrà una riga a*b.
NOTA: Prestare attenzione quando si utilizzano le unioni incrociate poiché hanno il potenziale di generare enormi set di tabelle.
La sintassi generale per un cross join è:
SELECT colonna(e) FROM tabella1 CROSS JOIN tabella2;Considera un cross join dalla tabella dell'utente con tutte le righe della tabella dei ruoli. Considera la query SQL di seguito:
SELECT * FROM utenti CROSS JOIN ruoli;L'esecuzione della query precedente risulterà in una tabella come mostrato di seguito:
3: Il JOIN ESTERNO SINISTRO
L'unione finale che esamineremo è l'OUTER JOIN. L'OUTER JOIN è un'estensione dell'INNER JOIN. Come INNER join, lo esprimiamo su condizioni come ON, NEUTRAL e USING. È anche bene notare che SQL definisce tre tipi di OUTER JOIN: left, right e full, ma SQLite supporta solo LEFT JOIN.
Il LEFT outer JOIN restituisce tutte le righe della tabella LEFT specificata nella condizione e solo le righe delle altre tabelle in cui la condizione unita è vera.
Considera la seguente domanda.
SELEZIONA gli utenti.ID, utenti.nome, ruoli.ruolo, utenti.lingua FROM utenti LEFT OUTER JOIN Ruoli ON utenti.id = Ruoli.identificazione;La query di cui sopra risulterà nella tabella mostrata di seguito:
Conclusione
Questo tutorial ha illustrato come eseguire join SQL in SQLite e creare nuove tabelle con informazioni modificate. È bene continuare a sperimentare con SQL JOIN poiché sono molto utili quando si lavora con i database.
Grazie per aver letto!