Als de beheerder van de database een lijst wil hebben van de woonplaatsen, dan zou je de volgende query kunnen opstellen:
Een probleem is echter wel, dat je sommige woonplaatsen meerdere keren in de lijst terugziet. Dat is eigenlijk overbodig, want de beheerder wil alleen weten uit welke steden zijn klanten komen. Om unieke rijen te krijgen kun je het beste gebruik maken van DISTINCT
. Hiermee verwijder je alle dubbele waarden uit het resultaat. De query ziet er als volgt uit:
2.2 Oefening: Geef een lijst van alle landen waar onze klanten vandaan komen
Stel dat de beheerder van de database een lijst wil hebben met voornaam, achternaam en woonplaats van de klanten die lid zijn van de bibliotheek. Dit kan in SQL vrij eenvoudig gerealiseerd worden met de volgende query. Probeer maar eens uit! Ga naar de database op repl.it. Voor het volgende commando uit binnen repl.it:
Krijg je iets wat hier op lijkt:
Dan gaat het goed!
Uitleg: Achter SELECT
staan de kolommen die getoond moeten worden. De kolomnamen worden gescheiden door komma’s. Achter FROM
staat de naam van de tabel (of tabellen) waaruit deze kolommen komen. Een SQL-vraag wordt altijd afgesloten met een puntkomma (;). Een SQL-vraag noem je een query.
Je zou er ook voor kunnen kiezen om alle kolommen uit de Customer tabel te willen zien. Dan kun je natuurlijk alle kolommen achter SELECT
zetten, maar het kan gelukkig veel korter met behulp van *. Zie:
2.1 Oefening: Selecteer de voornaam, achternaam en telefoon van alle Klanten.
De queries die we tot nu toe hebben gemaakt leveren lijsten die niet gesorteerd zijn, terwijl dat best handig kan zijn. Willen we een lijst dat alfabetisch gesorteerd is op voornaam, achternaam, woonplaats of misschien wel een andere kolom, dan kan je het resultaat sorteren m.b.v. de clausule ORDER B
Y. Wanneer de beheerder vraagt om de telefoonlijst van alle klanten op achternaam te sorteren, dan kan dat bijvoorbeeld met de volgende query:
Wanneer je de lijst met telefoonnummers wilt sorteren op achternaam, kan het een probleem worden als sommige achternamen meerdere keren voorkomen. In dat geval kun je de tabel op twee kolommen sorteren:
In beide voorbeelden wordt de tabel oplopend gesorteerd: teksten volgens de ASCII-tabel,
getallen en datums van klein naar groot. Het is ook mogelijk om de volgorde om te keren: aflopend sorteren. De Engelse termen daarvoor zijn ‘ascending’ en ‘descending’ (ASC
en DESC
).
Wanneer je er niets bij zet, wordt automatisch oplopend gesorteerd. Om aflopend te sorteren moet je dat achter de kolom in ORDER BY
zetten.
2.3 Oefening
Maak een lijst van alle klanten (voornaam, achternaam en land) gesorteerd op land en binnen het land op achternaam.