
Datatypes en functies
Introductie
Data komt in verschillende soorten voor.
Denk maar aan:
- Getallen
- Tekst
- Datums
- Etc.
SQL kent voor verschillende soorten data in kolommen, verschillende datatypes.
Verschillende datatypes heeft meerdere voordelen, bijvoorbeeld:
- Optimaler geheugengebruik.
- Verschillende functies voor verschillende eigenschappen van datatypes, denk aan:
- Berekeningen voor getallen.
- Aanpassingen doen op, en zoeken in, tekst.
1. Verschillende SQL datatypes
Verschillende veelvoorkomende SQL datatypes zijn:
INT: gehele getallen.DECIMAL,FLOAT: kommagetallen.VARCHAR,NVARCHAR: tekst.DATETIME: datum en tijd.BIT/BOOL: waar/niet waar (boolean).
Zie het voorbeeld in tabel movies:

2. Verschillende functies voor verschillende datatypes
Er zijn verschillende handige functies.
We kennen de functie COUNT() al, om het aantal rijen van een selectie te berekenen:
| count |
|---|
| 36 |
- Hierbij wordt het aantal rijen in tabel
moviesgeteld.
2.1. Functies voor getallen
Functie MIN() geeft de laagste, minimale, waarde:
| min |
|---|
| 1972 |
Functie MAX() geeft de hoogste, maximale, waarde:
| max |
|---|
| 2005 |
Functie AVG() (average) geeft het gemiddelde:
| avg |
|---|
| 7.791176470588234 |
Functie SUM() geeft de som:
| sum |
|---|
| 264.9 |
2.2. Functies voor tekst
Functie LENGTH() geeft de lengte, het aantal karakters, van de tekst:
| name | length |
|---|---|
| Aliens | 6 |
| Animal House | 12 |
| Apollo 13 | 9 |
| ... | ... |
Let op:
LENGTH()werkt niet in in alle SQL-dialecten.
Functie UPPER() geeft de tekst in hoofdletters:
| name | upper |
|---|---|
| Aliens | ALIENS |
| Animal House | ANIMAL HOUSE |
| Apollo 13 | APOLLO 13 |
| ... | ... |
Functie LEFT(column_name, <n>) geeft het aantal karakters vanaf de linkerkant:
| name | left |
|---|---|
| Aliens | Ali |
| Animal House | Ani |
| Apollo 13 | Apo |
| ... | ... |
- Je geeft hierbij het aantal karakters op.
Functie REPLACE(column_name, <old_string>, <new_string>) geeft de tekst waarbij je karakters kunt vervangen. Deze functie is hoofdlettergevoelig.
| name | replace |
|---|---|
| Aliens | Prefix_Aliens |
| Animal House | Prefix_Animal House |
| Apollo 13 | Prefix_Apollo 13 |
| Batman Begins | Batman Begins |
| Braveheart | Braveheart |
| ... | ... |
- Je geeft hierbij de oude en nieuwe tekst op.
- Let op dat je de teksten tussen enkele quotes plaatst.
Functie CONCAT(<string_1>, ..., <string_n>) plakt verschillende teksten aan elkaar:
| name | replace |
|---|---|
| Aliens | before_Aliens_after |
| Animal House | before_Animal House_after |
| Apollo 13 | before_Apollo 13_after |
| Batman Begins | before_Batman Begins_after |
| Braveheart | before_Braveheart_after |
| ... | ... |
- Je geeft hierbij de oude en nieuwe tekst op.
- Let op dat je de teksten tussen enkele quotes plaatst.
2.3. Functies voor datums
In onze IMDb database bevinden zich geen datums.
Maar onderstaande functies zijn te gebruiken bij datums:
Functie EXTRACT(YEAR FROM <date>) geeft het jaar van een datum:
| current_date | current_year |
|---|---|
| 2023-08-22 10:32:15.129857+00 | 2023 |
Functie NOW() geeft de huidige datum en tijd:
Functie EXTRACT(MONTH FROM <date>) geeft de maand van een datum:
| current_date | current_month |
|---|---|
| 2023-08-22 10:34:09.949947+00 | 8 |
Er zijn nog veel meer functies. Bovenstaand overzicht toont slechts een indicatie van veelgebruikte functies. Let op: Er zijn verschillen tussen de SQL dialecten.
Samenvatting
- Iedere kolom in een SQL database tabel heeft een datatype.
- Het heeft effect op het geheugengebruik.
- Voor verschillende datatypes kun je verschillende functies gebruiken.
- Veelvoorkomende datatypes zijn:
INT: gehele getallen.DECIMAL,FLOAT: kommagetallen.VARCHAR,NVARCHAR: tekst.DATETIME: datum en tijd.BIT/BOOL: waar/niet waar (boolean).
- Veelgebruikte functies zijn:
- Algemeen:
COUNT(): tel het aantal rijen.
- Getallen:
MIN(): geeft de minimale waarde.MAX(): geeft de maximale waarde.AVG(): geeft het gemiddelde.SUM(): geeft de som.
- Tekst:
LENGTH(): geeft het aantal karakters.UPPER(): geeft tekst in hoofdletters.LEFT(): geeft het eerste aantal karakters.REPLACE(): vervangt een tekst door een andere tekst.CONCAT(): voegt teksten samen.
- Datums:
YEAR(): geeft het jaar.MONTH(): geeft de maand.
- Algemeen: