3 SELECT count(*)
SELECT count(*) en SELECT *
In de select kunnen we ook alleen het aantal rijen dat we terugkrijgen tellen. Stel we willen weten hoeveel lander er in de tabel Country staan dan kan met de volgende SQL Query.
SELECT count(*)
FROM Country
Als je alle kolommen wilt afdrukken dan kun je ook alleen * gebruiken:
SELECT *
FROM Country
Probeer nu zelf:
SELECT count(*)
FROM country
WHERE name like 'F%'
SELECT *
FROM country
WHERE name like 'F%'
Zie je wat het verschil is?
Als je een SELECT count(*) gebruikt dan wil je dus een aantal weten. Je krijgt dan alleen een getal. Bijvoorbeeld alle leerlingen die een voldoende hebben gehaald.
SELECT count(*)
FROM leerlingen
WHERE cijfer >= 5.5
De uitkomst van deze query is bijvoorbeeld 10. Er zijn in dat geval 10 leerlingen die een 5.5 of hoger hebben gehaald. Na de count(*) kan je geen andere kolommen namen meer opvragen.
SELECT count(*), name (is FOUT!)
Kan dus niet want je kan niet alleen het aantal van iets afdrukken en dan de name ook nog afdrukken. Je wilt of de name zien of alleen het aantal.
count(*) staat altijd alleen en eenzaam na de SELECT.
(Later zul je zien dat er op deze regel uitzonderingen bestaan, maar dat komt pas als we meer ingewikkelde queries gaan maken).
Opdrachten
(schrijf van elke vraag de query die je hebt gebruikt op en maak gebruik van count(*) )
- Hoeveel landen zijn waarvan de naam begint met een N?
- Hoeveel landen hebben een oppervlakte van minder dan 100 km2?
- Hoeveel landen hebben een inwoneraantal meer dan 0 en minder dan 1000 inwoners?
- Hoeveel landen liggen er op het continent 'Europe'?
- Hoeveel landen liggen er op het continent 'South America' met meer dan 10 miljoen inwoners?
- Hoeveel landen liggen er op het continent 'Africa' met meer dan 10 miljoen inwoners?
- Hoeveel landen liggen er op het continent 'Europe' die kleiner zijn in oppervlakte ('SurfaceArea') dan Nederland?
- Hoeveel landen liggen er op het continent 'Europe' die groter zijn in inwoneraantal ('Population') dan Nederland?
--