Structured Query Language (SQL)

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

This lesson contains 29 slides, with text slides.

time-iconLesson duration is: 50 min

Items in this lesson

Structured Query Language (SQL)

Slide 1 - Slide

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 - Slide

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 - Slide

Praktijkvoorbeeld
App Fastfood keten

Slide 4 - Slide

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

Slide 5 - Slide

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


Slide 6 - Slide

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

SELECT * FROM klant
Resultaat

Slide 7 - Slide

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

SELECT emailadres FROM klant
ERD

Slide 8 - Slide

Nu jullie!
URL database:

Gebruikersnaam:

Wachtwoord:

Slide 9 - Slide

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

  • SELECT naam FROM klant

  • SELECT naam, emailadres FROM klant
timer
3:00

Slide 10 - Slide

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 - Slide

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 - Slide

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 - Slide

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 - Slide

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 - Slide

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

Slide 16 - Slide

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 - Slide

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 - Slide

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 - Slide

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 - Slide

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 - Slide

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 - Slide

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

SELECT bestelregel.product_id
FROM bestelregel

Slide 23 - Slide

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 - Slide

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

Slide 25 - Slide

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

Slide 26 - Slide

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 - Slide

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 - Slide

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 - Slide