Professional Documents
Culture Documents
Les 2 SELECT WHERE
Les 2 SELECT WHERE
SQL
Inhoud
2
Voorstelling Tennis database
3
Tennis database
! PK
spelerId + beginDatum
4
Speler
Hierin zitten alle spelers met hun
gegevens
5
Speler
⚫ Inhoud:
6
Bestuurslid
Sommige spelers zijn bestuurslid
⚫ Welke speler dat is, zie je aan het
"spelerId", een foreign key naar de
tabel Speler.
7
Bestuurslid
⚫ Inhoud:
8
Boete
Soms krijgt een speler een
boete, gekend door zijn
"spelerId"
9
Team
10
Wedstrijd
⚫ In "aantalGewonnenSets" en
"aantalVerlorenSets" zit het aantal
sets dat ze gewonnen of verloren
hebben.
– Je wint een match met 3
gewonnen sets
⚫ Elke wedstrijd wordt gespeeld door
een team (zie "teamId", foreign key
11
naar de tabel Team).
Wedstrijd
⚫ Inhoud
12
Raadplegen van tabellen
13
Raadplegen van tabellen
SELECT *
FROM Tennis.Team;
Schemanaam Tabelnaam
14
Raadplegen van tabellen
SELECT spelerId
FROM Tennis.Team;
⚫ Merk op dat :
– we een SQL-instructie altijd afsluiten met een “;”.
– FROM altijd op een nieuwe lijn wordt genoteerd.
15
Raadplegen van tabellen
⚫ Men kan ook condities meegeven waaraan de gegevens
moeten voldoen.
➢ Geef het nummer, de naam en de geboortedatum van
elke speler die in Den Haag woont.
SELECT
id,
naam,
geboortedatum
FROM Tennis.Speler
WHERE plaats = 'Den Haag';
18
Voorwaarden stellen: WHERE
SELECT id
FROM Tennis.Wedstrijd
WHERE aantalVerlorenSets > 2;
19
Raadplegen van tabellen
21
WHERE EN NULL waarden
22
WHERE EN NULL waarden
23
Voorwaarden in WHERE
24
Voorwaarden in WHERE
SELECT id,
aantalGewonnenSets,
aantalVerlorenSets
FROM Tennis.Wedstrijd;
25
Voorwaarden in WHERE
SELECT id, aantalGewonnenSets, aantalVerlorenSets
FROM Tennis.Wedstrijd
WHERE aantalGewonnenSets > aantalVerlorenSets;
26
Voorwaarden in WHERE
SELECT id, aantalGewonnenSets, aantalVerlorenSets
FROM Tennis.Wedstrijd
WHERE aantalGewonnenSets < aantalVerlorenSets;
27
Voorwaarden in WHERE
SELECT id, aantalGewonnenSets, aantalVerlorenSets
FROM Tennis.Wedstrijd
WHERE aantalGewonnenSets - aantalVerlorenSets >= 2
OR aantalVerlorenSets - aantalGewonnenSets >= 2;
28
Voorwaarden in WHERE
SELECT naam, plaats
FROM Tennis.Speler
WHERE plaats = 'Den Haag’
OR plaats = 'Rijswijk'
29
Voorwaarden in WHERE
SELECT naam, straat, plaats
FROM Tennis.Speler
WHERE (plaats = 'Den Haag' AND straat = 'Hazensteinln’)
OR (plaats = 'Rijswijk' AND straat = 'Spoorlaan');
– Let op de haakjes!
30
IN-operator
31
IN-operator
32
IN-operator
33
BETWEEN-operator
34
BETWEEN-operator
35
BETWEEN-operator
36
LIKE-operator
37
LIKE-operator
38
LIKE-operator
41
LIKE-operator met ESCAPE
SELECT naam
FROM Tennis.Speler
WHERE naam LIKE '%\_%' ESCAPE '\';
42
LIKE-operator met ESCAPE
⚫ Merk op:
– \ wordt als een escape-teken beschouwd.
– _ heeft nu niet meer de betekenis van wildcard.
– men gaat nu effectief op zoek naar een
onderstrepingsteken als karakter.
43
LIKE-operator met ESCAPE
⚫ Merk op:
– Je kan zelf je escape-teken definiëren.
– Hier is het escape-teken een #
44
NULL-operator
45
NULL-operator
46
NULL-operator
47
NULL-operator
48
NULL-operator
49
NULL-operator
50
DISTINCT IN SELECT-component
SELECT DISTINCT
plaats
FROM Tennis.Speler;
51
DISTINCT IN SELECT-component
52
DISTINCT IN SELECT-component
53
CASE IN SELECT-component
54
CASE IN SELECT-component
55
CASE IN SELECT-component
56
CASE in SELECT-component
57
ORDER BY component
⚫ Gebruik:
– Men kan sorteren op elke kolom die in de
SELECT-component wordt genoemd.
– De meest eenvoudige vorm is het sorteren op
één kolom.
⚫ Voorbeeld:
SELECT
id AS 'betalingsnummer',
spelerId AS 'spelersnummer'
FROM Tennis.Boete
ORDER BY spelerId;
58
ORDER BY component
60
ORDER BY component
61
ORDER BY component
SELECT
spelerId AS 'spelersnummer',
id AS 'betalingsnummer'
FROM Tennis.Boete
ORDER BY spelerId, id;
62
ORDER BY component
63
ORDER BY component
Mogelijkheden:
1. De NULL-waarden komen altijd eerst, zowel bij ASC als DESC
2. De NULL-waarden komen altijd laatst, zowel bij ASC als DESC
3. De NULL-waarden worden gezien als de kleinste waarden
4. De NULL-waarden worden aanzien als de grootste waarden
64
ORDER BY component
Mogelijkheden:
1. De NULL-waarden komen altijd eerst, zowel bij ASC als DESC
2. De NULL-waarden komen altijd laatst, zowel bij ASC als DESC
3. De NULL-waarden worden gezien als de kleinste waarden
4. De NULL-waarden worden aanzien als de grootste waarden
65
Oefeningen
66