Skip to main content

De Wereld-Database

In deze les gaan we een database met drie tabellen gebruiken. De database bevat een tabel city (plaats), een tabel country (land) en een tabel countrylanguage (taal van het land).

We downloaden de file world.zip en unzippen het bestand. Je ziet een nieuw bestand met de naam world.sql. Onthoud waar het staat.

We maken een database zoals we dat eerder hebben gedaan. We starten XAMPP Apache en MySQL en gaan naar 127.0.0.1/phpmyadmin. We maken daar een nieuwe database en noemen die world (wereld). Daarna importeren we het scirpt world.sql. Na een paar seconden is de database aangemaakt.

Laten we met controleren of de database goed is aangemaakt.

Ga naar het tabje SQL in phpmyadmin en voer de volgende queries uit. De getallen tussen haakjes zijn de getallen die je zou moeten zien als je de query uitvoerd.

SELECT count(*) FROM city (4079)

SELECT count(*) FROM country (239)

SELECT count(*) FROM countrylanguage (984)

Als we de city tabel en country tabel bekijken dan zien we het volgende:

TABEL City
Kolomnaam Beschrijving
ID Primary Key (nummer)
Name  Naam van de stad
CountryCode FoeignForeign Key naar Country
District Provincie of Rrgio
Population Bevolkingsgrootte
TABEL Country
Kolomnaam Beschrijving
Code Primary Key (Country Code)
Name Naam van het land (bijvoorbeeld China of Denmark)
Continent Continent (Europe, Africa, ...)
Region Regio
SurfaceArea Opprervlakte
IndepYear Jaar van onafhankelijkheid
Population Bevolkingsgrootte, inwoneraantal
LIfeExpectancy Levensverwachting
GNP Bruto Nationaal Product
GNPOld Oud Bruto Nationaal Product
LocalName Lokale naam
GovernmentForm Regeringsvorm
HeadOfState 'Baas' van het land
Capital Foreign Key naar City
Code2 Officiële landsafkorting (bijv NL)

Opgaven

Opgave 1

Kijk of je Nederland kunt vinden en druk alle kolommen af uit de tabel Country. Zoek daarvoor naar alle rijen waarvan naam begint met 'Net' (van Netherlands).

Zet de query die je gebruikt hebt op je antwoordenblad.

Opgave 2

Zoek nu alle landen die meer dan 100000000 (100 miljoen) inwoners hebben. Dat is een 1 met 9 nullen. Hoeveel landen hebben meer dan 100 miljoen inwoners?

Zet de query die je hebt gebruikt op je antwoordenblad.

Opgave 3

Hoeveel inwoners heeft het land Belgium?

Zet de query die je hebt gebruikt op je antwoordenblad.

Opgave 4

Hoeveel inwoners heeft het land Australia (Australë)? Het inwoneraantal staat in de kolom Population in de tabel country.

Zet de query die je gebruikt hebt op je antwoordenblad.

Opgave 5

We gaan de twee tabellen kopellen met de join. En we drukken alle plaatsen (city) af die in Nederland (Netherland) liggen en die in de database staan. Laten we eerste de join gaan maken. Maak de onderstaande query af en koppel de twee tabellen met de juiste keys aan elkaar.

SELECT *
FROM city
JOIN country
on ... = ...
WHERE country.Name='Netherlands'

Als het goed is zie je nu alle steden in Nederland die in de database staan. Verander de quey nu zo dat je niet alle steden ziet maar dat je gewoon een aantal krijgt.

---

Opgave 6

Hoeveel steden uit Belgium (België) staan er in de database?

Opgave 7

Hoeveel steden onderdeel uitmaken van het Continent Europe (Europa), staan er in de database?

Opgave 8

...

Opgave 9

...

Opgave 10

...

Opgave 11

...

Opgave 12

We gaan nu twee tabellen joinen (samenvoegen). We willen namelijk opzoeken wat de hoofdstad is van Nigeria.

Dat doen we door uit de tabel city de naam van de city te halen. Dat zie je in de eerste twee regels van de query. Dan gaan we de tabel samenvoegen join-en met de country tabel. En als laatste stap selecteren we alleen het juiste land in het gedeelte achter de WHERE.

De query ziet er dus zo uit:

SELECT city.Name
FROM city
join country
on ... = ...
WHERE country.Name = 'Nigeria'

Maak de query af door op de plaats van de ... de juiste primary key en foreign key te zetten.

Zet de query die je hebt gebruikt op je antwoordenblad.

--