Domaines de données
Introduction
Fondamental : Les types standard
INTEGER ou INT, SMALLINT
NUMERIC(X)
DECIMAL(X,Y) ou NUMERIC(X,Y)
FLOAT(X), REAL
CHAR(X)
VARCHAR(X)
DATE (AAAA-MM-JJ)
DATETIME (AAAA-MM-JJ HH:MM:SS)
Les types numériques standard
Les nombres entiers
INTEGER (ou INT) et SMALLINT, permettent de coder des entiers sur 4 octets (-2.147.483.648 à 2.147.483.647) ou 2 octets (-32.768 à 32.767).
Les nombres entiers
NUMERIC(X) désigne un entier de X chiffres au maximum.
Les nombres décimaux
DECIMAL(X,Y), où X et Y sont optionnels et désignent respectivement le nombre de chiffres maximum pouvant composer le nombre, et le nombre de chiffres après la virgule.
NUMERIC(X,Y) est un synonyme standard.
Les nombres à virgule flottante
FLOAT(X), avec X définissant la précision (nombre de bits de codage de la mantisse).
REAL est un synonyme standard de FLOAT(24).
Conseil : FLOAT versus DECIMAL
Il est conseillé d'utiliser DECIMAL qui est un nombre exact, plutôt que FLOAT qui est un nombre approximatif, si la précision requise est suffisante. FLOAT sera réservé typiquement à des calculs scientifiques nécessitant un degré de précision supérieur.
Les types chaîne de caractères standard
On distingue principalement les types CHAR(X) et VARCHAR(X), où X est obligatoire et désigne la longueur de la chaîne.
CHAR définit des chaînes de longueur fixe (complétée à droites par des espaces, si la longueur est inférieure à X) ;
et VARCHAR des chaînes de longueurs variables.
CHAR et VARCHAR sont généralement limités à 255 caractères. La plupart des SGBD proposent des types, tels que TEXT ou CLOB (Character Long Object), pour représenter des chaînes de caractères longues, jusqu'à 65000 caractères par exemple.
Les types date standard
Les types date dont introduits avec la norme SQL2. On distingue :
DATE qui représente une date selon un format de type "AAAA-MM-JJ" ;
et DATETIME qui représente une date plus une heure, dans un format tel que "AAAA-MM-JJ HH:MM:SS".
Complément : Les autres types
En fonction du SGBD, il peut exister de nombreux autres types. On peut citer par exemple :
MONEY pour représenter des décimaux associés à une monnaie,
BOOLEAN pour représenter des booléens,
BLOB (pour Binary Long Oject) pour représenter des données binaires tels que des documents multimédia (images bitmap, vidéo, etc.)
...