SQLite

Come unire tabelle in SQLite

Come unire tabelle in SQLite
A volte quando si lavora con i database, potrebbe essere necessario unire i record dalle tabelle in un database. In tal caso, possiamo utilizzare l'istruzione SQL JOIN che combina i campi specificati utilizzando valori comuni in ciascun campo.

Esistono tre tipi principali di join SQLite.

  1. LA CROCE UNISCITI
  2. INNER JOIN
  3. 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!

SuperTuxKart per Linux
SuperTuxKart è un fantastico titolo progettato per offrirti l'esperienza di Mario Kart gratuitamente sul tuo sistema Linux. È piuttosto impegnativo e ...
Tutorial Battaglia per Wesnoth
The Battle for Wesnoth è uno dei giochi di strategia open source più popolari a cui puoi giocare in questo momento. Non solo questo gioco è in svilupp...
0 A.D. Tutorial
Tra i tanti giochi di strategia in circolazione, 0 A.D. riesce a distinguersi come un titolo completo e un gioco molto profondo e tattico nonostante s...