Bij het creëren van een tabel in een database definieert de SQL-instructie voor het creëren van de tabel het gegevenstype voor elke kolom van de tabel. Het toewijzen van typen is weliswaar niet vereist maar u wordt toch aangeraden het kolomtype expliciet op te geven in uw SQL-instructies
CREATE TABLE
.
Normaliter wordt elk object dat u in een database opslaat met de instructie
INSERT
, weergegeven als een instantie van hetzelfde gegevenstype wanneer u de instructie
SELECT
uitvoert. De opgehaalde waarde kan echter een ander gegevenstype hebben, afhankelijk van de toewijzing van het type aan de databasekolom waarin de waarde is opgeslagen. Als het gegevenstype van een waarde die in een kolom wordt opgeslagen, niet overeenkomt met het type dat aan de kolom is toegewezen, probeert de database de waarde om te zetten in het type dat aan de kolom is toegewezen. Als bijvoorbeeld het gegevenstype
NUMERIC
aan een databasekolom is toegewezen, probeert de database ingevoegde gegevens om te zetten in een numerieke opslagklasse (
INTEGER
of
REAL
) voordat de gegevens worden opgeslagen. De database genereert een foutmelding als de gegevens niet kunnen worden omgezet. Als de tekenreeks “12345” wordt ingevoegd in een kolom van het type
NUMERIC
, zet de database op basis van deze regel de tekenreeks automatisch om in het geheel getal 12345 voordat de waarde in de database wordt opgeslagen. Wanneer de waarde wordt opgehaald met de instructie
SELECT
, wordt deze weergegeven als een instantie van een numeriek gegevenstype (bijvoorbeeld Number) in plaats van een tekenreeksinstantie.
De beste manier om ongewenste omzetting van het gegevenstype te voorkomen, is het in acht nemen van twee regels. Ten eerste: definieer elke kolom met het type dat overeenkomt met het type gegevens dat u wilt opslaan. Ten tweede: voeg alleen waarden in waarvan het gegevenstype overeenkomt met het toegewezen type. Het in acht nemen van deze regels biedt twee voordelen. Wanneer u de gegevens invoegt, worden deze niet onbedoeld omgezet (waardoor mogelijk de bedoelde betekenis verloren zou gaan). Bovendien worden de gegevens bij het ophalen weergegeven met het oorspronkelijke gegevenstype.
Zie
Ondersteuning van gegevenstypen
voor meer informatie over de beschikbare typen voor kolomaffiniteit en over het gebruik van gegevenstypen in SQL-instructies.