Structured Query Language (SQL)

Structured Query Language (SQL)
1 / 29
volgende
Slide 1: Tekstslide
InformaticaMiddelbare schoolhavo, vwoLeerjaar 4-6

In deze les zitten 29 slides, met tekstslides.

time-iconLesduur is: 50 min

Onderdelen in deze les

Structured Query Language (SQL)

Slide 1 - Tekstslide

Leerdoel
Aan het eind van deze les ken je de opbouw van Structured Query Language (SQL) en kan je zelf een simpele query schrijven.

Slide 2 - Tekstslide

SQL?
  •  SQL staat voor Structured Query Language


  • SQL is een vraagtaal voor het opvragen van gegevens uit een database


  • Je vraagt gegevens op met een zogenaamde query


Slide 3 - Tekstslide

Praktijkvoorbeeld
App Fastfood keten

Slide 4 - Tekstslide

Welke informatie biedt de app?
  • Producten
  • Productcategorieën
  • Klanten
  • Bestellingen
  • Bestelregels
Relationeel model

Slide 5 - Tekstslide

Tabellen
De database van de app bestaat dus uit meerdere tabellen.


Slide 6 - Tekstslide

Een eenvoudige query (1)
We willen alle klantgegevens uit de tabel klant opvragen.

SELECT * FROM klant
Resultaat

Slide 7 - Tekstslide

Een eenvoudige query (2)
We willen uit de tabel klant alleen de e-mailadressen opvragen.

SELECT emailadres FROM klant
ERD

Slide 8 - Tekstslide

Nu jullie!
URL database:

Gebruikersnaam:

Wachtwoord:

Slide 9 - Tekstslide

Voer deze query's eens uit
  • SELECT * FROM klant

  • SELECT naam FROM klant

  • SELECT naam, emailadres FROM klant
timer
3:00

Slide 10 - Tekstslide

Maak deze query's
  1. Haal van alle producten de naam op

  2. Geef de naam van alle productcategoriën op
timer
3:00
ERD

Slide 11 - Tekstslide

Query met een voorwaarde (1)
De tabel product heeft een attribuut met de naam "formaat"

We willen een query gaan schrijven die de naam en de prijs weergeeft van producten met formaat "large".

We stellen nu dus een voorwaarde aan het resultaat

Slide 12 - Tekstslide

Query met een voorwaarde (2)
Geef de naam en de prijs van alle producten met formaat "large"

De SQL query ziet er dan als volgt uit


SELECT naam, prijs
FROM product
WHERE formaat = "large"
Resultaat

Slide 13 - Tekstslide

Query met een voorwaarde (3)
Geef de naam van alle producten die duurder zijn dan €3

De SQL query ziet er dan als volgt uit


SELECT naam
FROM product
WHERE prijs > 3
Resultaat

Slide 14 - Tekstslide

Voer de query's zelf eens uit
timer
3:00
SELECT naam, prijs
FROM product
WHERE formaat = "large"
SELECT naam
FROM product
WHERE prijs > 3

Slide 15 - Tekstslide

Relatieoperatoren
=       gelijk aan
!=      niet gelijk aan
>       groter dan
>=     groter dan of gelijk aan
<       kleiner dan
<=     kleiner dan of gelijk aan

Slide 16 - Tekstslide

Nu jullie weer, maak deze query's
  1. Geef de naam van alle producten met meer
    dan 600 caloriën

  2. Geef de naam en de prijs van alle producnten
    met meer dan 25 mg suiker
timer
3:00
ERD

Slide 17 - Tekstslide

Twee voorwaarden tegelijk (1)
Geef de naam van alle producten die meer dan 600 caloriën bevatten en meer dan 25 mg suiker bevatten.
SELECT naam
FROM product
WHERE calorieen < 600
AND suiker < 25

Slide 18 - Tekstslide

Twee voorwaarden tegelijk (2)
Geef de naam van alle producten die meer dan dan 600 caloriën bevatten of duurder zijn dan €4.
SELECT naam
FROM product
WHERE calorieen < 600
OR prijs < 4

Slide 19 - Tekstslide

Voer de query's zelf eens uit
timer
3:00
SELECT naam
FROM product
WHERE calorieen < 600
AND suiker < 25
SELECT naam
FROM product
WHERE calorieen < 600
OR prijs < 4

Slide 20 - Tekstslide

Zoeken in meerdere tabellen
Het zoeken van informatie in één tabel is handig, maar bij een database hebben diverse tabellen een relatie met elkaar. De relatie wordt gelegd met de vreemde sleutel.

Met een SQL query moet je dus kunnen zoeken in meer dan één tabel tegelijkertijd. Dit doe je met JOIN

Slide 21 - Tekstslide

Voorbeeld
We willen de namen van de producten bij alle bestelregels. In de tabel bestelregel wordt van een product de product_id bijgehouden. Dit is een vreemde sleutel die verwijst naar het attribuut id in de tabel product.

Denk even goed na wat hierboven staat. Maak gebruik van de ERD.
ERD

Slide 22 - Tekstslide

Voorbeeld (vervolg)
Stap 1 is het ophalen van de product_id uit de tabel bestelregel.

SELECT bestelregel.product_id
FROM bestelregel

Slide 23 - Tekstslide

Voorbeeld (vervolg)
Stap 2 is het ophalen van de naam van het product uit de tabel product.

SELECT bestelregel.product_id, product.naam
FROM bestelregel
INNER JOIN product
ON product.id=bestelregel.product_id

Slide 24 - Tekstslide

Nu jullie weer
Maar de SQL query die bij alle bestellingen de naam van de klant weergeeft.

Slide 25 - Tekstslide

Antwoord
SELECT bestelling.klant_id, klant.naam
FROM bestelling
INNER JOIN klant
ON klant.id=bestelling.klant_id

Slide 26 - Tekstslide

Nog een stapje verder...
Je wil vaak maar heel specifieke gegevens uit een database halen. Bijvoorbeeld de naam van alle producten die zijn besteld bij bestelling met id 11. Je moet dan nog een voorwaarde meegeven om alleen die gegevens te zien.

Slide 27 - Tekstslide

Nog een stapje verder...
Stap 1
Om de naam van alle bestelde producten van bestelling met nummer (id) 11 weer te geven hebben om te beginnen product_id nodig uit de tabel bestelregel. Met de product_id uit de tabel bestelregel kunnen we nu uit de tabel product de naam ophalen. We willen alleen de naam van de producten zien uit bestelling 11. Dus wel moeten nog een voorwaarde stellen dat dit dus alleen geldt voor bestelling_id 11.

Slide 28 - Tekstslide

Antwoord
SELECT bestelregel.product_id, product.naam
FROM bestelregel
INNER JOIN product
ON product.id=bestelregel.product_id
WHERE bestelregel.bestelling_id=11

Slide 29 - Tekstslide