SQL Flashcards

1
Q

Je wil een lijst met bieren waarbij de naam de tekst ‘ale’ bevat.

A

SELECT naam FROM bieren WHERE naam like ‘%ale%’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Je wil een lijst met alle bieren met een alcoholpercentage tussen 5% en 7%.

A

SELECT naam FROM bieren WHERE alcohol between 5 and 7

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Je wil een lijst met alle bieren met 0%, 5% of 8% als alcoholpercentage.

A

SELECT naam FROM bieren WHERE alcohol in (0, 5, 8)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Je wil een lijst van de brouwerijen uit Leuven, Genk, Antwerpen, Dendermonde en Wevelgem.

A

SELECT brnaam FROM brouwers

WHERE gemeente in (‘Leuven’, ‘Genk’, ‘Antwerpen’, ‘Dendermonde’, ‘Wevelgem’)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Je wil een lijst met alle bieren waarbij het alcoholpercentage niet ingevuld is.

A

SELECT naam FROM bieren WHERE alcohol is Null

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Je wil een lijst met alle bieren waarbij in de naam het woord ‘wit’ voorkomt en met een
alcoholpercentage hoger dan 5.

A

SELECT * FROM bieren WHERE naam like ‘%wit%’ and alcohol > 5

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Je wil een lijst met alle bieren waarbij het woord ‘wit’ niet in de naam voorkomt.

A

SELECT * FROM bieren WHERE naam not like ‘%wit%’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Je wil een alfabetische lijst van de bieren met hun alcoholpercentage.

A

SELECT naam, alcohol FROM bieren ORDER BY naam asc

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Je wil een alfabetische lijst van de bieren met hun alcoholpercentage.

A

SELECT naam, alcohol FROM bieren ORDER BY 1 asc

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Je wil een lijst met alle bieren (naam en alcoholpercentage). De bieren met het hoogste
alcoholpercentage staan bovenaan. Zorg ook voor een sortering op naam.

A

SELECT naam, alcohol FROM bieren ORDER BY alcohol desc, naam asc

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Geef een overzicht, met alle gegevens, van de leveranciers uit Aalsmeer.

A

select * from leveranciers where woonplaats=’aalsmeer’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Geef een alfabetisch overzicht op plantennaam, met plantId, plantennaam en prijs, van alle planten.

A

select plantId, plantnaam, prijs from planten order by 2 asc

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Welke planten beginnen in de maand maart te bloeien?

Toon plantId, plantennaam, en de beginmaand van de bloeiperiode.

A

select plantId, plantnaam, beginbloeimaand from planten where beginbloeimaand = 3

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Maak een overzicht uit de table artikelsleveranciers, gesorteerd op plantId en binnen plantId een
sortering op artikelcode van de leverancier.
Toon alleen de gegevens plantId, artikelcode van de leverancier en leverancierId.

A

select plantId, artikelLeverancierCode, leverancierId from artikelsLeveranciers order by 1, 2

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Maak een gesorteerd overzicht van alle waterplanten. Sorteer op hoogte, grootste voorop.

A

select * from planten where soort=’water’ order by hoogte desc

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Maak een lijst van de verschillende kleuren die bij de planten uit de table planten horen.

A

select distinct kleur from planten order by kleur

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Maak een lijst van alle planten waarvan de kolom kleur niet ingevuld is.

A

select * from planten where kleur is null

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Toon de verschillende soorten planten in de table planten.

A

select distinct soort from planten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Geef een overzicht van alle vaste planten met gele bloemen. Van iedere plant toon je de volgende
gegevens: plantId, plantennaam, hoogte en de beginmaand van de bloeiperiode.

A

select plantId, plantnaam, hoogte, beginbloeimaand from planten where kleur=’geel’ and soort=’vast’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Geef een overzicht van alle planten met een prijs boven de 10 € die niet tot de soort bomen behoren.
Resultaat: 8 records

A

SELECT * FROM planten WHERE prijs > 10 and soort<>’boom’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Maak een lijst van alle planten die in juni beginnen te bloeien en witte bloemen geven en tevens van alle planten die in augustus voor het eerst bloeien en gele bloemen hebben.

Plaats alle beschikbare gegevens in het overzicht.

A

SELECT * FROM planten WHERE (beginBloeiMaand=6 and kleur=’wit’) or (beginBloeiMaand=8 and kleur=’geel’)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Welke planten met gemengde bloeikleuren worden maximum 60 cm hoog?
Toon plantId, plantennaam en hoogte.
Resultaat: 13 records

A

select plantId, plantnaam, hoogte from planten where kleur=’gemengd’ and hoogte <= 60

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Geef een overzicht van alle leveranciers die niet in Hillegom wonen.
Resultaat: 9 records

A

select * from leveranciers where woonplaats <> ‘hillegom’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Van welke planten is de kleur onbekend? Geef plantId en plantennaam.
Resultaat: 11 records

A

select plantId, plantnaam from planten where kleur is null

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Welke planten bloeien in ieder geval in de periode augustus tot en met oktober? Geef plantId en
plantennaam.
Resultaat: 6 records

A

select plantId, plantnaam from planten where beginBloeiMaand<=8 and eindBloeiMaand>=10

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Welke planten bloeien in ieder geval in de maand september? Geef plantId en plantennaam.
Resultaat: 26 records

A

select plantId, plantnaam from planten where beginBloeiMaand<=9 and eindBloeiMaand>=9

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Geef een overzicht van alle vaste planten met een prijs tussen 3 € en 5 €.
Resultaat: 17 records

A

select * from planten where soort=’vast’ and prijs between 3 and 5

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Geef een overzicht van alle planten die in maart, april, september of oktober beginnen te bloeien.
Resultaat: 15 records

A

select * from planten where beginBloeiMaand in (3,4,9,10)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Van welke planten is zowel de kleur als de hoogte onbekend? Geef plantId, plantennaam, kleur en
hoogte.
Resultaat: geen records

A

select plantId, plantnaam, kleur, hoogte from planten where hoogte is null and kleur is null

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Bij welke planten komt het woord BOOM voor? Geef plantId en plantennaam.
Resultaat: 5 records

A

select plantId, plantnaam from planten where plantnaam like ‘%boom%’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Geef plantId en plantennaam van alle planten die als derde letter een N hebben.
Resultaat: 11 records

A

select plantId, plantnaam from planten where plantnaam like ‘__n%’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Welke 1- en 2-jarige planten staan er in de table planten?
Probeer deze vraag met en zonder de operator LIKE op te lossen.
Resultaat: 23 records

A

select * from planten where soort like (‘__jarig’)!!! met like

select * from planten where soort in (‘1-jarig’, ‘2-jarig’)!!! zonder like

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Geef een overzicht van alle planten, behalve de bomen en de heesters, die tussen de 100 en 200 cm
hoog zijn, rode of blauwe bloemen geven, en vóór augustus beginnen te bloeien.
Alle gegevens behalve de prijs zijn belangrijk.
Sorteer de lijst op soort en binnen soort op plantennaam.
Resultaat: 4 records

A
select plantId, plantnaam, soort, kleur, hoogte, beginBloeiMaand, eindBloeiMaand from planten 
where soort not in ('boom', 'heester') 
and hoogte between 100 and 200
and kleur in ('rood','blauw')
and beginBloeiMaand <=8
order by soort, plantnaam
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Bij welke planten, die niet behoren tot de soort kruid, komt het woord KRUID voor in hun
plantennaam?
Geef plantId en plantennaam.
Resultaat: 6 records

A

select plantId, plantNaam from planten

where soort <> ‘kruid’ and plantnaam like ‘%kruid%’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Geef plantId en plantennaam van alle planten die beginnen met de letter L en eindigen met de letter
E.
Resultaat: 4 records

A

select plantId, plantNaam from planten where plantnaam like ‘l%e’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Welke planten hebben een plantennaam van precies 5 letters lang? Geef plantId en plantennaam.
Resultaat: 7 records

A

select plantId, plantNaam from planten where plantnaam like ‘_____’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Welke planten hebben een plantennaam van minimum 5 letters lang? Geef plantId en plantennaam.
Resultaat: 111 records

A

select plantId, plantNaam from planten where plantnaam like ‘_____%’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Je wil het totaal aantal bieren kennen.

A

SELECT count(*) as aantal FROM bieren

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Je wil het gemiddelde, het grootste, het kleinste en het totale alcoholpercentage uit de table bieren.

A

SELECT avg(alcohol) as gemiddeld, max(alcohol) as maximum, min(alcohol) as minimum,
sum(alcohol) as som
FROM bieren

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

Je wil het aantal tafelbieren (soortnr 51) kennen.

A

SELECT count(biernr) FROM bieren WHERE soortnr=51

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

Volgend voorbeeld kan je weer uittesten in de database Bieren.
Maak een lijst van alle brouwerijen met hun omzet in dollar en in yen.

A

SELECT brnaam, omzet0.9118 as omzet_dollar, omzet116.6 as omzet_yen
FROM brouwers
Resultaat: 118 records

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

Hoeveel leveranciers telt ons tuincentrum?

A

select count(*) as aantal from leveranciers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Geef de gemiddelde prijs van alle waterplanten.

A

select avg(prijs) as gemiddelde_prijs from planten where soort = ‘water’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

Geef de gemiddelde, de laagste en de hoogste offerteprijs van leverancier 4.

A

select avg(offerteprijs) as gemiddelde, max(offerteprijs) as hoogste, min(offerteprijs) as laagste from artikelsleveranciers where leverancierId=4

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

Wat is de maximale hoogte van de bomen in de table planten?

A

select max(hoogte) as maximale_hoogte from planten where soort = ‘boom’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

Wat is de laagste offerteprijs voor artikel 1?

A

select min(offerteprijs) as minimum from artikelsleveranciers where plantId=1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
47
Q

Geef bestelnummer, artikelLeverancierId en het totale bestelbedrag per bestelrij uit de table
bestellijnen.
Resultaat: 93 records

A

SELECT bestelId, artikelLeverancierId, (aantal*bestelPrijs) as totaal FROM bestellijnen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
48
Q

Maak een overzicht van de heesters uit de table planten, waarbij je de prijzen met 5% verhoogt.
Resultaat: 14 records

A

select plantId, plantnaam, (prijs*1.05) as verhoogd from planten where soort=’heester’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
49
Q

Hoeveel stuks van leveranciersartikelnummer 59 zijn er besteld?

A

select sum(aantal) from bestellijnen where artikelLeverancierId=59

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
50
Q

Wat is het totale bestelbedrag (exclusief korting) voor leveranciersartikelnummer 8?

A

SELECT sum(aantal*bestelPrijs) as totaal FROM bestellijnen WHERE artikelLeverancierId=8

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
51
Q

Bereken het gemiddelde alcoholpercentage per brouwer.

A

SELECT brouwernr, avg(alcohol) as gem
FROM bieren
GROUP BY brouwernr

Resultaat: 113 records

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
52
Q

Bereken het aantal bieren per biersoort.

A

SELECT soortnr, count(*) as aantal
FROM bieren
GROUP BY soortnr

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
53
Q

Bepaal het minimum alcoholpercentage per brouwernr. De lijst toont enkel de brouwernr’s en
percentages die kleiner zijn dan 5%.

Om dit op te lossen gebruiken we HAVING i.p.v. WHERE.
Je gebruikt having als de selectie gebaseerd is op het resultaat van een bewerking met een aggregate functie. In alle andere gevallen gebruik je WHERE.

A

SELECT brouwernr, min(alcohol) as mini
FROM bieren
GROUP BY brouwernr
HAVING min(alcohol)<5

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
54
Q

Bereken het gemiddelde alcoholpercentage per brouwernr voor alle brouwers die meer dan 10
bieren produceren.

A

SELECT brouwernr, avg(alcohol) as gem
FROM bieren
GROUP BY brouwernr
HAVING count(*)>10

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
55
Q

Tel het aantal planten per plantensoort uit de table planten.
Resultaat: 10 records

A

select soort, count(*) as aantal from planten group by soort

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
56
Q

Tel het aantal bestelregels per bestelling.
Resultaat: 15 records

planten

A

SELECT bestelId, count(*) as aantal FROM bestellijnen GROUP BY bestelId

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
57
Q

Wat is de gemiddelde prijs per plantensoort?

Resultaat: 10 records

A

select soort, avg(prijs) as gemiddelde from planten group by soort

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
58
Q

Hoeveel planten zijn er per plantensoort-kleurgroep?

Resultaat: 54 records

A

select soort, kleur, count(*) as aantal from planten group by soort, kleur

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
59
Q

Maak een overzicht zodat duidelijk is welke kleur van de vaste planten de hoogste gemiddelde prijs
heeft.
Resultaat: 10 records

A

select kleur, avg(prijs) as gemiddelde from planten where soort=’vast’ group by kleur order by 2 desc

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
60
Q

Laat per leveranciersId het aantal artikelen zien dat de leverancier aanbiedt onder voorwaarde dat
de levertijd van het artikel minder dan 18 dagen is.
Resultaat: 10 records

A

select leverancierId, count(*) as aantal from artikelsleveranciers where levertijd < 18 group by leverancierId

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
61
Q

Wat is de gemiddelde prijs per plantensoort, exclusief de geelbloemige planten?
Resultaat: 10 records

A

select soort, avg(prijs) as gemiddelde from planten where kleur <> ‘geel’ group by soort

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
62
Q

Maak een overzicht met de laagste en de hoogste offerteprijs per plant.
Resultaat: 119 records

A

select plantId, min(offerteprijs) as min, max(offerteprijs) as max from artikelsleveranciers group by plantId order by plantId asc

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
63
Q

Wat is de gemiddelde prijs per plantensoort voor soorten met minstens 10 exemplaren in de table
planten?
Resultaat: 5 records

A

select soort, avg(prijs) as gemiddelde from planten group by soort having count(*) >= 10

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
64
Q

Hebben de planten met korte levertijden in het algemeen een hogere gemiddelde offerteprijs?
Resultaat: 4 records

A

select levertijd, avg(offerteprijs) as gemiddelde from artikelsLeveranciers group by levertijd

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
65
Q

Maak een overzicht met de laagste en de hoogste bestelprijs per artikelLeverancierId.
Resultaat: 70 records

A

select artikelLeverancierId, min(bestelprijs) as laagste, max(bestelprijs) as hoogste
from bestellijnen
group by artikelLeverancierId
order by artikelLeverancierId

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
66
Q

Geef een overzicht van het aantal beschikbare planten per beginBloeiMaand/hoogte/kleur groep?
Resultaat: 109 records

A

SELECT beginBloeiMaand, hoogte, kleur, count(*) as aantal
FROM planten
GROUP BY beginBloeiMaand, hoogte, kleur

67
Q

Wat is de laagste prijs per plantensoort van de planten die in ieder geval bloeien in de periode mei tot en met juni?

Resultaat: 5 records

A

select soort, min(prijs) as laagste from planten
where beginBloeiMaand <=5 and eindBloeiMaand >=6
group by soort

68
Q

Tel het aantal planten per prijs. De prijs moet je afronden op een geheel getal.
Resultaat: 17 records

A

select round(prijs,0) as afgeronde_prijs, count(*) as aantal
from planten
group by afgeronde_prijs
order by round(afgeronde_prijs,0)

69
Q

Geef een lijst van de klanten uit Gent of Wetteren met de velden naam, voornaam, postcode,
woonplaats en klantstatus. Sorteer op klantstatus en naam.

Video

A

SELECT naam, voornaam, postcode, woonplaats, klantstatus FROM klanten
WHERE (woonplaats=’wetteren’) OR (woonplaats=’gent’)
ORDER BY klantstatus, naam

70
Q

Maak een lijst van de klanten waarvan de postcode groter of gelijk is aan 9000 en de klanten
waarvan het huuraantal groter is dan 200. Deze lijst moet gesorteerd worden op postcode

video

A

SELECT naam, voornaam, postcode, woonplaats, totaalgehuurd FROM klanten
WHERE postcode >= 9000 AND totaalgehuurd > 200 ORDER BY postcode

71
Q

Geef een lijst van de klanten wiens naam niet begint met een ‘d’.

video

A

SELECT * FROM klanten WHERE naam NOT LIKE ‘d%’ ORDER BY naam

72
Q

Geef een lijst van klanten waar in de naam van de gemeente op de derde plaats een ‘n’ staat.

video

A

SELECT * FROM klanten WHERE woonplaats LIKE ‘__n%’

73
Q

Bereken voor alle films de prijs incl BTW (21%).

video

A

SELECT titel, prijs AS prijs_excl_BTW, (prijs*1.21) AS prijs_incl_BTW FROM films

74
Q

Uit welke woonplaatsen komen onze klanten?

video

A

SELECT DISTINCT woonplaats FROM klanten ORDER BY woonplaats

75
Q

Maak een lijst van het aantal klanten per gemeente.

video

A

SELECT woonplaats, count(*) AS aantal FROM klanten GROUP BY woonplaats ORDER BY 1

76
Q

Maak een lijst die het mogelijk maakt een inzicht te krijgen in de verhuringen per gemeente.
Op deze lijst moet de gemeente/stad met de meeste verhuringen bovenaan staan.
Indien in een bepaalde gemeente geen 200 verhuringen gebeurd zijn, mag deze gemeente
niet op de lijst staan.

video

A

SELECT woonplaats, sum(totaalgehuurd) AS SumTotaalGehuurd FROM klanten GROUP BY woonplaats HAVING SumTotaalGehuurd >= 200 ORDER BY SumTotaalGehuurd DESC

77
Q

We willen een lijst van alle bieren met daarbij de naam van de brouwerij.
We moeten de tables bieren en brouwers koppelen via het veld brouwernr. Hierdoor kunnen we de
naam van het bier en de naam van de bijhorende brouwer tonen.

A

SELECT naam, brnaam
FROM bieren INNER JOIN brouwers
ON bieren.brouwernr = brouwers.brouwernr
Resultaat: 1215 records

78
Q

Geef een lijst van alle bieren met de velden naam, brouwerij en soort.

A

SELECT naam, brnaam, soort
FROM brouwers
INNER JOIN bieren ON bieren.brouwernr=brouwers.brouwernr
INNER JOIN soorten ON bieren.soortnr=soorten.soortnr
OF
SELECT naam, brnaam, soort
FROM soorten
INNER JOIN bieren ON soorten.soortnr = bieren.soortnr
INNER JOIN brouwers ON bieren.brouwernr = brouwers.brouwernr
Resultaat: 1215 records

79
Q

In volgend voorbeeld worden de tables soorten en bieren gekoppeld op het veld soortnr. Deze instructie genereert een lijst van alle soorten, inclusief de soorten waarvan er geen bieren aanwezig zijn in de table bieren.

A

SELECT naam, soort
FROM soorten LEFT JOIN bieren
ON soorten.soortnr = bieren.soortnr
Resultaat: 1215 records

80
Q

In dit voorbeeld worden de tables brouwers en bieren gekoppeld. De select-instructie genereert een lijst van alle brouwers, inclusief de brouwerijen waarvan er geen bieren aanwezig zijn in de table bieren.

A
SELECT brnaam, naam
FROM bieren RIGHT JOIN brouwers
ON bieren.brouwernr = brouwers.brouwernr
ORDER BY naam
Resultaat: 1220 records
81
Q

Maak een lijst van brouwers die in dezelfde gemeente wonen.
Aan de table brouwers wordt telkens een aliasnaam gegeven. Als je een kolomnaam gebruikt, ben je verplicht om die aliasnaam te gebruiken.

A

SELECT b1.brnaam, b2.brnaam
FROM brouwers as b1 INNER JOIN brouwers as b2
ON b1.gemeente = b2.gemeente and b1.brouwernr < b2.brouwernr

b1.brouwernr < b2.brouwernr zorgt ervoor dat de combinaties zoals Artois – Artois en dubbele
records zoals Artois – Domus en Domus – Artois vermeden worden.
Resultaat: 10 records

82
Q

Maak een overzicht van de bestellingen met het bestelnummer, de naam van de leverancier en de
leverdatum.

Planten
Resultaat: 15 records

A

SELECT bestelId, leverancierNaam, leveringsDatum FROM bestellingen
INNER JOIN leveranciers
ON bestellingen.leverancierId = leveranciers.leverancierId

83
Q

Welke planten hebben een levertijd van maximum 10 dagen?
Plaats in het overzicht de gegevens artikelcode, leveranciers-artikelcode, plantennaam en levertijd.
Resultaat: 113 records

A

SELECT planten.plantId, artikelLeverancierCode, plantNaam, levertijd FROM artikelsleveranciers
INNER JOIN planten
ON artikelsleveranciers.plantId= planten.plantId
WHERE levertijd<=10

84
Q

Geef een overzicht waaruit blijkt bij welke leverancier(s) de planten besteld kunnen worden.
In het overzicht moeten de volgende gegevens staan:
plantid, plantennaam, leverancierscode, naam van de leverancier, levertijd en offerteprijs.
Sorteer het overzicht op plantennaam.
Resultaat: 218 records

A

SELECT planten.plantId, plantNaam, leveranciers.leverancierId, leverancierNaam, levertijd, offerteprijs
FROM planten
INNER JOIN artikelsleveranciers ON planten.plantId=artikelsleveranciers.plantId
INNER JOIN leveranciers ON artikelsleveranciers.leverancierId = leveranciers.leverancierId
ORDER BY plantNaam

85
Q

Maak een overzicht van die planten die een prijs hebben welke minstens 50% boven de offerteprijs ligt.

Geef plantId, plantennaam, prijs van de plant, leveranciersId en offerteprijs.

Sorteer je lijst op plantennaam.
Resultaat: 212 records

A

SELECT planten.plantId, plantNaam, prijs, leverancierId, offertePrijs
FROM planten
INNER JOIN artikelsleveranciers ON planten.plantId = artikelsleveranciers.plantId
WHERE prijs>=(offertePrijs*1.5)
ORDER BY plantNaam

86
Q

Hoeveel verschillen de gehanteerde bestelprijzen met de huidige offerteprijzen?

Presenteer in de lijst de gegevens bestelnummer, artikelcode van de leverancier en het positieve of negatieve verschil.

Resultaat: 93 records

A

SELECT bestellijnen.bestelId, artikelLeverancierCode, bestelPrijs - offertePrijs as verschil
FROM artikelsleveranciers
INNER JOIN bestellijnen ON artikelsleveranciers.artikelLeverancierId = bestellijnen.artikelLeverancierId

87
Q

In welke plaatsen kan het tuincentrum vaste planten bestellen?
Resultaat: 2 records

A

SELECT DISTINCT woonplaats
FROM leveranciers
INNER JOIN artikelsleveranciers ON leveranciers.leverancierId = artikelsleveranciers.leverancierId
INNER JOIN planten ON artikelsleveranciers.plantId=planten.plantId
WHERE soort=’vast’

88
Q

Maak een overzicht van alle rode planten geleverd door leveranciers die niet in Aalsmeer wonen.
Vermeld de gegevens plantId, plantennaam, soort, naam van de leverancier, woonplaats.
Sorteer op soort en plantennaam.
Resultaat: 10 records

A

SELECT planten.plantId, plantNaam, soort, leverancierNaam, woonplaats
FROM planten
INNER JOIN artikelsleveranciers ON planten.plantId = artikelsleveranciers.plantId
INNER JOIN leveranciers ON artikelsleveranciers.leverancierId = leveranciers.leverancierId
WHERE woonplaats<>’Aalsmeer’ and kleur=’rood’
ORDER BY soort, plantNaam

89
Q

Bepaal voor iedere artikelcode de laagste offerteprijs.
Vermeld in het overzicht plantId, plantennaam en de bijbehorende offerteprijs.
Sorteer het overzicht op plantennaam.
Resultaat: 119 records

A

SELECT planten.plantId, plantNaam, min(offertePrijs) AS minimum
FROM planten INNER JOIN artikelsleveranciers
ON planten.plantId= artikelsleveranciers.plantId
GROUP BY plantNaam, planten.plantId
ORDER BY 2

90
Q

Zoek de bestellingen welke een besteldatum hebben die gelijk is aan de leverdatum van één of meer andere bestellingen.

Geef bestelnummer 1e bestelling, besteldatum 1e bestelling, bestelnummer 2e bestelling, leveringsdatum 2e bestelling.

Resultaat: 2 records

A

SELECT e.bestelId as eerstenr, e.bestelDatum as eerstedatum, t.bestelId as tweedenr, t.leveringsDatum as tweededatum
FROM bestellingen e INNER JOIN bestellingen t
ON e.bestelDatum=t.leveringsDatum and e.bestelId<>t.bestelId

91
Q

Geef een overzicht van alle leveranciers en de bijbehorende bestellingen. Toon ook de leveranciers bij wie we nog niets besteld hebben.

We zijn enkel geïnteresseerd in de velden bestelId en leverancierNaam.

Resultaat: 17 records

A
SELECT leveranciernaam, bestelid
FROM leveranciers
LEFT JOIN bestellingen
ON leveranciers.leverancierId = bestellingen.leverancierId
ORDER BY bestelId
92
Q

Selecteer alle bieren met soortnr 3 of 5

A

SELECT * FROM bieren WHERE soortnr=3
UNION
SELECT * FROM bieren WHERE soortnr=5
Resultaat: 8 records

in praktijk

SELECT * FROM bieren WHERE soortnr in (3,5)

93
Q

Je wil een lijst met alle bieren. Elk bier krijgt de vermelding ‘Alcoholvrij’, ‘Alcoholarm’, ‘Bevat alcohol’ of ‘Niet gekend’.

De juiste boodschap kan je bepalen op basis van het alcoholpercentage (<0,2; <0,5; >0,5 en IS NULL).

Sorteer op alcoholpercentage.

A

SELECT naam, alcohol, ‘Alcoholvrij’ AS type FROM bieren WHERE alcohol<0.2
UNION
SELECT naam, alcohol, ‘Alcoholarm’ AS type FROM bieren WHERE alcohol>=0.2 and alcohol
<0.5
UNION
SELECT naam, alcohol, ‘Bevat alcohol’ AS type FROM bieren WHERE alcohol>=0.5
UNION
SELECT naam, alcohol, ‘Niet gekend’ AS type FROM bieren WHERE alcohol IS NULL
ORDER BY alcohol

94
Q

Geef een lijst van alle bieren met het hoogste alcoholpercentage.

1 record

A

SELECT naam
FROM bieren
WHERE alcohol = (SELECT max(alcohol) FROM bieren)

In dit voorbeeld mag de subquery slechts één waarde als resultaat geven. Dit is zo voor de
operatoren =, , >=, <= en <>.
Resultaat: 1 record

95
Q

Geef een lijst van alle bieren die in Oudenaarde gebrouwen worden.

A

SELECT naam
FROM bieren
WHERE brouwernr in (SELECT brouwernr FROM brouwers WHERE gemeente =
‘Oudenaarde’)
Alleen met de operator in kan je met een set van waarden werken.
Resultaat: 14 records

96
Q

Geef de soortnr van de soorten die maar door 1 brouwerij gebrouwen worden.

A

SELECT soortnr
FROM (SELECT DISTINCT soortnr, brouwernr FROM bieren) as lijst
GROUP BY soortnr
HAVING count(*)=1

De subquery staat in de from-clausule. Eerst wordt de subquery uitgevoerd, nadien wordt de rest van de select-instructie uitgevoerd.

Als de substring in de from-component staat, moet deze een alias krijgen.

Resultaat: 5 records

97
Q

Maak een lijst met het gemiddelde alcoholpercentage per soort.

A

SELECT soort, gemiddelde
FROM (SELECT soortnr, avg(alcohol) as gemiddelde FROM bieren GROUP BY soortnr) as r1
INNER JOIN soorten
ON r1.soortnr = soorten.soortnr

In de subquery wordt eerst het gemiddelde alcoholpercentage berekend per soortnr.

Gemiddelde is een aliasnaam uit de subquery die als kolomnaam gebruikt wordt in de buitenste query.

Om het resultaat van de subquery te kunnen joinen met een andere table moet je een aliasnaam geven aan de subquery.

Resultaat: 38 records

98
Q

Maak een lijst van alle bieren met een lagere alcoholpercentage dan het gemiddelde
alcoholpercentage van zijn eigen soort.

A

SELECT b1.*
FROM bieren as b1
WHERE b1.alcohol < (SELECT avg(b2.alcohol) FROM bieren as b2 WHERE
b2.soortnr=b1.soortnr)

Hier wordt tweemaal gebruik gemaakt van de table bieren. Daarom wordt er aan de table een alias toegekend. Om aan te duiden tot welke table de velden behoren gebruiken we hier de alias i.p.v. de tablenaam bieren.

Resultaat: 603 records

99
Q

Het tuincentrum wil graag een lijst waarop is aangegeven welke bomen in Aalsmeer en welke buiten
Aalsmeer verkrijgbaar zijn. Op het overzicht moeten de volgende gegevens verschijnen : plantid,
plantennaam, artikelcode van de leverancier, alsmede een aanduiding ‘AALSMEER’ of ‘BUITEN
AALSMEER’.
Sorteer de lijst op plantId.

Resultaat: 23 records

A

SELECT planten.plantId, plantNaam, artikelLeverancierCode, ‘Aalsmeer’ as plaats
FROM planten
INNER JOIN artikelsleveranciers ON planten.plantId = artikelsleveranciers.plantId
INNER JOIN leveranciers ON artikelsleveranciers.leverancierId = leveranciers.leverancierId
WHERE woonplaats=’Aalsmeer’ and soort=’boom’
UNION
SELECT planten.plantId, plantNaam, artikelLeverancierCode,’buiten Aalsmeer’ as plaats
FROM planten
INNER JOIN artikelsleveranciers ON planten.plantId = artikelsleveranciers.plantId
INNER JOIN leveranciers ON artikelsleveranciers.leverancierId = leveranciers.leverancierId
WHERE woonplaats<>’Aalsmeer’ and soort=’boom’
ORDER BY plantId

100
Q

Je wil een overzicht waarop is aangegeven welke bestellingen te laat zijn. Voor de bestellingen die te laat zijn moet in een extra kolom de opmerking ‘TE LAAT’ worden geplaatst; voor de andere bestellingen wordt in die kolom een aantal streepjes geplaatst.

Sorteer het overzicht op bestelid.

Geef bestelid, besteldatum, artikelLeverancierId, leveringsdatum, levertijd, bericht ‘TE LAAT’ of ‘——-‘.

Resultaat: 93 records

A

SELECT bestellingen.bestelId, bestellijnen.artikelLeverancierId, bestelDatum, leveringsDatum, levertijd, ‘TE LAAT’ as bericht
FROM bestellingen
INNER JOIN bestellijnen ON bestellingen.bestelId=bestellijnen.bestelId
INNER JOIN artikelsleveranciers ON artikelsleveranciers.artikelLeverancierId=bestellijnen.artikelLeverancierId
WHERE datediff(leveringsDatum,bestelDatum) > levertijd
UNION
SELECT bestellingen.bestelId, bestellijnen.artikelLeverancierId, bestelDatum, leveringsDatum, levertijd, ‘——-‘ as bericht
FROM bestellingen
INNER JOIN bestellijnen ON bestellingen.bestelId=bestellijnen.bestelId
INNER JOIN artikelsleveranciers ON artikelsleveranciers.artikelLeverancierId=bestellijnen.artikelLeverancierId
WHERE datediff(leveringsDatum,bestelDatum) <= levertijd
ORDER BY bestelId

101
Q

Welke planten zijn hoger dan de gemiddelde hoogte van alle planten samen? Toon alle gegevens.
Resultaat: 21 records

A

SELECT * FROM planten WHERE hoogte > (SELECT avg(hoogte) FROM planten)

102
Q

Welke planten zijn duurder dan de gemiddelde prijs van de bomen? Toon alle gegevens.
Resultaat: 13 records

A

SELECT * FROM planten WHERE prijs > (SELECT avg(prijs) FROM planten WHERE soort=’boom’)

103
Q

Maak een overzicht van de leveranciers (alle gegevens) waar nog bestellingen uitstaan met een
leverdatum die vóór 1 april 2016 ligt.
Resultaat: 7 records

A

SELECT *
FROM leveranciers
WHERE leverancierId in (SELECT leverancierId FROM bestellingen WHERE leveringsDatum

104
Q

Welke rijen hebben de laagste offerteprijs van alle offertes in de table artikelsleveranciers? Geef alle
gegevens.
Resultaat: 2 records

A

SELECT * FROM artikelsleveranciers WHERE offertePrijs=(SELECT min(offertePrijs) FROM artikelsleveranciers)

105
Q

Welke planten zijn lager dan de laagste vaste plant?
Toon alle gegevens.
Planten waar de hoogte 0 is, worden niet meegerekend.
Resultaat: 5 records

A

“SELECT *
FROM planten
WHERE hoogte > 0 and hoogte 0)”

106
Q

Welke planten zijn hoger dan de gemiddelde hoogte van vaste planten en tevens goedkoper dan de
gemiddelde prijs van vaste planten? Geef alle gegevens.
Resultaat: 13 records

A

SELECT * FROM planten WHERE hoogte > (SELECT AVG(hoogte) FROM planten WHERE soort=’vast’)
AND prijs < (SELECT AVG(prijs) FROM planten WHERE soort=’vast’)

107
Q

Welke planten hebben een prijs die tussen de laagste en hoogste prijs van de klimplanten ligt? Geef
alle gegevens.

Resultaat: 11 records

A

SELECT * FROM planten
WHERE prijs > (SELECT min(prijs) FROM planten WHERE soort = ‘klim’)
AND prijs < (SELECT max(prijs) FROM planten WHERE soort = ‘klim’)

108
Q

Maak een overzicht van alle plantIds die een lagere offerteprijs hebben dan de gemiddelde
offerteprijs voor de betreffende plantId.
Plaats de gegevens plantId, leveranciersnaam en offerteprijs op het overzicht. Sorteer op plantId.
Resultaat: 71 records

A

SELECT a1.plantid, leverancierNaam, a1.offertePrijs
FROM artikelsleveranciers a1 INNER JOIN leveranciers
ON a1.leverancierId = leveranciers.leverancierId
WHERE a1.offerteprijs < (SELECT avg(a2.offertePrijs) FROM artikelsleveranciers a2 WHERE a2.plantId=a1.plantId)
ORDER BY a1.plantId

109
Q

Maak een overzicht van bestelde planten die een bestelprijs hebben welke hoger is dan de maximum
offerteprijs voor zo’n plant.
Plaats de volgende gegevens op het overzicht : bestelnummer, artikelcode van de leverancier,
plantennaam en bestelprijs.
Resultaat: 34 records

A

SELECT bestellijnen.bestelid, a1.artikelLeverancierCode, plantNaam, bestelPrijs
FROM planten
INNER JOIN artikelsleveranciers a1 ON planten.plantId=a1.plantId
INNER JOIN bestellijnen ON bestellijnen.artikelLeverancierId = a1.artikelLeverancierId
INNER JOIN bestellingen ON bestellijnen.bestelId = bestellingen.bestelId and bestellingen.leverancierId=a1.leverancierId
WHERE bestelPrijs > (SELECT max(offertePrijs) FROM artikelsleveranciers a2 WHERE a2.plantId=planten.plantId)

110
Q

Geef een lijst van de films die in de titel noch het woord “kill” noch het woord “blood”
hebben. We willen enkel de films van de genres griezel en thriller.

video

A

SELECT filmId, titel, genre FROM films
INNER JOIN genres ON films.genreId=genres.genreId
WHERE genre in (‘thriller’,’griezel’) AND titel NOT LIKE ‘%blood%’ AND titel NOT LIKE ‘%kill%’

111
Q

We willen een lijst maken van wie welke films huurt. De lijst wordt oplopend gesorteerd op
naam en titel.

video

A

SELECT naam, voornaam, titel FROM klanten
INNER JOIN verhuringen ON verhuringen.klantId=klanten.klantId
INNER JOIN films ON films.filmId=verhuringen.filmId
ORDER BY 1,3

112
Q

Wat is de totale voorraad per genre?

video

A

SELECT genres.genreId, genre, sum(voorraad) as TotaalVoorraad FROM genres
INNER JOIN films ON films.genreId=genres.genreId
GROUP BY 1
ORDER BY 1

113
Q

Op basis van het huuraantal willen we een label toevoegen aan elke klant:
Als het huuraantal groter is dan 250 krijgt de klant het label ‘Zeer goede klant’, als het
huuraantal kleiner is dan 150 krijgt hij het label ‘Slechte klant’. In de andere gevallen komt er
als label ‘Goede klant’.

video

A

SELECT *, ‘Zeer goede klant’ AS label FROM klanten
WHERE totaalGehuurd > 250
UNION
SELECT *, ‘Goede klant’ AS label FROM klanten
WHERE totaalGehuurd BETWEEN 150 AND 250
UNION
SELECT *, ‘Slechte klant’ AS label FROM klanten
WHERE totaalGehuurd < 150

114
Q

Geef alle gegevens van de duurste film.

video

A

SELECT * FROM films

WHERE prijs = (SELECT max(prijs) FROM films)

115
Q

Voeg een nieuwe soort ‘Extra donker’ toe aan de table soorten.

A

INSERT INTO soorten (Soort)

VALUES (‘Extra donker’)

116
Q

Voeg een nieuwe brouwer toe aan de table brouwers.
Gegevens van de nieuwe brouwerij: Brouwerij Vaattappers is gevestigd aan Interleuvenlaan 2 in 3000
Heverlee met een omzet van 1000.

A

INSERT INTO brouwers (BrNaam, Adres, Postcode, Gemeente, Omzet)
VALUES (‘Brouwerij Vaattappers’, ‘Interleuvenlaan 2’, 3000, ‘Heverlee’, 1000)

117
Q

Voeg met één instructie drie nieuwe biersoorten toe aan de table soorten: witbier, Ice bier en
honingbier.

A
INSERT INTO soorten (Soort)
VALUES
('witbier'),
('Ice bier'),
('honing bier')
118
Q

Voeg de bieren met een alcoholpercentage hoger dan 10 toe aan de table bieren_oud.

A

Selecteer eerst de gegevens om je instructie te controleren:

SELECT *
FROM bieren
WHERE alcohol > 10

Deze select-instructie voeg je in in je insert into-instructie:

INSERT INTO bieren_oud
SELECT *
FROM bieren
WHERE alcohol > 10

119
Q

Verhoog het alcoholpercentage van de bieren (met soortnr 21) met 0,5. Doe deze aanpassing in de
table bieren_oud.

A

UPDATE bieren_oud
SET alcohol = alcohol+0.5
WHERE soortnr = 21

120
Q

Verlaag het alcoholpercentage met 1 van de bieren waarvan de brouwerij een omzet heeft die groter
is dan 25000. Doe deze aanpassing in de table bieren_oud.

A

UPDATE bieren_oud
SET alcohol = alcohol - 1
WHERE brouwernr in (SELECT brouwernr FROM brouwers WHERE omzet > 25000)

121
Q

Verwijder het bier met biernr 750 uit de table bieren_oud.

A

DELETE
FROM bieren_oud
WHERE biernr=750

122
Q

Verwijder uit de table bieren_oud de bieren die in Soy gebrouwen worden.

A

DELETE
FROM bieren_oud
WHERE brouwernr in (SELECT brouwernr FROM brouwers WHERE gemeente=’Soy’)

123
Q

Het tuincentrum breidt zijn leverancierskring uit met GROEN BV. De volgende gegevens zijn bekend :

Zie kader p.96

A

INSERT INTO leveranciers (leverancierNaam, adres, woonplaats)
VALUES (‘GROEN BV.’, ‘ONDER DE LINDE 234’, ‘AALSMEER’ )

124
Q

Wijzig in de table bestellingen de leverdatum in 5 april 2016 voor de bestelling met nummer 8.

A

UPDATE bestellingen
SET leveringsDatum=’2016-4-5’
WHERE bestelId=8

125
Q

Verwijder alle rijen uit de table artikelsleveranciers die betrekking hebben op de heesters van
leverancier 8.
Resultaat: 14 records verwijderd

A

DELETE
FROM artikelsleveranciers
WHERE leverancierId=8 and plantId in (SELECT plantId FROM planten WHERE soort=’heester’)

126
Q

Op 23 april 2016 is een nieuwe bestelling geplaatst bij leverancier 4. Dit zijn de details:

Zie kader p.97

De leverancier geeft 8% korting op het bruto bestelbedrag. De leverdatum is één week na de
bestelling.
Doe de nodige aanpassingen in de tables bestellingen en bestellijnen. Denk aan de volgorde!

A

Toevoegingen aan de table bestellingen

	INSERT INTO bestellingen (leverancierId, bestelDatum, leveringsDatum,korting)
	VALUES (4, '2016-4-23', '2016-4-30', 0.08)

Bestelnr opzoeken

	Zoek het bestelnr van de laatst toegevoegde bestelling.

	SELECT * FROM bestellingen

	Het laatste record heeft als bestelId 16.

Toevoegingen aan de table bestellijnen

	INSERT INTO bestellijnen (bestelid, artikelLeverancierId, aantal, bestelprijs)
	VALUES (16, 62, 10, 8.15)

	INSERT INTO bestellijnen (bestelid, artikelLeverancierId, aantal, bestelprijs)
	VALUES (16, 58, 200, 0.4)

	INSERT INTO bestellijnen (bestelid, artikelLeverancierId, aantal, bestelprijs)
	VALUES (16, 59, 25, 2.3)

	INSERT INTO bestellijnen (bestelid, artikelLeverancierId, aantal, bestelprijs)
	VALUES (16, 74, 50, 1.3)
127
Q

Verhoog alle offerteprijzen van de bolgewassen in de table artikelsleveranciers met 10%.
Resultaat: 7 records aangepast

A

UPDATE artikelsleveranciers
SET offertePrijs = offertePrijs*1.1
WHERE plantId in (SELECT plantId FROM planten WHERE soort=’bol’)

128
Q

Voeg de informatie van de planten met een hoogte groter of gelijk aan 1000 toe aan de table
planten_oud. Zorg dat de hoogste planten bovenaan staan.
Resultaat: 11 records toegevoegd

A
INSERT INTO planten_oud
	SELECT *
	FROM planten
	WHERE hoogte >=1000
	ORDER BY hoogte desc
129
Q

Maak een nieuwe table klanten met de velden klantnr, klnaam, kladres, klpost en klgemeente.
De velden klnr en klnaam moeten een waarde bevatten.

denk video..?

A
CREATE TABLE klanten
(klantnr integer not null, klnaam varchar(30) not null, kladres varchar(40), klpost char(4),
klgemeente varchar(40))
130
Q

Maak een table alcoholarm. Plaats hierin de gegevens van de alcoholarme bieren. Neem naam van
de brouwer en naam van het bier mee.

A

CREATE TABLE alcoholarm
AS
SELECT naam, brnaam
FROM bieren
INNER JOIN brouwers ON bieren.brouwernr=brouwers.brouwernr
INNER JOIN soorten ON bieren.soortnr=soorten.soortnr
WHERE soort=’Alcoholarm’

131
Q

Voeg een veld Opmerkingen toe aan de table brouwers.

A

ALTER TABLE brouwers

ADD Opmerkingen varchar(25)

132
Q

Voeg een veld Contactpersoon toe aan de table brouwers. Zorg dat hier altijd iets ingevuld moet
worden.

A

ALTER TABLE brouwers

ADD Contactpersoon varchar(25) NOT NULL

133
Q

Verwijder de velden Opmerkingen en Contactpersoon uit de table brouwers.

A

ALTER TABLE brouwers

DROP Opmerkingen, DROP Contactpersoon

134
Q

Unique

A

Hiermee kan je een veld aanwijzen als een unieke index. Dit kan voor elk veld van je table toegepast
worden.
Unique voorkomt dat twee records in de table dezelfde waarde hebben voor een bepaald veld.
Als de unieke index toegepast wordt op meerdere velden, betekent dit dat de combinatie van de
waarden in die velden uniek moet zijn.
Ga uit van volgende table:

Zie kader p. 106

Situatie 1: unique op veld 2
Het record met veld 1=1, veld 2=4 en veld 3=2 kan toegevoegd worden aan de table.
Een record met veld 1=1, veld 2=1 en veld 3=2 kan niet toegevoegd worden aan de table omdat er
reeds een record is met 1 als waarde in veld 2.
Situatie 2: unique op veld 1 en veld 2
Het record met veld 1=1, veld 2=3 en veld 3=1 kan toegevoegd worden aan de table.
Een record met veld 1=1, veld 2=1 en veld 3=3 kan niet toegevoegd worden omdat deze combinatie
van veld 1 en veld 2 reeds bestaat in de table.

135
Q

Maak een table klanten met de velden klantId en klantnaam.
KlantId is de primaire sleutel.
De naam mag maximaal 30 tekens lang zijn en moet altijd ingevuld worden.

denk video..?

A

CREATE TABLE klanten (
klantId integer not null auto_increment,
klantnaam varchar(30) not null,
CONSTRAINT pk_klantId primary key (klantId))
De beperkende voorwaarde krijgt hier de naam pk_klantId:
• pk want het gaat om een primaire sleutel
• op het veld klantId
Na de naam komt het sleutelwoord primary key omdat we een primaire sleutel willen maken.

136
Q

Maak een table gebruikers met de velden nummer, naam en userId.
De inhoud van het veld userId moet een unieke waarde hebben maar is toch niet de primaire sleutel.
Het veld nummer moet de primaire sleutel zijn.

denk video..?

A
CREATE TABLE gebruikers (
nummer integer not null,
naam varchar(30),
userId varchar(8),
CONSTRAINT pk_nr primary key(nummer),
CONSTRAINT u_userid unique(userId))
Hier hebben we 2 constraint-instructies:
• CONSTRAINT pk_nr primary key
Hiermee maken we een primaire sleutel met de naam pk_nr voor het veld nr.
• CONSTRAINT u_userid unique
Met deze instructie maken we een unieke index met de naam u_userid op het veld userId.
137
Q

Maak een table bestellingen met de velden bestelId, klantnummer, besteldatum.
De primaire sleutel is het veld bestelId.
Tussen het veld klantnummer van deze table en het veld klantId van de table klanten wordt een 1-
op-veel-relatie gedefinieerd.

denk video..?

A

CREATE TABLE bestellingen (
bestelId integer,
klantnummer integer,
besteldatum datetime,
CONSTRAINT pk_bestelId primary key (bestelId),
CONSTRAINT f_klantnummer foreign key (klantnummer) references klanten (klantId))

Ook hier hebben we 2 constraint-instructies:
• CONSTRAINT pk_bestelId primary key
Hiermee maken we een primaire sleutel met de naam pk_bestelId voor het veld bestelId.
• CONSTRAINT f_klantnummer references klanten (klantId)
Met deze instructie maken we een externe sleutel (foreign key) met de naam
f_klantnummer op het veld klantnummer. Dit veld wordt gelinkt aan klantId (de primaire
sleutel) in de table klanten.

138
Q

Maak een table bestellijnen met de velden: bestelnummer, biernummer en aantal.
Definieer een samengestelde sleutel met de velden bestelnummer en biernummer.

A
CREATE TABLE bestellijnen
(bestelnummer integer, biernummer integer, aantal integer, CONSTRAINT pk_bestbier
primary key (bestelnummer, biernummer))
139
Q

Definieer een 1-op-veel-relatie tussen de tables bestellingen (bestelId) en bestellijnen
(bestelnummer).

A

ALTER TABLE bestellijnen
ADD CONSTRAINT f_bestelnummer foreign key (bestelnummer) references bestellingen
(bestelId)

140
Q

Verwijder de beperkende voorwaarde f_bestelnummer.

A

ALTER TABLE bestellijnen

DROP FOREIGN KEY f_bestelnummer

141
Q

Verwijder de primaire sleutel van de table bestellijnen.

A

ALTER TABLE bestellijnen

DROP PRIMARY KEY

142
Q

Maak een index voor het veld klnaam van de table klanten.

A
CREATE INDEX i_naam
ON klanten (klantnaam)
143
Q

Verwijder de index i_naam van de table klanten.

A

DROP INDEX i_naam ON klanten

144
Q

Creëer een table klachten met de volgende velden: Zie P 113

Voeg nadien volgende klacht toe aan deze table:
Klacht nr. 1 heeft betrekking op plantid 10. De klacht luidt : “Planten (leveranciercode 2) verkocht op
14-1-2016 vertoonden bruine vlekken na circa 2 maanden”.
De status is GL (gemeld aan leverancier) en de klacht wordt ingebracht op 15-3-2016.

A

Table klachten maken
CREATE TABLE klachten
(klachtId integer, plantId integer, datum datetime, klacht varchar(100), status char(2))
Klacht toevoegen
INSERT INTO klachten
VALUES (1, 10, ‘2016/03/15’, ‘Planten (leveranciercode 2) verkocht op 14-1-2016 vertoonden bruine vlekken na circa 2 maanden’, ‘GL’)

145
Q

Er is behoefte aan een table aanbied waaruit snel de goedkoopste leveranciers van de planten uit de
table planten kunnen worden opgezocht.
De table heeft de volgende kolommen : plantId, plantNaam, leverancierid en offerteprijs.
Vul deze table vanuit de tables planten en artikelsleveranciers.

A

CREATE TABLE aanbied
AS
SELECT planten.plantId, plantNaam, a1.leverancierId, offertePrijs
FROM artikelsleveranciers a1 INNER JOIN planten ON a1.plantId = planten.plantId
WHERE offertePrijs = (SELECT min(offertePrijs) FROM artikelsleveranciers a2 WHERE a2.plantId = a1.plantId)

146
Q

Breid de table planten uit met een kolom voorraad om het aantal stuks dat het tuincentrum nog in
voorraad heeft bij te houden.

A

ALTER TABLE planten

ADD voorraad integer

147
Q

Definieer alle relaties tussen de tables van de database Planten. Zie p. 113

A

ALTER TABLE artikelsleveranciers
ADD CONSTRAINT f_plantId foreign key (plantId) references planten (plantId)

ALTER TABLE artikelsleveranciers
ADD CONSTRAINT f_leverancierId foreign key (leverancierId) references leveranciers (leverancierId)

ALTER TABLE bestellingen
ADD CONSTRAINT f_leverancierId2 foreign key (leverancierId) references leveranciers (leverancierId)

ALTER TABLE bestellijnen
ADD CONSTRAINT f_bestelId foreign key (bestelId) references bestellingen (bestelId)

ALTER TABLE klachten
ADD CONSTRAINT f_klachten foreign key (plantId) references planten (plantId)

ALTER TABLE planten
ADD CONSTRAINT f_categorie foreign key (categorieId) references categorieen (categorieId)

ADD CONSTRAINT f_artikelsleveranciers foreign key(artikelLeverancierId) references artikelsleveranciers(artikelLeverancierId)
ALTER TABLE bestellijnen
ADD CONSTRAINT f_artikelLeverancierId 
foreign key(artikelLeverancierId) references artikelsleveranciers(artikelLeverancierId)
148
Q

Maak een index BSRIDX01 op de samengestelde sleutel bestelId en artikelLeverancierId van de table
bestellijnen.

A
CREATE INDEX bsridx01
	ON bestellijnen (bestelId, artikelLeverancierId)
149
Q

De table artikelsleveranciers wordt regelmatig gejoined met de tables planten, leveranciers en
bestellijnen.
Welke indexen zijn waardevol voor de table artikelsleveranciers?

A
CREATE INDEX i_plantId
	ON artikelsleveranciers (plantId)
	CREATE INDEX i_leverancierId
	ON artikelsleveranciers (leverancierId)
150
Q

Maak een view bierlijst. Op deze lijst staat de naam van het bier, de naam van de brouwer en het
soort bier.

A

CREATE VIEW bierlijst
AS
SELECT naam, brnaam, soort
FROM bieren
INNER JOIN brouwers ON bieren.brouwernr = brouwers.brouwernr
INNER JOIN soorten on bieren.soortnr=soorten.soortnr

151
Q

Verwijder de view bierlijst.

A

DROP VIEW bierlijst

152
Q

Definieer een view vastlaag waarin alle gegevens van alle vaste planten uit de table planten
voorkomen met een hoogte van maximaaal 15 cm.

A
CREATE VIEW vastlaag
	AS
	SELECT *
	FROM planten
	WHERE soort like 'vast' and hoogte<=15
153
Q

Definieer een view offerteprijzen met de kolommen plantId, minOff, maxOff en gemOff waarin
respectievelijk plantid, laagste, hoogste en gemiddelde offerteprijs vermeld is.

A
CREATE VIEW offerteprijzen
	AS
	SELECT plantId, min(offertePrijs) AS minOff, max(offertePrijs) AS maxOff, avg(offertePrijs) AS gemOff
	FROM artikelsleveranciers
	GROUP BY plantId
154
Q

Maak een view zomerplanten waarmee de gegevens plantid, plantennaam, soort en prijs zijn te
benaderen van alle planten die in de maanden juni, juli en augustus beginnen te bloeien.

A
CREATE VIEW zomerplanten
	AS
	SELECT plantId, plantNaam, soort, prijs
	FROM planten
	WHERE beginBloeiMaand between 6 and 8
155
Q

Definieer een view bomen met de gegevens plantId, plantennaam, hoogte en prijs van alle bomen.

A
CREATE VIEW bomen
	AS
	SELECT plantId, plantNaam, hoogte, prijs
	FROM planten
	WHERE soort like 'boom'
156
Q

Definieer een view leverancier5 waarin alleen van leverancier 5 de volgende gegevens staan: plantId,
plantNaam, artikelLeverancierCode, offertePrijs, prijs

A

CREATE VIEW leverancier5
AS
SELECT artikelsleveranciers.plantId, planten.plantNaam, artikelLeverancierCode, offertePrijs, planten.prijs
FROM artikelsleveranciers INNER JOIN planten ON planten.plantId = artikelsleveranciers.plantId
WHERE leverancierId=5

157
Q

Maak een view waardoor alleen de offertegegevens van de leveranciers uit Lisse zijn te selecteren.

A
CREATE VIEW lisse
	AS
	SELECT artikelsleveranciers.*
	FROM artikelsleveranciers INNER JOIN leveranciers ON artikelsleveranciers.leverancierId = leveranciers.leverancierId
	WHERE woonplaats like 'Lisse'
158
Q

Maak een view besteldeplanten die een overzicht geeft van bestelid, artikelcode van de leverancier
en de plantnaam.

A

CREATE VIEW besteldeplanten
AS
SELECT bestellijnen.bestelid, artikelleveranciercode, plantNaam
FROM planten
INNER JOIN artikelsleveranciers ON planten.plantId = artikelsleveranciers.plantId
INNER JOIN bestellijnen ON artikelsleveranciers.artikelLeverancierId = bestellijnen.artikelLeverancierId

159
Q

Voeg jezelf toe als klant.

video

A

INSERT INTO klanten (naam, voornaam, adres, postcode, woonplaats, klantStatus, totaalGehuurd, datumLid, lidgeld)
VALUES (‘AHADDOUR’, ‘ISMAEL’,’GROTE MARKT 1’, 1000, ‘BRUSSEL’, 1, 0, ‘2020-9-18’, 1)

160
Q

Geef alle films met maatschappijCode VH een prijsverhoging van 10%.

video

A

UPDATE films
SET prijs = prijs*1.1
WHERE maatschappijId IN (SELECT maatschappijId FROM maatschappijen WHERE maatschappijCode = ‘VH’)

161
Q

Maak een table met enkel de films van het genre Thriller.

video
denk dat aangepast moet worden , zie feedback coach in mail

A

CREATE VIEW Thrillers
AS
SELECT * FROM films WHERE genreId IN (SELECT genreId FROM genres WHERE genreId = 13)

162
Q

Voeg aan de table maatschappijen een veld mailadres toe. Dit veld mag maximaal 40 tekens
lang zijn en mag niet leeg zijn.

video

A

ALTER TABLE maatschappijen

ADD mailadres varchar (40) NOT NULL

163
Q

Definieer alle nodige primary en foreign keys. (zie test coach 3)

video

A

ALTER TABLE films
ADD CONSTRAINT f_maatschappijId FOREIGN KEY (maatschappijId) REFERENCES maatschappijen (maatschappijId)

ALTER TABLE films
ADD CONSTRAINT f_genreId FOREIGN KEY (genreId) REFERENCES genres (genreId)

ALTER TABLE verhuringen
ADD CONSTRAINT f_filmId FOREIGN KEY (filmId) REFERENCES films (filmId)

ALTER TABLE verhuringen
ADD CONSTRAINT f_klantId FOREIGN KEY (klantId) REFERENCES klanten (klantId)