Voorbereiding op programmeerinterviews · Les

Kolommen projecteren en valkuilen met aliassen

Waarom u in WHERE niet naar een SELECT-alias kunt verwijzen en hoe interviewers de scope van aliassen testen

Les 1 van 413 stappen

Kolommen projecteren en valkuilen met aliassen is een gratis Voorbereiding op programmeerinterviews-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Voorbereiding op programmeerinterviews. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Voorbereiding op programmeerinterviews bevat in totaal 4 lessen.

Projectie: Je kolommen kiezen

Het kiezen van de kolommen die een query teruggeeft heet projectie — dat doe je telkens wanneer je SELECT schrijft. Benoem kolommen in echte code expliciet; gebruik SELECT * alleen om snel te verkennen.

SELECT id, first_name, email
FROM employees;

Waarom interviewers SELECT * niet waarderen

Waarom waarderen interviewers SELECT * niet in applicatiecode? Het is kwetsbaar (de kolomvolgorde kan veranderen), verspilt bandbreedte, belemmert het gebruik van indexen en verbergt wat je werkelijk nodig hebt. Benoem je kolommen. 👍

Een kolom een alias geven met AS

Een alias hernoemt een kolom in de uitvoer. Gebruik AS voor duidelijkheid — vooral bij berekende kolommen komt het goed van pas: het geeft rommelige expressies zoals salary * 12 een duidelijke, leesbare kop.

SELECT first_name AS name,
       salary * 12 AS annual_salary
FROM employees;

Aliassen met spaties tussen aanhalingstekens zetten

Als een alias spaties of een gereserveerd woord bevat, moet je die tussen aanhalingstekens zetten. De overdraagbare, standaardmanier is dubbele aanhalingstekens. Tip: houd je gewoon aan namen in snake_case en laat het aanhalen helemaal achterwege.

SELECT salary AS "Annual Pay"
FROM employees;

De grootste valkuil: aliasbereik in WHERE

Dit is de meest geteste valkuil: definieer een alias in SELECT, filter er vervolgens in WHERE op en het mislukt. WHERE wordt vóór SELECT uitgevoerd, dus die alias bestaat nog niet.

-- This raises an error
SELECT salary * 12 AS annual_salary
FROM employees
WHERE annual_salary > 100000;

De reden: de logische uitvoeringsvolgorde

De oplossing is dat je de logische volgorde van clausules kent: FROM, WHERE, GROUP BY, HAVING, SELECT en daarna ORDER BY. SELECT komt bijna aan het einde, dus eerdere clausules kunnen de aliassen ervan niet zien.

Oplossing 1: de expressie herhalen

De meest draagbare oplossing is eenvoudig: herhaal de expressie in WHERE in plaats van de alias te gebruiken. Het is wat uitgebreider, maar het werkt altijd in elke database.

SELECT salary * 12 AS annual_salary
FROM employees
WHERE salary * 12 > 100000;

Oplossing 2: verpakken in een subquery of CTE

Als het herhalen van een lange expressie lelijk aanvoelt, bereken je die eerst in een subquery of CTE. Daar wordt de alias een echte kolom, zodat de buitenste WHERE erop kan filteren.

SELECT *
FROM (
  SELECT first_name, salary * 12 AS annual_salary
  FROM employees
) t
WHERE annual_salary > 100000;

Waar aliassen WEL zijn toegestaan: ORDER BY

Goed nieuws: ORDER BY kan een SELECT-alias gebruiken, omdat die na SELECT wordt uitgevoerd. WHERE, GROUP BY en HAVING kunnen aliassen dus niet zien — maar ORDER BY wel.

SELECT first_name, salary * 12 AS annual_salary
FROM employees
ORDER BY annual_salary DESC;

Dialectverschillen om te noemen

Goed om te noemen: MySQL staat aliassen in GROUP BY en HAVING soepel toe, terwijl Postgres en SQL Server zich aan de standaard houden. Redeneer vanuit de logische volgorde en benoem daarna de uitzondering.

Tabelaliassen versus kolomaliassen

Haal ze niet door elkaar. Een tabelalias verkort een tabelnaam en is overal zichtbaar, zelfs in WHERE. Een kolomalias hernoemt uitvoer en is dat niet — precies het tegenovergestelde.

SELECT e.first_name, e.salary AS pay
FROM employees AS e
WHERE e.salary > 50000;

Korte controle

Test de belangrijkste valkuil.

Samenvatting

Samenvatting: geef de voorkeur aan expliciete kolommen boven SELECT *, en gebruik AS voor aliassen. Een SELECT-alias is onzichtbaar in WHERE/GROUP BY/HAVING, maar werkt in ORDER BY. Los dit op door de expressie te herhalen of een CTE te gebruiken.

Gratis beginnen

Leer Voorbereiding op programmeerinterviews met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
90
Lessen
360

Veelgestelde vragen

Is de les “Kolommen projecteren en valkuilen met aliassen” gratis?

Ja — de volledige tekst van “Kolommen projecteren en valkuilen met aliassen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Voorbereiding op programmeerinterviews wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Voorbereiding op programmeerinterviews bevat in totaal 4 lessen.

Wat leer ik in “Kolommen projecteren en valkuilen met aliassen”?

Waarom u in WHERE niet naar een SELECT-alias kunt verwijzen en hoe interviewers de scope van aliassen testen Je oefent met Voorbereiding op programmeerinterviews door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Voorbereiding op programmeerinterviews te beginnen?

Ervaring vooraf is niet nodig. Voorbereiding op programmeerinterviews op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “Kolommen projecteren en valkuilen met aliassen”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Voorbereiding op programmeerinterviews?

Ja. Elke les over Voorbereiding op programmeerinterviews bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Kolommen projecteren en valkuilen met aliassen
  2. Berekende kolommen en prioriteit van expressies
  3. DISTINCT versus GROUP BY voor uniciteit
  4. CASE-expressies in SELECT
← Terug naar Voorbereiding op programmeerinterviews