SELECT FUNCTIENAAM(kolom1) FROM <tabel>;
| Type Functie | Omschrijving |
|---|---|
| Tekst functies | Voeren een bewerking uit op tekst (strings). Zoals het weghalen van spaties in een veld of alle karakters omzetten naar hoofdletters |
| Numerieke functies | Voeren een bewerking uit op getallen (integers). Zoals getallen met een komma omzetten in gehele getallen of een vierkantswortel berekenen |
| Datum en tijd functies | Voeren een bewerking uit op datum en tijdnotaties. Zoals het verschil tussen 2 tijdstippen berekenen of 7 dagen toevoegen aan de huidige datum |
| Overige functies | Uiteenlopende functionaliteiten. Zoals velden converteren naar een ander datatype of de huidige datum opvragen bij het DBMS |
| Aggregaat functies | Functies die over meerdere velden worden uitgevoerd. Zoals het gemiddelde van een kolom of een optelling van een kolom (Zie hoofdstuk 9) |
| Functie | Omschrijving |
|---|---|
| LEN(veld) of LENGTH(veld) | Geeft de lengte van een veld |
| LOWER(veld) of LCASE(veld) | Converteert de string naar kleine letters |
| UPPER(veld) of UCASE(veld) | Converteert de string naar hoofdletters |
| TRIM(veld) | Haalt spaties om een waarde in een veld weg |
| SUBSTR(veld, 3, 5) of SUBSTRING(veld, 3, 5) | Pakt een deel van de waarde in een veld (startpositie en de lengte) |
| SOUNDEX(veld) W3S Uitleg |
Fonetische conversie van een tekst (via algoritme) naar een alfanummeriek patroon. Het alfanummeriek patroon geeft de fonetische eigenschapen van het woord weer. (niet ondersteund door PostgreSQL) |
Selecteer uit Customers de klantnaam en klant-contactnaam. Geef alle namen die klinken als "Michael Green."
-- Oracle / MySQL / SQL Server SELECT cust_name, cust_contact FROM Customers WHERE SOUNDEX(cust_contact) = SOUNDEX('Michael Green');
| cust_name | cust_contact |
| Kids Place | Michelle Green |
Selecteer uit Vendors de leveranciersnamen en geef deze in hoofdletters weer.
-- Oracle / MySQL / SQL Server SELECT UPPER(vend_name) AS Leveranciers FROM Vendors ORDER BY vend_name;
| Leveranciers |
| BEAR EMPORIUM |
| BEARS R US |
| DOLL HOUSE INC. |
| FUN AND GAMES |
| FURBALL INC. |
| JOUETS ET OURS |
| Functie | Omschrijving |
|---|---|
| ROUND(veld, 2) | Rond een getal af op 2 decimalen |
| CEILING(veld) | Rond een getal naar boven af |
| FLOOR(veld) | Rond een getal naar beneden af |
| MOD(veld, 3) | Geef de restwaarde van een deling door 3 |
Selecteer uit OrderItems de item_prijs maal hoeveelheid, Geef de nieuwe kolom de naam 'Totaalprijs' en rond af naar beneden. Sorteer aflopend op totaalprijs.
-- Oracle / MySQL / SQL Server SELECT FLOOR(item_price * quantity) AS Totaalprijs FROM OrderItems ORDER BY Totaalprijs DESC;
| Totaalprijs |
| 1099 |
| 622 |
| 622 |
| 622 |
| 574 |
| 549 |
| 299 |
| 299 |
| 299 |
| 224 |
| 119 |
| 119 |
| 89 |
| 59 |
| 34 |
| 34 |
| 34 |
| 24 |
| Functie | Oracle | MYSQL | SQL Server | PostgreSQL | SQLite |
|---|---|---|---|---|---|
| Geeft de huidige datum | CURRENT_DATE | CURRENT_DATE( ) | GETDATE( ) | CURRENT_DATE( ) | DATE( ) |
| Dagen toevoegen aan datum | DATEADD( ) | ADDDATE( ) | DATEADD( ) | Geen functie maar operators | DATE( ) |
| Haal een element uit de datum | EXTRACT( ) | EXTRACT( ) | DATEPART( ) | EXTRACT( ) | STRFTIME( ) / SUBSTR( ) |
| Hoeveel dagen tussen 2 data | DATEDIFF( ) | DATEDIFF( ) | DATEDIFF( ) | Geen functie maar operators | JULIANDAY( ) |
Selecteer alle Orders gemaakt in de maand MEI
-- Oracle / MySQL / PostgreSQL SELECT * FROM Orders WHERE EXTRACT(month FROM order_date) = 5;
-- MySQL / SQL Server SELECT * FROM Orders WHERE MONTH(order_date) = 5;
-- SQL Server SELECT * FROM Orders WHERE DATEPART(mm, order_date) = 5;
-- SQLite SELECT * FROM Orders WHERE SUBSTR(order_date, 6,2) = '05';
| order_num | order_date | cust_id |
| 20005 | 2012-05-01 00:00:00 | 1000000001 |
| Functie | Omschrijving |
|---|---|
| CAST(veld AS datatype) | Converteert een waarde naar een ander datatype |
| IFNULL(veld) | Veranderd een NULL-waarde in het resultaat naar een andere waarden |
| VERSION( ) | Geeft het versienummer van de DBMS server |
Selecteer de productnaam en de productprijs inclusief 21% BTW en rond af naar twee decimalen
-- Oracle / SQL Server SELECT prod_name, CAST(prod_price * 1.21 AS DECIMAL(8,2)) AS PrijsIncl FROM Products ORDER BY PrijsIncl;
-- MySQL / Oracle / Azure SQL Server / PostgreSQL SELECT prod_name, ROUND(prod_price * 1.21,2) AS PrijsIncl FROM Products ORDER BY PrijsIncl;
| prod_name | PrijsIncl |
| Fish bean bag toy | 4.22 |
| Bird bean bag toy | 4.22 |
| Rabbit bean bag toy | 4.22 |
| Raggedy Ann | 6.04 |
| 8 inch teddy bear | 7.25 |
| 12 inch teddy bear | 10.88 |
| King doll | 11.48 |
| Queen doll | 11.48 |
| 18 inch teddy bear | 14.51 |
Selecteer alle emailadressen van de klanten en verander de NULL-waarden in 'Onbekend'
-- Oracle SELECT NVL(cust_email,'Onbekend') EmailAdressen FROM Customers;
-- MySQL SELECT IFNULL(cust_email,'Onbekend') AS EmailAdressen FROM Customers;
-- SQL Server SELECT ISNULL(cust_email,'Onbekend') AS EmailAdressen FROM Customers;
-- Oracle / MySQL / SQL Server / PostgreSQL SELECT COALESCE(cust_email,'Onbekend') AS EmailAdressen FROM Customers;
| EmailAdressen |
| sales@villagetoys.com |
| Onbekend |
| jjones@fun4all.com |
| dstephens@fun4all.com |
| Onbekend |
Selecteer de huidige datum
-- Oracle SELECT SYSDATE HuidigeDatum FROM dual;
-- MySQL SELECT CURDATE() AS HuidigeDatum;
-- SQL Server SELECT CAST(GETDATE() AS Date) AS HuidigeDatum;
-- PostgreSQL SELECT CURRENT_DATE AS HuidigeDatum;
| HuidigeDatum |
| 2022-08-26 |