Informaticasite van het Lauwers College te Buitenpost                 © R.J. van der Beek
 
  Antwoorden opgaven hoofdstuk 9      


1a.   Nounou.
Op statusbalk 500 invullen en op enter drukken
b. 750
Op de statusbalk zie je ..... van 750
c. 11
Sorteren op type, dan staan ze onder elkaar en kun je ze gemakkelijk tellen
d. Bush beer: 12 %
Sorteren op alcoholpercentage, aflopend. Dan staat 9.6 % (bijna) bovenaan, maar onderaan zie je dat Bush beer 12 % heeft. Dat 12 onder 9.6 staat komt doordat het veld niet numeriek is maar tekst.
e. 133
Zoek een pilsener bier op, klik op pilsener en dan op selectiefilter.
In Access 2007 moet je dan ook nog klikken op "is gelijk aan pilsener"
Dan worden alle bieren waarbij onder type pilsener staat, er uit gefilterd. Onderaan zie je het aantal: 133
f. 56
Als je de pilsener bieren nog in beeld hebt (zie vorige vraag) zoek je een bier met een alcoholpercentage van 5.0 % op, dan selecteer je 5.0 %, en dan klik je op selectiefilter.
In Access 2007 moet je dan ook nog klikken op "is gelijk aan 5.0 %"
Dan worden alle bieren met 5.0 % alcohol en van het type pilsener er uit gefilterd. Onderaan zie je het aantal: 56
g. Brouwerij Contreras.
Klik op de kolom naam, klik op Zoeken. Achter Zoeken naar vul je Tonneke in, en dan klik je op Volgende zoeken.
h. 4
Klik op de kolom naam, klik op Zoeken. Achter Zoeken naar vul je pale in, bij Waar kies je Gedeelte van veld uit. Dan klik je net zo vaak op Volgende zoeken (en je telt de keren) tot er verschijnt dat er niet meer gevonden kunnen worden
i. 87
In Access 2003 klik je in het databasevenster op Queries. Klik dan op Nieuw, op Ontwerpweergave, dan op OK
(In Access 2007 klik je in het menu op het tabblad "Maken", en dan op "Queryontwerp")
Klik op de tabel Belgisch bier, klik op Toevoegen en dan op Sluiten.
Klik op het pijltje bij Veld in de eerste kolom, kies Naam uit.
Bij Criteria vul je *pils* in.
Klik dan op het uitroepteken in de werkbalk, dan zie je alle namen waarin pils voorkomt. Onderaan zie je dat het er 87 zijn.
j. selecteer de kolom kleur. Klik opnieuw op de kolomkop van kleur en sleep de kolom naar de scheidingslijn tussen Brouwer en Type.
k. selecteer de kolom Gisting, klik op de rechter muisknop en kies in het snelmenu Kolombreedte. Kies dan Passend maken
l. Klik in de statusbalk op
Vul dan in wat je wilt op de lege regel.
m. selecteer de regel die je net hebt toegevoegd door op het vakje voor de rij te klikken. Druk dan op Del


2a. Carmiggelt
Open de tabel boeken en zoek in de kolom titel Kroeglopen 1 op.
Daar zie je dat het auteurnummer 40 is.
Dan open je de tabel auteurs en je zoekt auteurnr. 40 op, en dan zie je dat het Simon Carmiggelt is.
b. Hermans
In Access 2003 klik je in het databasevenster op Queries. Klik dan op Nieuw, op Ontwerpweergave, dan op OK
(In Access 2007 klik je in het menu op het tabblad "Maken", en dan op "Queryontwerp")
Klik op de tabel auteurs (want die heb je nodig omdat je de naam van de auteur moet weten), en klik op Toevoegen.
Klik op de tabel boeken (want die heb je nodig omdat de titel van het boek in die tabel staat), en klik op Toevoegen en dan op Sluiten.
Klik op het pijltje bij Veld in de eerste kolom, kies AUTEURS.ACHTERNAAM uit.
Klik op het pijltje bij Veld in de tweede kolom, kies BOEKEN.TITEL uit.
Bij Criteria vul je in de tweede kolom De woeste wandeling in.
Klik dan op het uitroepteken in de werkbalk, dan zie je dat de auteur Hermans is.
c. Ruby Monte Alegre en Petra Veelenturf
In Access 2003 klik je in het databasevenster op Queries. Klik dan op Nieuw, op Ontwerpweergave, dan op OK
(In Access 2007 klik je in het menu op het tabblad "Maken", en dan op "Queryontwerp")
Klik op de tabel leerlingen (want die heb je nodig omdat je de namen van de leerlingen moet weten), en klik op Toevoegen.
Klik op de tabel uitleningen (want die heb je nodig omdat de datum van de uitleningen in die tabel staan), en klik op Toevoegen en dan op Sluiten.
Klik op het pijltje bij Veld in de eerste kolom, kies LEERLINGEN.VOORNAAM uit.
Klik op het pijltje bij Veld in de tweede kolom, en kies LEERLINGEN.ACHTERNAAM uit.
Klik op het pijltje bij Veld in de derde kolom, kies UITLENIGEN.DATUM_UIT uit.
Bij Criteria vul je in de derde kolom 17-dec-1998 in.
Klik dan op het uitroepteken in de werkbalk, dan zie je dat het Ruby Monte Alegre en Petra Veelenturf zijn.
d.
  • In Access 2003 klik je op Formulieren, dan op Nieuw, dan op Autoformulier in kolomvorm, en kies als tabel Leerlingen uit. Klik dan op OK.
    Dan wordt dat formulier direkt gemaakt. Sluit het af.
    Dan wordt er gevraagd of je het wilt opslaan. Beantwoord die vraag met ja, en geef als naam LEERLINGEN

    In Access 2007 klik je in het menu op het tabblad "Maken", en dan in de werkbalk op Meer formulieren. Uit de mogelijkheden die dan verschijnen kies je Wizard formulier.
    Vervolgens kies je als tabel de tabel Boeken uit. En je moet aangeven welke velden er op het formulier moeten verschijnen. Klik op > > , dan komen alle velden op het formulier. Klik op Volgende.
    Dan moet je uitkiezen welke opmaak je wenst. Klik op In kolomvorm en klik dan op Volgende.
    Daarna moet je een stijl uitkiezen. Kies een leuke uit en klik op Volgende.
    Vervolgens moet je aangeven hoe je het formulier wilt noemen. Ga akkoord met de voorgestelde naam en klik op Voltooien.
    Dan is het formulier klaar. Het verschijnt in beeld, sluit het direkt maar weer af.
  • De volgende stap in Access 2003 is: klik op het formulier LEERLINGEN, en klik op Ontwerpen.
    In Access 2007 klik je op het pijltje achter Tabellen, en dan op Formulieren.
    Rechtsklik op het formulier BOEKEN, en klik op Ontwerpweergave.
  • Selecteer het veld KLAS (het rechter venstertje), klik er op met de rechter muisknop.
    In het snelmenu klik je op Wijzigen in. Kies dan voor Keuzelijst.
    Trek de velden er onder een beetje naar beneden zodat er ruimte komt voor de keuzelijst.
  • Selecteer nog eens het veld KLAS, klik er weer op met de rechter muisknop.
    In het snelmenu klik je nu op Eigenschappen.
  • Bij Type rijbron kies je voor Lijst met waarden
  • Bij rijbron typ je 4a;4b;5a;5b;6a;6b; in
  • Sluit het formulier weer af.
    Als gevraagd wordt of je het wilt opslaan dan beantwoord je die vraag met ja.
e.
  • Klik op Formulieren, dan op Nieuw, dan op Autoformulier in kolomvorm, en kies als tabel EXEMPLAREN uit. Klik dan op OK.
    Dan wordt dat formulier direkt gemaakt. Sluit het af.
    Dan wordt er gevraagd of je het wilt opslaan. Beantwoord die vraag met ja, en geef als naam EXEMPLAREN
  • Klik dan op het formulier EXEMPLAREN, en klik op Ontwerpen.
    selecteer het veld BOEKNR (het rechter venstertje), klik er op met de rechter muisknop.
    In het snelmenu klik je op Wijzigen in. Kies dan voor Keuzelijst.
    Trek de velden er onder een beetje naar beneden zodat er ruimte komt voor de keuzelijst.
  • selecteer nog eens het veld BOEKNR, klik er weer op met de rechter muisknop.
    In het snelmenu klik je nu op Eigenschappen.
  • Bij Type rijbron kies je voor Tabel/query
  • Bij rijbron kies je de tabel BOEKEN uit.
  • Bij aantal kolommen vul je 3 in.
  • Bij Kolombreedten vul je 1;0;3 in.
  • Bij afhankelijke kolom staat al 1, en dat klopt.
  • Dan zul je later merken bij het invullen van de gegevens van een nieuw exemplaar dat je voor het boeknummer een keuzelijst krijgt waarbij je uit alle boeken kunt kiezen, en er worden daarbij 3 kolommen van de tabel BOEKEN getoond: het boeknummer, het auteurnummer, en de titel van het boek.
    En voor de breedten van die kolommen worden 1, 0 en 3 cm. gereserveerd. Dat er 0 cm. voor auteurnummer wordt gereserveerd betekent eigenlijk dat die kolom niet te zien is, maar dat is ook niet nodig


3a. Dit wordt besproken in hoofdstuk 4 van de cursus Access, klik op adres-etiketten
b. Dit wordt besproken in hoofdstuk 4 van de cursus Access, klik op klasselijsten
c. Dit wordt besproken in hoofdstuk 4 van de cursus Access, klik op lijst met namen van auteurs en hun boeken


4a. Database Management Systeem. Dat is een collectie van programma's om een database te maken en te beheren.
b. Access, Oracle, Solid, Filemaker, MySQL


5a.
  • Het opslaan van gegevens en het kunnen wijzigingen van deze gegevens
  • Het opvragen en verwerken van informatie
  • Het bewaken van de integriteit van de database
b. Het voorkomen van fouten bij het invoeren van gegevens.
Als je bijv. in de bibliotheek-database een nieuw boek invoert dan wordt er gecontroleerd of het auteurnummer, dat je invoert, wel voorkomt bij de auteurs
c. In de vorm van tabellen


6a. Numeriek zijn: De kolommen AUTEURNR, GEB_JAAR, STERF_JAAR van de tabel AUTEURS
                       De kolommen BOEKNR, AUTEURNR, PUB_JAAR, AANTALPAGS van de tabel BOEKEN
                       De kolommen BOEKNR, EXNR van de tabel EXEMPLAREN
                       De kolommen LLNR van de tabel LEERLINGEN
                       De kolommen BOEKNR, LLNR van de tabel RESERVERINGEN
                       De kolommen BOEKNR, EXNR, LLNR van de tabel UITLENINGEN
Datum/Tijd zijn: De kolom GEB_DATUM van de tabel LEERLINGEN
                         De kolommen DATUM_RESERVERING, DATUM_BESCHIKBAAR van de tabel RESERVERINGEN
                         De kolommen DATUM_UIT, DATUM_TERUG van de tabel UITLENINGEN
Valuta is alleen de kolom BOETE van de tabel UITLENINGEN
b. Als je een boek reserveert, en er zijn meerdere exemplaren van dat boek, dan maakt het je natuurlijk niet uit welke van die exemplaren je krijgt.
c. De kolom AUTEURNR van de tabel BOEKEN en van de tabel AUTEURS
De kolom BOEKNR van de tabellen EXEMPLAREN, UITLENINGEN, RESERVERINGEN en BOEKEN
De kolom LLNR van de tabellen UITLENINGEN, RESERVERINGEN, en LEERLINGEN
De kolom EXNR van de tabel UITLENINGEN en van de tabel EXEMPLAREN
d. In de kolom AUTEURNR van de tabel BOEKEN mogen alleen waarden voorkomen die ook in de kolom AUTEURNR staan van de tabel AUTEURS
In de kolom BOEKNR van de tabellen EXEMPLAREN, UITLENINGEN en RESERVERINGEN mogen alleen waarden voorkomen die ook in de kolom BOEKNR staan van de tabel BOEKEN
In de kolom LLNR van de tabellen UITLENINGEN en RESERVERINGEN mogen alleen waarden voorkomen die ook in de kolom LLNR staan van de tabel LEERLINGEN
In de kolom EXNR en BOEKNR van de tabel UITLENINGEN mogen alleen waarden voorkomen die ook in de kolom EXNR en BOEKNR staan van de tabel EXEMPLAREN


7a. select VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, KLAS from LEERLINGEN order by KLAS, ACHTERNAAM;
(ook mag order by 4, 3)
b. select VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, GEB_JAAR from AUTEURS order by ACHTERNAAM, GEB_JAAR;
c. select TITEL, RUBRIEK from BOEKEN order by RUBRIEK, TITEL;


8a. select DISTINCT BOEKNR from UITLENINGEN order by BOEKNR ASC;
b.   select DISTINCT KLAS from LEERLINGEN;


9a. select * from leden order by leeftijd desc;
b. select naam, woonplaats, score from leden order by naam;
c. select distinct woonplaats from leden order by woonplaats;


10a. select naam, adres, plaats from bedrijven order by plaats, naam;
b. select distinct plaats from bedrijven;
c. select koenr, jaar, kgmelk from jaarprod order by kgmelk desc;


11a. select voornaam, tussenvoegsel, achternaam from leerlingen where achternaam="Dijkstra";
resultaat: alleen Remco Dijkstra
b. select voornaam, tussenvoegsel, achternaam, geb_jaar from auteurs where geb_jaar > 1900;
resultaat: 78 schrijvers
c. select titel, rubriek from boeken where rubriek <> "nederlands";
(<> betekent: is niet gelijk aan)
resultaat: 114 boeken
d. Je begint met de query: select VOORNAAM, ACHTERNAAM, AUTEURNR from AUTEURS where ACHTERNAAM="Reve";
Als resultaat krijg je: Gerard Reve 62
Dan vervolg je met de query: select TITEL from BOEKEN where AUTEURNR=62;
Resultaat: De Avonden, De vierde man, Op weg naar het einde
e. select LLNR, BOETE from UITLENINGEN where BOETE>2;
resultaat: 294 leerlingen


12a. select voornaam, tussenvoegsel, achternaam from leerlingen where voornaam like "*an*" or achternaam like "*an*";
resultaat: 39 personen
b. select voornaam, tussenvoegsel, achternaam, klas, straat, huisnummer, plaats from leerlingen where klas like "6*" and plaats="Utrecht" and straat="Julianaweg";
resultaat: Monique Melsink en Ab van Gils
c. select voornaam, tussenvoegsel, achternaam, klas, geb_datum from leerlingen where klas like "4*" and geb_datum > #1-jun-1991#;
N.B. Een datum moet je in Access (als je met SQL werkt) tussen hekjes # typen, dus 1 juni 1991 tik je in als #1-jun-1991#
(of als #06-01-1991#, dus de Amerikaanse datum-notatie gebruiken !)
d. select voornaam, tussenvoegsel, achternaam, straat, huisnummer, plaats from leerlingen where plaats="Bunnik" or plaats="Schalkwijk";
resultaat: 19 leerlingen, 3 uit Schalkwijk en 16 uit Bunnik
e. Het probleem hier is: is de achternaam nu "Somerset Maugham" of alleen maar "Maugham" ?
Met de query select VOORNAAM, ACHTERNAAM, AUTEURNR from AUTEURS where ACHTERNAAM LIKE "*Maugham"; gaat het in beide gevallen goed.
Hij komt inderdaad voor, zijn auteurnummer is 92.


13a. select naam, woonplaats, score from leden where woonplaats = "Veenklooster";
b. select naam, leeftijd from leden where leeftijd > 20 and naam like "F%";
(in Access: like "F*";)
c. select naam, leeftijd, lidsoort from leden where lidsoort != "aktielid" and leeftijd < 20;
d. select naam, leeftijd, lidsoort, score from leden where lidsoort = "jeugdlid" order by score desc;
e. select soort from competitiesoort where aanvoerder is null;
f. select soort,speeldag from competitiesoort where speeldag="zaterdag";


14a. select naam, adres, telefoon from bedrijven where plaats="Oenkerk";
b. select naam, adres, postc, plaats from bedrijven where postc like "*A*;
c. select koenr, jaar, kgmeld from jaarprod where jaar="2000" and kgmelk > 2000;


15a. select max(boete) from uitleningen;
resultaat: € 4
b. select avg(boete) from uitleningen;
resultaat: € 0,77
c.  select min(geb_datum) from leerlingen;
resultaat: 13-1-1988
select max(geb_datum) from leerlingen;
resultaat: 22-9-1991
d. select COUNT (*) from EXEMPLAREN where STATUS = "in reparatie";
resultaat: 2


16a. select PLAATS, COUNT (*) from LEERLINGEN group by PLAATS;
resultaat: Bunnik 16, Doorn 1, Houten 22, enz.
b. select GESLACHT , COUNT (*) from LEERLINGEN group by GESLACHT;
resultaat: 64 mannen en 80 vrouwen
c. select KLAS, GESLACHT , COUNT (*) from LEERLINGEN group by KLAS, GESLACHT;
resultaat: 4a m 14
              4a v 14
              4b, m, 11, enz
d. select RUBRIEK, COUNT (*) from BOEKEN group by RUBRIEK;
resultaat: biologie 6, ckv 2, duits 8, enz.


17a. SELECT AVG (leeftijd) AS gem_leeftijd FROM leden where lidsoort="senior";
b. SELECT COUNT(*) AS aantal_aktieleden FROM leden where lidsoort="aktielid";
c. SELECT MAX(leeftijd) FROM leden;
d. SELECT MAX(geboren) FROM leden;


18a. select count(*) from bedrijven where plaats="Buitenpost";
b. select plaats, count(*) from bedrijven group by plaats;
c. select max(vetgeh) from jaarprod;


19a. SELECT lidsoort, count(*) AS aantal FROM leden GROUP BY lidsoort ;
b. SELECT lidsoort, AVG(leeftijd) AS gem_leeftijd FROM leden GROUP BY lidsoort ;
c. SELECT lidsoort, count(*) AS aantal FROM leden GROUP BY lidsoort HAVING aantal > 3;
d. SELECT woonplaats, AVG(score) AS gem_score FROM leden GROUP BY woonplaats HAVING gem_score > 4000;


20a. select VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, GEB_DATUM from LEERLINGEN where GEB_DATUM=(select MIN(GEB_DATUM) from LEERLINGEN);
Resultaat: Ab van Gils, 13-1-1988
b. "IN" moet je gebruiken als de subquery meer dan één waarde zou kunnen opleveren.
Omdat er maar één maximum is hoeft dat niet en kun je volstaan met "=".
c. select BOEKNR from EXEMPLAREN where STATUS = "in reparatie" and BOEKNR IN
( select BOEKNR from BOEKEN where RUBRIEK ="nederlands");
resultaat: boeknr 47 en 157
d. select VOORLETTERS, TUSSENVOEGSEL, ACHTERNAAM from AUTEURS
where AUTEURNR IN (select AUTEURNR from BOEKEN where BOEKNR IN
( select BOEKNR from RESERVERINGEN) );
resultaat: 43 schrijvers
e. select VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, KLAS from LEERLINGEN
where LLNR IN ( select LLNR from UITLENINGEN where BOEKNR IN
( select BOEKNR from BOEKEN where TITEL ="Ook dat nog") );
resultaat: 8 leerlingen


21a. select bedrijfsnr from koeien where koenr in (select koenr from jaarprod where kgmelk > 8000);
b. select koenr from jaarprod where vetgeh= (select max(vetgeh) from jaarprod);
c. select naam from bedrijven where bedrijfsnr in (select bedrijfsnr from koeien where koenr in (select koenr from jaarprod where kgmelk > 8000) );
d. select bedrijfsnr from koeien where koenr in (select koenr from jaarprod where kgmelk = (select max(kgmelk) from jaarprod where jaar = "2003") );
e. select jaar, sum(kgmelk) from jaarprod group by jaar;


22a. SELECT naam, woonplaats, soort FROM leden, competitielid WHERE leden.lidnr = competitielid.lidnr and competitielid.soort="DD";
b. SELECT naam, woonplaats, soort FROM leden, competitielid WHERE leden.lidnr = competitielid.lidnr and leden.woonplaats="Buitenpost";
c. SELECT naam, woonplaats, competitielid.soort, speeldag FROM leden, competitielid, competitiesoort WHERE leden.lidnr = competitielid.lidnr and competitielid.soort = competitiesoort.soort;
d. SELECT soort, naam FROM leden, competitiesoort WHERE leden.lidnr = competitiesoort.aanvoerder;


23a. select VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, TITEL
from AUTEURS, BOEKEN where AUTEURS.AUTEURNR = BOEKEN.AUTEURNR;
b. select VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, BOETE
from LEERLINGEN, UITLENINGEN where LEERLINGEN.LLNR = UITLENINGEN.LLNR and BOETE>0;
c. select VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, GEB_JAAR, TITEL
from AUTEURS, BOEKEN where AUTEURS.AUTEURNR = BOEKEN.AUTEURNR
and GEB_JAAR <= 1900 and GEB_JAAR > 1800;
d. select VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, TITEL, "in reparatie"
from AUTEURS, BOEKEN
where AUTEURS.AUTEURNR = BOEKEN.AUTEURNR
and BOEKEN.BOEKNR IN (select BOEKNR from EXEMPLAREN where STATUS = "in reparatie");
of
select VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, TITEL, STATUS
from AUTEURS, BOEKEN, EXEMPLAREN
where AUTEURS.AUTEURNR = BOEKEN.AUTEURNR and BOEKEN.BOEKNR = EXEMPLAREN.BOEKNR
and STATUS = "in reparatie";
e. select TITEL, RUBRIEK, VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, KLAS
from BOEKEN, LEERLINGEN, UITLENINGEN
where LEERLINGEN.LLNR = UITLENINGEN.LLNR and BOEKEN.BOEKNR = UITLENINGEN.BOEKNR and
KLAS LIKE "6*" and RUBRIEK="nederlands";


24a. select PLAATS, COUNT(*) from LEERLINGEN group by PLAATS having COUNT(*) > 10;
resultaat: Bunnik 16, Houten 22, Utrecht 82
b. select VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, COUNT(TITEL) from AUTEURS, BOEKEN
where AUTEURS.AUTEURNR = BOEKEN.AUTEURNR
group by VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM having COUNT(*) > 5;
resultaat: Willem Frederik Hermans met 12 boeken
c. select TITEL, COUNT(UITLENINGEN.BOEKNR) from BOEKEN, UITLENINGEN
where BOEKEN.BOEKNR = UITLENINGEN.BOEKNR group by TITEL
having COUNT(UITLENINGEN.BOEKNR) > 10;
resultaat: 73 titels die meer dan 10 keer zijn uitgeleend.


25a. select TITEL from BOEKEN where NOT EXISTS
( select BOEKNR from UITLENINGEN where BOEKEN.BOEKNR = UITLENINGEN.BOEKNR);

Het zou trouwens ook zo kunnen:
select TITEL from BOEKEN where not BOEKNR in ( select BOEKNR from UITLENINGEN );
resultaat: 34 boeken
b. select VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, KLAS from LEERLINGEN
where NOT EXISTS ( select LLNR from UITLENINGEN
where LEERLINGEN.LLNR = UITLENINGEN.LLNR
and BOEKNR IN ( select BOEKNR from BOEKEN where RUBRIEK = "nederlands") );
resultaat: 2 leerlingen
c. select VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, SUM(BOETE) from LEERLINGEN, UITLENINGEN
where LEERLINGEN.LLNR = UITLENINGEN.LLNR
group by VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM
having sum(BOETE) > 5 order by sum(BOETE) DESC;


26a. select koenr from koeien where bedrijfsnr in (select bedrijfsnr from bedrijven where plaats="Buitenpost");
of
select koenr from koeien, bedrijven where plaats="Buitenpost" and koeien.bedrijfsnr = bedrijven.bedrijfsnr;
b. select naam, adres, postc, plaats from bedrijven where bedrijfsnr in (select bedrijfsnr from koeien where koenr in (select koenr from jaarprod where kgmelk = (select max(kgmelk) from jaarprod where jaar = "2003") ) );
of
select naam, adres, postc, plaats from bedrijven, koeien where koeien.bedrijfsnr = bedrijven.bedrijfsnr and koenr in (select koenr from jaarprod where kgmelk = (select max(kgmelk) from jaarprod where jaar = "2003") );
c. We gaan er van uit dat met grootmoeder wordt bedoeld de moeder van de moeder. Dan wordt het:
select moeder from koeien where koenr = (select moeder from koeien where koenr = 857);
d. select naam from bedrijven, koeien where koenr > 10000 and bedrijven.bedrijfsnr= koeien.bedrijfsnr;
of
select naam from bedrijven where bedrijfsnr in (select bedrijfsnr from koeien where koenr > 10000) );
e. select bedrijfsnr from koeien where not exists (select koenr from jaarprod where kgmelk > 8000 and koeien.koenr = jaarprod.koenr);
f. De opgave moest zijn: Geef de sql-query die de bedrijfsnummers en het aantal koeien op die bedrijven geeft, van bedrijven die meer dan 100 koeien hebben
De query wordt dan:
select bedrijfsnr, count(*) from koeien group by bedrijfsnr having count(*)>100;


27a. Select naam from leden where leeftijd in (SELECT MIN(leeftijd) FROM leden);
of beter:
Select naam from leden where geboren in (SELECT MAX(geboren) FROM leden);
b. Select naam from leden where score in (SELECT MAX(score) FROM leden);
c. Select naam from leden where not exists (SELECT lidnr FROM competitielid where competitielid.lidnr = leden.lidnr);


28a. Klik op Query's, dan op Ontwerpen. In het venster Tabel weergeven, dat dan verschijnt, klik je op de tabel LEERLINGEN, dan op Toevoegen, en dan op Sluiten.
Daarna vul je het Query-ontwerpvenster zoals hieronder in, en dan klik je op het uitroepteken op de werkbalk. Om er voor te zorgen dat er eerst op de klas wordt gesorteerd en dan op de achternaam, moet de kolom Klas (waarin sorteren wordt uitgekozen) voor de kolom Achternaam (waarin sorteren wordt uitgekozen) staan. Daarom staat de kolom Achternaam er twee keer in, de laatste is alleen voor het sorteren en die wordt niet afgedrukt.



b. Klik op Query's, dan op Ontwerpen. In het venster Tabel weergeven kies je de tabel LEERLINGEN uit.
Daarna kies je in het Query-ontwerpvenster alleen het veld Klas uit.
Dan worden alle klassen verscheidene keren afgedrukt, in het ontwerpvenster kun je distinct niet aangeven zoals wel met SQL kan.
c. Klik op Query's, dan op Ontwerpen. In het venster Tabel weergeven kies je de tabel UITLENINGEN uit.
Daarna kies je in het Query-ontwerpvenster alleen het veld Boete uit, en je typt er zelf het woord max voor en zet haakjes om Boete, zodat er achter Veld max(boete) staat.
d. Dit kan niet in de ontwerpweergave, het moet m.b.v. Group By met SQL
e. Klik op Query's, dan op Ontwerpen. In het venster Tabel weergeven kies je de tabellen AUTEURS en BOEKEN uit.
Daarna vul je het Query-ontwerpvenster zoals hieronder in, en dan klik je op het uitroepteken op de werkbalk.





29a. select TITEL, LEERLINGEN.VOORNAAM, LEERLINGEN.TUSSENVOEGSEL, LEERLINGEN.ACHTERNAAM, AUTEURS.VOORNAAM, AUTEURS.TUSSENVOEGSEL, AUTEURS.ACHTERNAAM, DATUM_UIT
from AUTEURS, BOEKEN, LEERLINGEN, UITLENINGEN
where AUTEURS.AUTEURNR = BOEKEN.AUTEURNR and BOEKEN.BOEKNR = UITLENINGEN.BOEKNR and LEERLINGEN.LLNR = UITLENINGEN.LLNR
and DATUM_UIT < #3-mar-2006# and DATUM_TERUG IS NULL;
b. select EXNR from EXEMPLAREN where BOEKNR=(select BOEKNR from BOEKEN where TITEL = "Giph!") and STATUS = "thuis";
c. select TITEL from BOEKEN, UITLENINGEN
where BOEKEN.BOEKNR = UITLENINGEN.BOEKNR and DATUM_UIT < #10-feb-2006# and DATUM_TERUG IS NULL;
d. select VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM from LEERLINGEN
where LLNR in (select LLNR from RESERVERINGEN
where BOEKNR=66 and DATUM_RESERVERING <=#3-mar-2006# and STATUS = "open");
e. select TITEL, VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, COUNT(UITLENINGEN.BOEKNR) from BOEKEN, AUTEURS, UITLENINGEN
where BOEKEN.BOEKNR = UITLENINGEN.BOEKNR AND BOEKEN.AUTEURNR = AUTEURS.AUTEURNR
group by TITEL, VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM;