SQLite

Tabellen samenvoegen in SQLite

Tabellen samenvoegen in SQLite
Soms moeten we bij het werken met databases records uit tabellen in een database samenvoegen. Wanneer dat het geval is, kunnen we de SQL JOIN-instructie gebruiken die de opgegeven velden combineert met gemeenschappelijke waarden in elk veld.

Er zijn drie hoofdtypen SQLite-joins:.

  1. De CROSS JOIN
  2. INNERLIJKE JOIN
  3. LINKER BUITENSTE JOIN

Deze tutorial leidt je snel door deze SQLite-joins en laat je zien hoe je databaserecords samenvoegt.

Laten we beginnen met de INNER JOIN omdat deze eenvoudig is en een basis legt voor ons om andere JOIN-typen te begrijpen.

1: De INNERLIJKE JOIN

De INNER JOIN werkt door een nieuwe tabel te maken door de waarden van de opgegeven tabellen te combineren. Het begint met het vergelijken van de rij op elke tafel en het vinden van alle overeenkomende paren volgens het opgegeven predikaat. Het combineert vervolgens de overeenkomende paren in een enkele rij.

De algemene syntaxis voor INNER JOIN is:

KIES kolom(men) UIT tabel1 INNER JOIN tabel2 OP tabel1.kolom = tabel2.kolom;

Laten we eens kijken naar een JOIN-bewerking om te illustreren hoe het werkt.

Stel dat u een tabel hebt met de naam gebruikers met velden: id, naam, leeftijd, taalvoorbeeld SQL-query om de tabel hieronder te maken:

MAAK TABEL "gebruikers" (
"id" INTEGER NIET NULL,
"naam" TEKST NIET NULL,
"leeftijd" INTEGER NIET NULL,
"taal" TEKST,
PRIMAIRE SLEUTEL ("id" AUTOINCREMENT)
);

We hebben ook nog een andere tabel met de naam rijen met de velden-id en rol-SQL-query hieronder:

MAAK TABEL "Rollen" (
"id" INTEGER NIET NULL,
"rol" TEKST,
PRIMAIRE SLEUTEL ("id" AUTOINCREMENT)
)

Nu kunnen we een SQLite INNER JOIN-bewerking uitvoeren met behulp van de onderstaande query:

SELECT gebruikers.id, gebruikers.naam, Rollen.rol VAN gebruikers INNERLIJKE JOIN Rollen AAN gebruikers.id = Rollen.ID kaart;

De bovenstaande query resulteert in de onderstaande tabel:

2: De CROSS JOIN

Het andere type SQL JOIN is de CROSS JOIN. Dit type komt overeen met elke rij van de eerste tabel met elke rij in de tweede tabel. Zie het als een Cartesiaans product omdat de resultaten een reeks rijen uit tabel 1 zijn die overeenkomen met elke rij in tabel 2. Als tabel1 bijvoorbeeld (a) rijen heeft en tabel2 (b) rijen heeft, zal de resulterende tabel a*b rij hebben.

OPMERKING: Wees voorzichtig bij het gebruik van cross joins, aangezien deze kunnen resulteren in enorme tafelsets.

De algemene syntaxis voor een cross Join is:

KIES kolom(men) UIT tabel1 CROSS JOIN tabel2;

Overweeg een cross join uit de tabel van de gebruiker met alle rijen van de rollentabel. Overweeg de onderstaande SQL-query:

SELECT * FROM gebruikers CROSS JOIN rollen;

Het uitvoeren van de bovenstaande query resulteert in een tabel zoals hieronder weergegeven:

3: De LINKER BUITENSTE JOIN

De laatste join waar we naar zullen kijken is de OUTER JOIN. De OUTER JOIN is een uitbreiding van de INNER JOIN. Net als INNER join, drukken we het uit onder voorwaarden zoals AAN, NEUTRAAL en GEBRUIKEN. Het is ook goed om op te merken dat SQL drie soorten OUTER JOINS definieert: left, right en full, maar SQLite ondersteunt alleen LEFT JOIN.

De LEFT outer JOIN retourneert alle rijen van de LEFT-tabel die is opgegeven in de voorwaarde en alleen de rijen van andere tabellen waar de samengevoegde voorwaarde waar is.

Overweeg de volgende vraag:.

SELECTEER gebruikers.id, gebruikers.naam, rollen.rol, gebruikers.taal VAN gebruikers LEFT OUTER JOIN Rollen AAN gebruikers.id = Rollen.ID kaart;

De bovenstaande zoekopdracht resulteert in de onderstaande tabel:

Conclusie

Deze zelfstudie heeft geïllustreerd hoe u SQL-joins in SQLite kunt uitvoeren en nieuwe tabellen kunt maken met gewijzigde informatie. Het is goed om te blijven experimenteren met SQL JOIN's, omdat ze erg handig zijn bij het werken met databases.

Bedankt voor het lezen!

Installeer de nieuwste OpenRA Strategy Game op Ubuntu Linux
OpenRA is een Libre/Free Real Time Strategy-game-engine die de vroege Westwood-games nabootst, zoals de klassieke Command & Conquer: Red Alert. Gedist...
Installeer de nieuwste Dolphin Emulator voor Gamecube & Wii op Linux
Met de Dolphin Emulator kun je de door jou gekozen Gamecube- en Wii-spellen spelen op Linux Personal Computers (pc). Omdat het een vrij beschikbare e...
Hoe de GameConqueror Cheat Engine in Linux te gebruiken
Het artikel bevat een handleiding over het gebruik van de GameConqueror cheat-engine in Linux. Veel gebruikers die games op Windows spelen, gebruiken ...