H1: SQL Review
1.1 SQL Heeft 3 Sublanguages
Data Definition Language (DDL)
o Aanmaken van databases, definen van database objects zoals tables, stored
procedures…
o CREATE, ALTER, DROP
Data Manipulation Language (DML)
o Queries en data manipulaties
o SELECT, INSERT, UPDATE, DELETE
Data Control Language (DCL)
o Data beveiliging en authorisatie
o GRANT, REVOKE, DENY
Bijkomende language elementen: operators, functies, control of flow (dialecten).
1.2 SELECT
Dit behoort tot de DML groep
Basic structuur van een SELECT-statement:
SELECT [ALL | DISTINCT] {*|expression [, expression ...]} = specifieerd wat er getoond wordt
FROM table name = tabel waaruit de data gehaald wordt
[WHERE conditions(s)] = conditie waaraan de geselecteerde data moet voldoen
[GROUP BY column name [, column name ...] = sorteren op een bepaalde kolom (bv: op Naam)
[HAVING conditions(s)] = condities filteren op groepen
[ORDER BY {column name | seq nr}{ASC|DESC}[,...] = data groeperen
1.2.1 Where
Vergelijkende operatoren:
o =, <, <=, >, >=, <>
Wildcards gebruikt enkel met LIKE en NOT LIKE:
o % -> na het % teken volgen er nog 0, 1 of meerdere tekens
o _ -> 1 karakter
o [] -> 1 karakter in een specified range
o [^] -> elk karakter dat niet in de specified range zit.
Logisiche operatoren
o OR, AND, NOT (stijgende prioriteit)
Waarden in een interval
o BETWEEN, NOT BETWEEN
Lijst van waarden
o IN, NOT IN
Testen voor NULL values
o IS NULL, IS NOT NULL
,1.2.2 ORDER BY
Deze sorteert op 1 of meerdere gegeven sorteer criteria, elk van deze criteria kunnen gespecifieerd
worden door een kolomnaam, een expressie, sequentie van nummer die corresponderen met de
ordering van de kolommen in de SELECT clause (startend van 1).
De criteria gaan van links naar rechts, dus zijnde de meeste linkse criteria wordt eerst toegepast. By
default wordt er stijgend (ASC) gesorteerd, indien anders gewenst kan je dit specifiëren met DESC er
achter te plaatsen.
1.2.3 Data type conversies
Impliciete conversies
o Int met decimaal => resultaat automatisch decimaal
Expliciete conversies
o CAST(<value expression> AS <data type>)
o CONVERT(<data type, <expression> [,<style>])
o FORMAT(datum, ‘datum formaat’) 🡺 datumformaat bijvoorbeeld: ‘dd/MM/yyyy’
1.2.4 String functies
1.2.5 Date / Time Functies
1.2.6 Aritmetische functies
,1.2.7 CASE functie
Voorbeeld van een CASE:
SELECT
CASE
WHEN price IS NULL THEN 'Not yet priced‘
WHEN price < 10 THEN 'Very Reasonable Price'
WHEN price >= 10 and price < 20
THEN 'Affordable'
ELSE 'Expensive!'
END AS "Price Category",
CONVERT(varchar(20), productname)
FROM product
ORDER BY price;
1.2.8 Select en Strings
Je kan twee kolommen als 1 tonen door:
SELECT (kolom1) + ‘(whatever je hier wilt zetten van tekst)’ + (kolom2) AS (zelfgekozen naam)
Je kan ‘literals’ gebruiken, dan wordt er de kolomnaam van elk onderdeel gebruikt als benaming
SELECT (kolom1), ‘(whatever je hier wilt zetten van tekst)’, (kolom2)
1.3 GROUP BY en statistische functies
1.3.1 Statistische functies
Ook gekend als aggregatische functies
SQL heeft 5 standaard functies hiervoor:
SUM() 🡺 geeft de som van alle numerieke waarden in een kolom (kan dus enkel gebruikt
worden op numerieke kolommen)
AVG()
MIN()
MAX()
COUNT() 🡺 telt het aantal niet lege velden, telt ook NULL values
Deze functies geven maar 1 antwoord per kolom (of groep) en kunnen nooit gebruikt worden in een
where-clause.
1.3.2 GROUP BY
De GROUP BY-clause:
Verdeelt de tabel in groepen van rijen met overeenkomende karakteristieken.
Per groep is er minstens 1 unieke rij
Op elke groep kunnen statistische functies toegepast worden
De grouping criteria in de GROUP BY kunnen ook voorkomen in de SELECT
, 1.3.2.1 Filters op groepen adhv HAVING
De HAVING-clause:
Selecteert groepen op basis van groep karakteristieken
Bijvoorbeeld: HAVING COUNT(PRODUCTID) > 10 🡺 toont alle groepen waar er meer dan 10 producten
zijn.
1.4 JOIN
Behoort tot de DML sublanguage.
De JOIN selecteert kolommen van verschillende tabellen en bestaat uit 2 keywords:
JOIN 🡺 specifieert welke tabellen moeten samengevoegd worden en hoe
o Inner join
o Outer join
o Cross join
ON 🡺 specifieert de JOIN conditie.
1.4.1 INNER JOIN
Voegt rijen samen van 1 tabel samen met de rijen van een andere tabel op basis van
overeenkomende criteria.
Deze relatie tussen de tabellen is uitgedrukt adhv:
= (equi-join)
<
>
<>
>=
<=
1.4.2 OUTER JOIN
Returns alle waarden van 1 tabel, ook al is er geen bijhorende record in de andere tabel
Er zijn 3 types OUTER JOIN:
LEFT OUTER JOIN
o Returns alle rijen van de eerste tabel in de FROM-clause
RIGHT OUTER JOIN
o Returns alle rijen van de tweede tabel in de FROM-clause
FULL OUTER JOIN
o Returns alle rijen van de eerste en tweede tabel in de FROM clause ook al is er geen
bijhorende record in de andere tabel.
1.4.3 CROSS JOIN
Hier zijn het aantal rijen in het resultaat gelijk aan het aantal rijen in de eerste tabel vermenigvuldigd
met het aantal rijen in de tweede tabel.
The benefits of buying summaries with Stuvia:
Guaranteed quality through customer reviews
Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.
Quick and easy check-out
You can quickly pay through credit card or Stuvia-credit for the summaries. There is no membership needed.
Focus on what matters
Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!
Frequently asked questions
What do I get when I buy this document?
You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.
Satisfaction guarantee: how does it work?
Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.
Who am I buying these notes from?
Stuvia is a marketplace, so you are not buying this document from us, but from seller BiggieBerto. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy these notes for $5.96. You're not tied to anything after your purchase.