Domaines de données

Introduction

Un attribut d'une relation est défini pour un certain domaine ou type. Les types de données disponibles en SQL varient d'un SGBD[1] à l'autre, on peut néanmoins citer un certain nombre de types standards que l'on retrouve dans tous les SGBD.

FondamentalLes 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).

ConseilFLOAT 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émentLes 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.)

  • ...