Il existe quatre types de données principaux dans le langage SQL.

Les nombres décimaux sont composés de deux parties distinctes; une avant le séparateur décimal et l'autre après. La longueur de cette dernière partie est fixée par un argument spécial, l'échelle, au sein des types de données numériques et la longueur totale par un autre argument, la précision.

La précision détermine la nombre maximum de chiffres d'une valeur numérique.

NUMERIC(Précision, Echelle)
NUMERIC(8, 0)
10 000 000

L'échelle d'une valeur numérique représente le nombre de chiffres de la partie décimale, soit celle à droite du séparateur décimal, le point ou la virgule selon les spécifications du système local.

742.23876 --> Echelle = 5

La valeur de l'échelle ne peut évidemment être égale ou supérieure à la valeur de la précision.

DECIMAL(Precision, Echelle)
DECIMAL(10, 5)
47 304.03274

DECIMAL(10, -7)

47 300

Les données alphanumériques peuvent être de longueur fixe ou variable.

  • Dans le premier cas, il sera toujours demandé un argument indiquant la taille en octets de la chaîne de caractères.
    CHARACTER(10)
    La taille du texte est fixée à 10 caractères.
  • Dans le second cas, le type devra être suivi d'une instruction spécifique, en l'occurrence VARYING permettant à un champ d'accepter des chaînes de caractères de taille variable. En outre, une taille maximum peut également être indiqué en argument.
    CHARACTER VARYING(16384)
    La taille du texte est limitée à 16 384 caractères.
Les valeurs numériques
Type
Description
NUMERIC(Précision, Echelle)
DECIMAL(Précision, Echelle)
DEC(Précision, Echelle)
représente des nombres décimaux avec une précision et une échelle à préciser en arguments (ex: P = 5 et E = 2 --> 01245.32).
INTEGER
INT
représente des nombres entiers longs.
SMALLINT
représente des nombres entiers courts.
FLOAT(Précision, Echelle)
représente un nombre réel avec une précision et une échelle à préciser en arguments (ex FLOAT(10, 5) --> 1042103686.48523).
REAL(Echelle)
représente un nombre réel avec une simple précision.
DOUBLE PRECISION(Précision)
représente un nombre à virgule flotante en double précision.
Les valeurs alphanumériques
Type
Description
CHARACTER(Longueur)
CHAR(Longueur)
représente une valeur alphanumérique de longueur fixe.
CHARACTER VARYING(Longueur)
CHAR VARYING(Longueur)
VARCHAR(Longueur)
représente une valeur alphanumérique de longueur variable.
NATIONAL CHARACTER
NATIONAL CHAR
NCHAR
représente une valeur alphanumérique de longueur fixe dépendant du jeu de caractères du pays.
NATIONAL CHARACTER VARYING
NATIONAL CHAR VARYING
NCHAR VARYING
représente une valeur alphanumérique de longueur variable dépendant du jeu de caractères du pays.
Les valeurs de date et d'heure
Type
Description
DATE
représente une date (ex: 10/01/2002).
TIME
représente une heure (ex: 10:12:42)
TIMESTAMP
représente une valeur de date et d'heure combinées.
INTERVAL
représente un intervalle de date et de temps.
Les valeurs binaires
Type
Description
BIT(Longueur)
représente une chaîne de bit de longueur fixe.
BIT VARYING
représente une chaîne de bit de longueur variable.
BINARY(Longueur)
BYTES(Longueur)
représente une valeur binaire d'une longueur précisée en argument.
IMAGE
représente une valeur binaire permettant de stocker des images.
BOOLEAN
LOGICAL
représente une valeur de type booléenne qui cependant peut dans certain cas propre à SQL comporter trois états.
Sommaire