07 - SQL - joins & Concat

Joining Tables in SQL
with Joins en CONCAT
1 / 22
suivant
Slide 1: Diapositive
ICTMBOStudiejaar 1,2

Cette leçon contient 22 diapositives, avec quiz interactifs et diapositives de texte.

time-iconLa durée de la leçon est: 60 min

Éléments de cette leçon

Joining Tables in SQL
with Joins en CONCAT

Slide 1 - Diapositive

Cet élément n'a pas d'instructions

Leerdoel
Aan het einde van de les kun je joins gebruiken om gegevens uit meerdere tabellen te combineren in SQL.

Slide 2 - Diapositive

Cet élément n'a pas d'instructions

Wat weet je al over joins in SQL?

Slide 3 - Carte mentale

Cet élément n'a pas d'instructions

Wat zijn joins?
Joins zijn een manier om gegevens uit meerdere tabellen in een database te combineren op basis van overeenkomende kolommen.

Slide 4 - Diapositive

Cet élément n'a pas d'instructions

Soorten joins
Er zijn verschillende soorten joins, zoals 
  • INNER JOIN
  • LEFT JOIN
  • RIGHT JOIN
  • FULL JOIN

Slide 5 - Diapositive

Cet élément n'a pas d'instructions

INNER JOIN
INNER JOIN retourneert alleen de rijen die overeenkomen in beide tabellen.
SELECT <kolom lijst>
FROM table_a a
INNER JOIN table_b b
ON a.key = b.key

Slide 6 - Diapositive

Cet élément n'a pas d'instructions

oefening 1: Klanten en Bestellingen
Opdracht: Vind alle klanten samen met hun bestellingen.

Slide 7 - Question ouverte

Cet élément n'a pas d'instructions

Antwoord: Oefening
SELECT Customers.CustomerID, Customers.CompanyName, Orders.OrderID
FROM Customers
INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

Slide 8 - Diapositive

Stappen:
  1. Gebruik de INNER JOIN om de tabellen Customers en Orders te verbinden. 
  2. Selecteer CustomerID en CompanyName van Customers.
  3. Selecteer OrderID van Orders.
  4. Combineer de resultaten op CustomerID.
LEFT JOIN
LEFT JOIN retourneert alle rijen uit de linker tabel en de overeenkomende rijen uit de rechter tabel.
SELECT <kolom lijst>
FROM table_a a
LEFT JOIN table_b b
ON a.key = b.key

Slide 9 - Diapositive

Cet élément n'a pas d'instructions

Opdracht 2: Toon alle werknemers en de gebieden (territories) waarin ze werken, zelfs als ze niet aan een gebieden zijn toegewezen.

Slide 10 - Question ouverte

Cet élément n'a pas d'instructions

Antwoord: Oefening
SELECT Employees.EmployeeID, Employees.LastName, Territories.TerritoryDescription
FROM Employees
LEFT JOIN EmployeeTerritories ON Employees.EmployeeID = EmployeeTerritories.EmployeeID
LEFT JOIN Territories ON EmployeeTerritories.TerritoryID = Territories.TerritoryID;

Slide 11 - Diapositive

Stappen:
  1. Selecteer de kolommen EmployeeID en LastName uit de tabel Employees.
  2. Voer een LEFT JOIN uit met de tabel EmployeeTerritories op basis van EmployeeID.
  3. Voer nog een LEFT JOIN uit met de tabel Territories op basis van TerritoryID.
  4. Het resultaat toont alle werknemers met hun regio’s, inclusief werknemers zonder toegewezen regio.
RIGHT JOIN
RIGHT JOIN retourneert alle rijen uit de rechter tabel en de overeenkomende rijen uit de linker tabel.
SELECT <kolom lijst>
FROM table_a a
RIGHT JOIN table_b b
ON a.key = b.key

Slide 12 - Diapositive

Cet élément n'a pas d'instructions

Opdracht 3: Maak een query die alle producten toont, inclusief de leveranciersnaam, zelfs als er geen leverancier is gekoppeld aan het product.

Slide 13 - Question ouverte

Cet élément n'a pas d'instructions

Antwoord: Oefening
SELECT P.ProductName, S.CompanyName
FROM Suppliers S
RIGHT JOIN Products P ON P.SupplierID = S.SupplierID;

Slide 14 - Diapositive

Stappen:
  1. Selecteer de kolommen EmployeeID en LastName uit de tabel Employees.
  2. Voer een LEFT JOIN uit met de tabel EmployeeTerritories op basis van EmployeeID.
  3. Voer nog een LEFT JOIN uit met de tabel Territories op basis van TerritoryID.
  4. Het resultaat toont alle werknemers met hun regio’s, inclusief werknemers zonder toegewezen regio.
FULL JOIN
FULL JOIN retourneert alle rijen uit beide tabellen, met NULL-waarden waar er geen overeenkomende rijen zijn.
SELECT <kolom lijst>
FROM table_a a
FULL JOIN table_b b
ON a.key = b.key

Slide 15 - Diapositive

Cet élément n'a pas d'instructions

Opdracht 4: Maak een full join query die alle klanten en bestellingen uit de Northwind-database weergeeft, zelfs als er geen overeenkomst is tussen klant en bestelling..

Slide 16 - Question ouverte

Cet élément n'a pas d'instructions

Antwoord: Oefening
SELECT Customers.CustomerID, Customers.CompanyName, Orders.OrderID, Orders.OrderDate
FROM Customers
FULL JOIN Orders ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerID;

Slide 17 - Diapositive

Stappen:
  1. Selecteer de kolommen EmployeeID en LastName uit de tabel Employees.
  2. Voer een LEFT JOIN uit met de tabel EmployeeTerritories op basis van EmployeeID.
  3. Voer nog een LEFT JOIN uit met de tabel Territories op basis van TerritoryID.
  4. Het resultaat toont alle werknemers met hun regio’s, inclusief werknemers zonder toegewezen regio.
CONCAT
CONCAT is een SQL-functie die wordt gebruikt om twee of meer strings samen te voegen tot één string.
SELECT CONCAT 
(string1, string2, ..., stringN)
FROM table 

ON a.key = b.key

Slide 18 - Diapositive

Cet élément n'a pas d'instructions

Opdracht 5: Gebruik de CONCAT functie om de FirstName en LastName te combineren, gescheiden door een spatie, en voeg de Title toe, gescheiden door een komma en een spatie.

Slide 19 - Question ouverte

Cet élément n'a pas d'instructions

Antwoord: Oefening
SELECT CONCAT (FirstName, ' ', LastName, ', ', Title) AS 'Volledige Naam en Functie'
FROM Employees;

Slide 20 - Diapositive

Stappen:
  1. Selecteer de kolommen EmployeeID en LastName uit de tabel Employees.
  2. Voer een LEFT JOIN uit met de tabel EmployeeTerritories op basis van EmployeeID.
  3. Voer nog een LEFT JOIN uit met de tabel Territories op basis van TerritoryID.
  4. Het resultaat toont alle werknemers met hun regio’s, inclusief werknemers zonder toegewezen regio.
Stel 1 vraag over iets dat je nog niet zo goed hebt begrepen.

Slide 21 - Question ouverte

De leerlingen geven hier (in vraagvorm) aan met welk onderdeel van de stof ze nog moeite. Voor de docent biedt dit niet alleen inzicht in de mate waarin de stof de leerlingen begrijpen/beheersen, maar ook een goed startpunt voor een volgende les.
Resources
  • https://www.w3schools.com/sql/sql_join.asp
  • https://www.programiz.com/sql/join
  • Stichting Praktijk Leren
  • LinkedIn Learning

Slide 22 - Diapositive

Cet élément n'a pas d'instructions