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 Voorbeeld
ID Primary Key (nummer) 19
Name Naam van de stad Amsterdam
CountryCode Foreign Key naar Country NLD
District Provincie of Regio Noord-Holland
Population Bevolkingsgrootte 731200
TABEL Country  
Kolomnaam Beschrijving Voorbeeld
Code Primary Key (Country Code) NLD
Name Naam van het land Netherlands
Continent Continent Europe
Region Regio Western Europe
SurfaceArea Oppervlakte (in KM2) 41526.00
IndepYear Jaar van onafhankelijkheid 1581
Population Bevolkingsgrootte, inwoneraantal 15864000
LIfeExpectancy Levensverwachting 78.3
GNP Bruto Nationaal Product 371362.00
GNPOld Oud Bruto Nationaal Product 360478.00
LocalName Lokale naam Nederland
GovernmentForm Regeringsvorm Constitutional Monarchy
HeadOfState 'Baas' van het land Alexander
Capital Foreign Key naar City 5
Code2 Officiële landsafkorting (bijv NL) 2

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 query 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?

Zet de query die je gebruikt hebt op je antwoordenblad.

Opgave 7

Hoeveel steden uit France (Frankrijk) staan er in de database?

Zet de query die je gebruikt hebt op je antwoordenblad.

Opgave 8

Hoeveel steden uit Morocco (Marocco) staan er in de database?

Zet de query die je gebruikt hebt op je antwoordenblad.

Opgave 9

Hoeveel landen van het Continent Europe (Europa), staan er in de database?

Zet de query die je gebruikt hebt op je antwoordenblad.

Opgave 10

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

Zet de query die je gebruikt hebt op je antwoordenblad.

Opgave 11

Hoeveel steden die onderdeel uitmaken van het Continent Africa (Afrika), staan er in de database?

Zet de query die je gebruikt hebt op je antwoordenblad.

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.

---

Opgave 13

In de World database staat nog een derde tabel en die heet countrylanguage. In deze tabel staat de CountryCode. Dit is een foreign key naar de Code kolom in de tabel country.

Maak nu een de voglende query af door op de plaats van de puntjes de juiste tabelnaam of kolomnamen in te vullen:

SELECT country.Continent, country.Name, countrylanguage.Language, countrylanguage.Percentage
FROM countrylanguage
JOIN ........
ON ........ = ........
WHERE countrylanguage.Language='Dutch'
ORDER BY countrylanguage.Percentage desc

Kijk goed naar de uitkomst van de query. Als het goed is kun je zien hoeveel procent van de inwoners van België Nederlands (Dutch) praten. Zorg dat alles regels van de query begrijpt voordat je verder gaat naar de voglende opgave.

Zet de werkende query op je antwoordenblad.

Opgave 14

Voor de volgende vraag kun je de query van opgave 12 als basis gebruiken.

Bepaal welke talen er in België worden gesproken en hoeveel procent van de inwoners elke taal spreekt.

SELECT country.Continent, country.Name, countrylanguage.Language, countrylanguage.Percentage, countrylanguage.IsOfficial
FROM countrylanguage
FROM ........
JOIN ........
ON ........ = ........
WHERE ........ = 'Belgium'
ORDER BY countrylanguage.Percentage desc

In de laatste kolom 'IsOfficial' kun je zien of het een officiele taal van het land is. (T=true en F=false).

Zet de werkende query op je antwoordenblad.

Opgave 15

In de vorige query kon je in de laatste kolom 'IsOfficial'  zien of het een officiele taal van het land is. (T=true en F=false). Verander nu de query van Opgave 13 zodat je alleen de officiële talen te zien krijgt.

Zet de werkende query op je antwoordenblad.

Opgave 16

Hoveel oficiële talen heeft 'South Africa' ?

Zet de query waarmee je dit antwoord hebt bepaald op je antwoordenblad.

Opgave 17

Hoeveel niet-oficiële talen heeft 'India'?

Zet de query waarmee je dit antwoord hebt bepaald op je antwoordenblad.

Opgave 18

Hoeveel talen (officieel en niet-officieel) worden er op het continent 'Europe' gesproken?

Zet de query waarmee je dit antwoord hebt bepaald op je antwoordenblad.

Opgave 19

Hoeveel officiële talen worden er op het continent 'Europe' gesproken?

Zet de query waarmee je dit antwoord hebt bepaald op je antwoordenblad.

--