Module 7 – Hoofdstuk 5 (1) SQL – een begin. Inleiding •Wat is het verschil tussen data en...

Post on 13-May-2015

218 views 0 download

Transcript of Module 7 – Hoofdstuk 5 (1) SQL – een begin. Inleiding •Wat is het verschil tussen data en...

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