Op deze pagina staat een overzicht van de belangrijkste onderdelen van de SQL syntax. Het is vooral gericht op webdevelopment en het gebruik van SQL server.
Ik heb deze verzameling aangelegd tijdens het maken van (web)pagina's met scripts, omdat ik niet altijd de syntax voor de volle 100% paraat heb (helemaal niet op maandagochtend;-)
Aangezien ik op het web niet een website vond die dit naar mijn smaak op een overzichtelijke en complete wijze presenteert, heb ik zelf een lijstje opgesteld die ik tijdens mijn werk raadpleeg (en aanvul).
Stuur je opmerkingen of aanvullingen naar e-mail.
USE |
USEDatabasenaam |
Hiermee expliciet de database noemen waarop de queries uitgevoerd moeten worden. |
SELECT (basis) |
SELECT kolomnaam<, kolomnaam>
FROM tabelnaam;
SELECT *
FROM tabelnaam; |
Selecteren van bepaalden velden (kolommen) uit de tabel.
Selecteren van alle velden (kolommen) van de tabel |
SELECT (conditioneel) |
SELECT kolomnaam<, kolomnaam>
FROM tabelnaam;
WHERE kolomnaam operator waarde; |
Selecteren van bepaalden velden (kolommen) uit de tabel op basis van een gestelde conditie.
SELECT artiest, leden FROM artiesten WHERE leden > 1
SELECT * FROM distributeuren WHERE contactpersoon = 'eric de draaijer'
|
SELECT (uitgebreid) |
SELECT tabelnaam_1.kolomnaam, tabelnaam_1.kolomnaam
FROM tabelnaam_1, tabelnaam_1
WHERE tabelnaam_1.kolomnaam Operator waarde;
SELECT tabelnaam_1.kolomnaam, tabelnaam_1.kolomnaam
FROM tabelnaam_1, tabelnaam_1
WHERE tabelnaam_1.kolomnaam Operator tabelnaam_2.kolomnaam; |
Selecteren van bepaalden velden (kolommen) uit meerdere tabellen.
Hiertoe kan de kolomnaam worden voorafgegaan door de betreffende tabelnaam en gescheiden door een punt ("."). Dit is alleen verplicht als de kolomnamen niet uniek zijn, maar het is aan te raden om het altijd toe te passen (al was het alleen maar voor de duidelijkheid en om problemen te voorkomen als later de database nog eens wordt uitgebreid). |
SELECT (met aliassen) |
SELECT kolomnaam<
FROM tabelnaam <alias>;
WHERE <alias>.kolomnaam LIKE 'Str%ing'; |
Een eenvoudigere of duidelijkere bijnaam aan een tabel koppelen, waaraan je kunt refereren.
SELECT * FROM distributeuren Dist WHERE Dist.contactpersoon LIKE 'eric%';
SELECT * FROM distributeuren Dist, Artiesten Art WHERE dist.contactpersoon = art.contactpersoon; |
LIKE |
SELECT kolomnaam<, kolomnaam>
FROM tabelnaam;
WHERE kolomnaam LIKE 'Str%ing'; |
Selecteren op basis van de gestelde conditie met een wildcard ondersteuning. Het wildcard-teken "%" kan overal in de string gebruikt worden voor een of meer karakters
SELECT * FROM distributeuren WHERE contactpersoon LIKE 'eric%';
SELECT * FROM distributeuren WHERE contactpersoon LIKE 'eric de draa%er';
SELECT * FROM distributeuren WHERE contactpersoon NOT LIKE '%draaijer'; |
IN & BETWEEN |
SELECT kolomnaam<, kolomnaam>
FROM tabelnaam;
WHERE kolomnaam <NOT> IN (waarde_1 <,waarde_2>);
SELECT kolomnaam<, kolomnaam>
FROM tabelnaam
WHERE kolomnaam BETWEEN waarde_1 AND waarde_2; |
Dit is een alternatief voor het gebruik van Operatoren |
ORDER BY |
SELECT kolomnaam_1<, kolomnaam_2>
FROM tabelnaam
<WHERE ...>
ORDER BY kolomnaam_1 <DESC | ASC>; |
De resultaten sorteren op basis van de genoemde kolom(men).
In oplopende (ASC), of aflopende (DESC, default) waarde. |
JOINS |
- |
Achtergrondinformatie:
Primary key: een kolom of een verzameling kolommen in een tabel die het record uniek maken, m.a.w. in de tabel kunnen geen records voorkomen die dezelfde gegevens bevatten in de kolom(men) die zijn aangemerkt als primary key. (bijvoorbeeld de artiestennamen zouden wel gelijk mogen zijn maar het artiestid is uniek voor elke artiest in de tabel artiesten.)
Foreign key: een kolom in een tabel die in een andere tabel als primary key fungeert, dus deze kolom hoeft niet in zijn eigen tabel als unieke kolom te fungeren. (bijvoorbeeld het artiestenid in de relatietabel is een foreignkey van de artiestentabel, omdat daar het artiestid de primarykey is. |
DISTINCT |
SELECT DISTINCT kolomnaam_1<, kolomnaam_2>
FROM tabelnaam
<WHERE ...> |
Voorkomen dat er meerdere records van de betreffende kolom (_1) worden geselecteerd.
Dit kan bijv. nuttig zijn in gevallen je wilt weten of (en wat/wie) er iets aan de query voldoet, maar niet hoeveel records. |
Operators |
= < of != < > <= >=
NOT AND OR |
is gelijk aan is niet gelijk aan is kleiner dan is groter dan is kleiner of gelijk aan is groter of gelijk aan
Logische operators worden als volgt verwerkt:
de volgorde zoals hiernaast getoond, en;
van links naar rechts.
Deze volgorde is wel te beïnvloeden met (haakjes).
Voorbeeld van verwerking:
True AND False OR True AND True Or False AND False
False OR True Or False
True Or False True
True AND (False OR True) AND True Or False AND False
True AND True AND True OR False AND False
True Or False True |
Functies (aggregate) |
SUM() | geeft 't totaal van alle rijen die voldoen aan de criteria voor een specifieke kolom. |
AVG() | geeft 't gemiddelde van .... |
MAX() | geeft de maximum waarde van .... |
MIN() | geeft de minimum waarde van .... |
COUNT(*) | geeft het aantal rijen dat voldoet aan .... |
|
SELECT SUM(aantal) FROM ceedees WHERE artiest = 'moby'
SELECT AVG(leden) FROM artiesten WHERE manager = 'eric de draayer'
SELECT MAX(leeftijd) FROM artiesten WHERE manager = 'eric de draayer'
SELECT MIN(schoenmaat) FROM artiesten
SELECT COUNT(*) FROM artiesten WHERE schoenmaat > 46 |
Waarden |
getallen (-5, 0, 10, 23.5)
strings (omsluiten met 'enkele quootje')
Wildcard (%), kan overal in de string ter vervanging van 1 of meer karakters worden geplaatst |
SELECT * FROM artiesten WHERE leden = 1;
SELECT * FROM artiesten WHERE artiest = 'moby';
SELECT * FROM artiesten WHERE artiest LIKE 'mo%'; (alle artiesten waarvan de artiestennaam begint met "mo")
SELECT * FROM artiesten WHERE artiest LIKE 'm%o'; (alle artiesten waarvan de artiestennaam begint met een "m" en eindigen met een "o", zoals "mojo")
|
Gereserveerde woorden |
.... |
Tips |
paperlepap |