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 |
Geavanceerde 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 |