module 7 – hoofdstuk 5 (1) sql – een begin. inleiding •wat is het verschil tussen data en...
TRANSCRIPT
Module 7 – Hoofdstuk 5 (1)
SQL – een begin
Inleiding
• Wat is het verschil tussen data en informatie?
• Data zijn een verzameling feiten, meestal opgeslagen in een database
• Data vormen de grondstof van informatie
Een voorbeeld• Een ziekenhuis heeft een grote database met
patiëntgegevens
• Deze data staat opgeslagen op een databaseserver
• De data wordt opgevraagd vanaf meerdere pc’s in het ziekenhuis en verwerkt tot informatie
• Er wordt doorgaans maar een deel van de data opgevraagd
Van gegevens naar informatie
data uit een database op een databaseserver
de gewenste informatie
data uit de database halen en verwerken
De techniek
databaseserver
software software software
gebruiker gebruiker gebruiker
SQLSQL
SQL
SQL is de taal (Structured Query Language) waarmee een databaseserver en software met elkaar kunnen ‘praten’
netwerk
SQL• M.b.v. SQL kun je gegevens van een database
invoeren, bewerken en opvragen
• Deze taal ga je leren
• Let op: data wordt pas informatie als het geplaatst wordt in een bepaalde context
• Je moet dus de context van een database kennen
Voorbeeld: het getal 37 op zich zegt niet zo veelLichaamstemperatuur: geen koortsBloeddruk: veel te laag
Wat is een database?
• Eigenlijk een heel simpele tabel
• Bestaat uit– Rijen– Kolommen
• Andere termen – Kolom: velden of attributen– Rij: records of entiteiten
Een voorbeeld
merk type prijs_per_maand
Asprilla Exclusiv € 26,00
Asprilla GT € 29,00
Asprilla Rimi € 32,00Garvin Luxe € 12,00
Garvin Modio € 14,00
Vespa GHT € 20,00
Vespa Pronto € 22,00
Rij Kolom
Tabel T_voertuig
Doel van database
• Over zo veel mogelijk informatie beschikken d.m.v. de opslag van zo weinig mogelijk data
Hoe?
• Door meerdere tabellen te koppelenWe gaan werken met een database met vier tabellen
Deze database bevat gegevens van klanten die bij een tweewielerzaak een scooter huren
Mensen vs. database
• Ieder spreekt zijn eigen taal
• Mensen: Nederlands, Engels, Turks
informatie
• Database: SQL (Structured Query Language)
data
De taal van de database
• Mensen praten met mensen door middel van ‘zinnen’
• Mensen praten met databases door middel van ‘queries’
Een eenvoudige query (1)
• MensGeef een overzicht van alle gegevens van de scooters
• DatabaseSELECT *FROM T_voertuig
merk type prijs_per_maandAsprilla Exclusiv € 26,00Asprilla GT € 29,00Asprilla Rimi € 32,00Garvin Luxe € 16,00Garvin Modio € 14,00Vespa GHT € 20,00Vespa Pronto € 22,00
T_voertuig
Resultaat
T_voertuigmerk type prijs_per_maand
Asprilla Exclusiv € 26,00
Asprilla GT € 29,00
Asprilla Rimi € 32,00Garvin Luxe € 12,00
Garvin Modio € 14,00
Vespa GHT € 20,00
Vespa Pronto € 22,00
Wat houdt het in?
SELECT *FROM T_voertuig
• SELECT *– Selecteer alles
• FROM T_voertuig– Uit de tabel ‘T_voertuig’
T_voertuigmerk type prijs_per_maand
Asprilla Exclusiv € 26,00
Asprilla GT € 29,00
Asprilla Rimi € 32,00
Garvin Luxe € 16,00
Garvin Modio € 14,00
Vespa GHT € 20,00
Vespa Pronto € 22,00
Een eenvoudige query (2)
• MensGeef een overzicht met daarin alleen de merken van de scooters
• DatabaseSELECT merkFROM T_voertuig
merk type prijs_per_maandAsprilla Exclusiv € 26,00Asprilla GT € 29,00Asprilla Rimi € 32,00Garvin Luxe € 16,00Garvin Modio € 14,00Vespa GHT € 20,00Vespa Pronto € 22,00
T_voertuig
Resultaat
T_voertuigmerk
Asprilla
Asprilla
AsprillaGarvin
Garvin
Vespa
Vespa
Wat houdt het in?
SELECT merkFROM T_voertuig
• SELECT merk– Selecteer alleen de kolom ‘merk’
• FROM T_voertuig– Uit de tabel ‘T_voertuig’
T_voertuigmerk
Asprilla
Asprilla
AsprillaGarvin
Garvin
Vespa
Vespa
Een eenvoudige query (3)
• MensGeef een overzicht van alle gegevens van de scooters van het merk ‘Asprilla’
• DatabaseSELECT *FROM T_voertuig WHERE merk = "Asprilla"
Resultaat
T_voertuigmerk type prijs_per_maand
Asprilla Exclusiv € 26,00
Asprilla GT € 29,00
Asprilla Rimi € 32,00
Wat houdt het in?SELECT *FROM T_voertuig WHERE merk = "Asprilla"
• SELECT *– Selecteer alles
• FROM T_voertuig– Uit de tabel ‘T_voertuig’
• WHERE merk = "Asprilla"– Alleen als het merk gelijk is aan "Asprilla"
Let op: een string, dus aanhalingstekens!
Maar je kunt het toch ook direct in de hele tabel bekijken?
• Jij wel, maar een computer niet
• Normaal gesproken heb je een zeer grote database
• Wij gebruiken nu een heel kleine database zodat het overzichtelijk blijft
Een eenvoudige query (4)
• MensGeef een overzicht van alle gegevens van de scooters die per maand minder dan 20 euro kosten
• DatabaseSELECT *FROM T_voertuig WHERE prijs_per_maand < 20
Resultaat
T_voertuigmerk type prijs_per_maandGarvin Luxe € 12,00
Garvin Modio € 14,00
Wat houdt het in?SELECT *FROM T_voertuig WHERE prijs_per_maand < 20
• SELECT *– Selecteer alles
• FROM T_voertuig– Uit de tabel ‘T_voertuig’
• WHERE prijs_per_maand < 20 – Alleen als het bedrag per maand kleiner is dan 20
Let op: een getal, dus geen aanhalingstekens!
Lijst met relatie-operatoren
• = gelijk aan• <> niet gelijk aan• > groter dan• >= groter dan of gelijk aan• < kleiner dan• <= kleiner dan of gelijk aan
Samenvatting tussendoor
• Structuur selectiequery:
SELECT attributen (kolommen)FROM tabel of tabellenWHERE voorwaarde
Voorbeeld 5
• Datatypen
Een datum
• MensGeef een overzicht van alle contracten met een ingangsdatum vanaf mei 1998
• DatabaseSELECT *
FROM T_contract
WHERE ingangsdatum >= 19980501
Let op: deze syntax kan per database verschillen!
Resultaat
Contracten
Boolean gegevens
• MensGeef een overzicht van alle contracten met een verzekering
• DatabaseSELECT *
FROM T_contract
WHERE verzekering = 1
1 als waar (true)0 als onwaar (false)
Resultaat
Contracten
Niet ingevulde records
• MensWelke contracten hebben nog geen einddatum?
• DatabaseSELECT *
FROM T_contract
WHERE einddatum IS NULLLet op: niet ‘=‘ maar ‘IS’
NULL betekent ‘leeg’
Resultaat
Contracten
Een eenvoudige query (6)
• MensGeef een overzicht van alle gegevens van de scooters van het merk ‘Vespa’ die per maand 22 euro of meer kosten
• DatabaseSELECT *FROM T_voertuig WHERE merk = "Vespa" AND prijs_per_maand >= 22
Resultaat
T_voertuigmerk type prijs_per_maand
Vespa Pronto € 22,00
Wat houdt het in?SELECT *FROM T_voertuig WHERE merk = "Vespa" AND prijs_per_maand >= 22
• WHERE merk = "Vespa"– Alleen als het merk gelijk is aan "Vespa"
• AND prijs_per_maand >= 22 – EN het bedrag per maand groter of gelijk aan 22
Lijst met logische operatoren
• ANDen• OR of• NOTniet