Skip to content

Latest commit

 

History

History
282 lines (230 loc) · 5.26 KB

file.MD

File metadata and controls

282 lines (230 loc) · 5.26 KB

Databases cheatsheet

HO7

Werken met 1 tabel

SELECT [Gewenste kollomen]
FROM [Tabel waar kollomen inzitten];

Selectie

SELECT [Gewenste kollomen]
FROM [Tabel waar kollomen inzitten]
WHERE [Selectievoorwaarde bv. afdNr ='D11'];

Vergelijkingsoperatoren

SELECT [Gewenste kollomen]
FROM [Tabel waar kollomen inzitten]
WHERE [Selectievoorwaarde bv. code = 56 , code >= 56];

Gebruik van LIKE of NOT LIKE

SELECT [Gewenste kollomen]
FROM [Tabel waar kollomen inzitten]
WHERE [Selectievoorwaade] LIKE ['%P'];

Wildcards

naam beginnend met P: ’P%’
naam eindigend op C: ’%C’
naam beginnend met ABC: ’ABC%’
naam eindigend met XYZ: ’XYZ%’
naam beginnend met A en eindigend op C: ’A%C’
naam die ergens SON bevat: ’%SON%’

AND, OR en NOT

AND

SELECT [Gewenste kollomen]
FROM [Tabel waar kollomen inzitten]
WHERE [Selectievoorwaade1]  AND  [Selectievoorwaade2];

Zowel sectievoorwaarde1 en Selectievoorwaade2 moeten gelden om gekozen te worden uit de tabel.

OR

SELECT [Gewenste kollomen]
FROM [Tabel waar kollomen inzitten]
WHERE [Selectievoorwaade1]  OR  [Selectievoorwaade2];

Een van de twee sectievoorwaarden moet gelden om gekozen te worden uit de tabel.

Vermijd het gebruik van de NOT operator


BETWEEN

SELECT [Gewenste kollomen]
FROM [Tabel waar kollomen inzitten]
WHERE [Selectievoorwaade1] BETWEEN ['waarde1'] AND ['waarde2'];

IN

Hierdoor kan men de inhoiud van een veld vergelijken met een lijst van waarden.

SELECT [Gewenste kollomen]
FROM [Tabel waar kollomen inzitten]
WHERE [Selectievoorwaade1] IN (['waarde1'] , ['waarde2']);

Gebruik van NULL waarde

SELECT [Gewenste kollomen]
FROM [Tabel waar kollomen inzitten]
WHERE [Selectievoorwaade1] IS NULL;

Combinatie voorbeeld

SELECT [Gewenste kollomen]
FROM [Tabel waar kollomen inzitten]
WHERE [Selectievoorwaade1] = [waarde]
    AND [Selectievoorwaade2] IN (waarde, waarde)
    AND [Selectievoorwaade3] BETWEEN [waarde1] AND [Waarde2]
    AND [Selectievoorwaade4] IS NULL;

Formateren van het resultaat

Gebruik van ORDER BY

ALGEMENE VORM

SELECT *
FROM [Tabel waar kollomen inzitten]
ORDER BY [Kolom-Specificatie] ASC/DESC;

Vb.

SELECT [Gewenste kollomen]
FROM [Tabel waar kollomen inzitten]
WHERE [Selectievoorwaade1] IS NULL
ORDER BY [Selectievoorwaarden] DESC;

Gebruik van DISTINCT/ALL

SELECT = SELECT ALL
SELECT DISTINCT

Distinct gaat alle dubbele waarden overslaan\


BELANGRIJK VOORBEELD

SELECT FNaam
FROM Werknemer
WHERE FNaam = 'De Bruyn';

Elke keer dat 'De Bruyn' in de kolom staat wordt getoond voornaam maakt niet uit.

SELECT DISTINCT FNaam
FROM Werknemer
WHERE FNaam = 'De Bruyn';

Nu kom je 1 keer 'De Bruyn' uit ook al zijn er 2 werknemers met achternaam 'De Bruyn' en andere voormaan.


Oplossing

SELECT DISTINCT FNaam , VNaam
FROM Werknemer
WHERE FNaam = 'De Bruyn';

Gebruik van Aliassen

SELECT DISTINCT [Kolom allias] AS ['KolomNaam']
FROM [Tabel waar kollomen inzitten];

Enkele handige functies

Datum en tijd functies

CURDATE();

Huidige datum JJJJ-MM-DD.

CURTIME();

Huidige tijd UU-MM-SS.

DATEDIFF(expr1, expr2)

Geeft vershil expr1 - expr2 in aantal dagen.

DATE_FORMAT(Datum, Format);
SELECT DATE_FORMAT('2017-10-15' , '%W %d %M %Y')



DAY();

Geeft de dag van de maand weer. getal tussen 1-31.

NOW()

Geeft huidige datum en tijd weer in formaat YYYY-MM-DD HH:MM:SS


Control flow functies

SELECT *
CASE 
    WHEN [Selectievoorwaade1] IS NULL 
        THEN 'Result'
    WHEN [Selectievoorwaade1] = 'value' 
        THEN 'Result'
    ELSE 'result'
END AS []
FROM []
ORDER BY []
IF(expr1, expr2,expr3)

Geeft expr2 indien expr1 waar is en veschillend van NULL zoniet is het resultaat expr3

IFNULL
NULLIF

Statiche Functies

AVG

Gemiddelde

SUM
MIN, MAX



COUNT(*) : Telt Totaal aantal rijen
COUNT(KolomNaam) : Telt aantal velden in kolom
COUNT(DISTINCT KolomNaam)

Gebruik van GROUP BY

Vb. Geef het maximum, het minimum en het gemiddelde salaris van alle werknemers per afdeling.

SELECT Afd, MAX(Salaris), MIN(Salaris), AVG(Salaris)
FROM Werknemer
GROUP BY Afd


HO8

Werken met meedere Tabellen

JOIN van verschillende tabellen

INNER JOIN van vershillende tabllen
2 manieren

SELECT [Kol1], [kol2], [Kol3]
FROM [Tabel1] JOIN [Tabel2] ON [Tabel1.Kol2] = [Tabel2.Kol3]

De ON Clause specifieert dan een bepaalde relatie tussen de rijen die moeten samengevoegd worden


SELECT [KOL1], [Kol2]
FROM [Tabel1] ,  [Tabel2]
WHERE [Tabel1].[Kol1] = [Tabel2].[Kol2];

Join van een tabel met Zichzelf