Chapter 1 - Lesson 2 Flashcards
Wat is een Imperatieve programmeertaal?
Imperative = أمري. Je zegt HOE je iets wil processen.
Voorbeeld: c, C++, java etc..
Wat is een declaratieve taal?
Je zegt WAT je wil –> SQL
Waarom begint de DB engine met de FROM gedeelte?
Omdat het een machine is. Je zegt stap voor stap wat ie moet doen.
De eerste stap is hem vertellen waar ie die info moet halen.
Hoe vindt de logische query verwerking plaats?
- FROM
- WHERE
- GRUOP BY
- HAVING
- SELECT
- ORDER BY
“From Where George Has Six Oxes?”.
What is the difference between the WHERE and HAVING clauses?
The WHERE clause is evaluated before rows are grouped, and therefore is evaluated
per row. The HAVING clause is evaluated after rows are grouped, and therefore
is evaluated per group.
Why are you not allowed to refer to a column alias defined by the SELECT
clause in the WHERE clause?
Because the WHERE clause is logically evaluated in a phase earlier to the one
that evaluates the SELECT clause.
Why are you not allowed to refer to a column alias defined by the SELECT
clause in the same SELECT clause?
Because all expressions that appear in the same logical query processing phase
are evaluated conceptually at the same point in time.
Mag je in de GROUP BY een expressie plaatsen?
Ja, bijvoorbeeld:
group by Year(hiredate)
Waaraan moet een attribuut in de SELECT list van een gegropeerde query aan voldoen?
- Het is een onderdeel van de group by
of - Wordt gebruikt in een agregaat functie.
Mag je in de Having clause verwijzen naar een alias in de select clause?
Nee, want Having vindt voor select plaats in de verwerking.
Welke 4 voorwaarden gelden voor een relationeel resultaat van een query?
- Geen order by
- Alle attributen moeten een naam hebben
- alle attribuutnamen moeten uniek zijn
- Geen dublicatien in je resultaat.
Geef een voorbeeld van een element dat ons begrip verbetert in de set theorie?
Resultaat zonder order by is niet geordend omdat een set geen rekening houdt met ordening.
Waarom moet ik relationeel model kennen?
Dan weet je dat:
- Volgorde kolommen is onbekend
- Resultaat kolommen moeten een naam hebben (uniek)
- Dubbele waarden zijn niet toegestaan.
Waarom is het belangrijk om standaard code te gebruiken?
- Code en kennis overdraagbaar
2. Platform onafhankelijkheid.
Waarom is ordinal positions niet aanbevolen in de ORder by clause?
- volgens het RM moeten attributen een naam hebben
2. Als de volgorde in je select list wijzigt, dan klopt jouw orderning niet meer.
Als je geen order by in je query gebruikt, hoe wordt het resultat dan gesorteerd?
Niet, want volgens de set theorie is een set niet geordend.
Adviseer je om DISTINCT altijd te gebruiken? en waarom
Als je volgens het RM wil werken wel, maar practish gezien moet je bepalen of je je resultaat volgens het RM wil zien of niet.