Espace
Espace
Espace
Virtuel
Virtuel
Virtuel
(X)HTML
Les types de données

Avec MySQL

MySQL reconnaît trois principaux types de données :

  • Les valeurs numériques (les entiers, virgule flottante).
  • Les dates et les heures.
  • Les chaînes de caractères.

Dans chacune de ces catégories, il existe différents types que vous touverez ci-dessous.

Les crochets [ ] présents dans les tableaux ont pour seule fonction de faire ressortir les valeurs optionnelles, ils sont inutiles pour la création de vos tables.

Les types de chaîne

Il existe trois grands types de chaînes :

  • Les chaînes de longueur fixe appelées CHAR et de longueur variable appelées VARCHAR.
  • Les chaînes de types TEXT et les chaînes de types BLOB qui tiennent compte de la différence majuscules/minuscules qui sont des "objets binaires de taille importante" (Binary Large OBjects). Ils peuvent contenir tout ce que vous voulez, comme des images ou des sons.
  • Le type SET est utilisé pour spécifier les valeurs de la colonne qui doivent provenir d'un ensemble particulier de valeurs. Les valeurs de la colonne peuvent contenir plusieurs valeurs provenant de cet ensemble. Vous pouvez avoir au maximum 64 éléments provenant de l'ensemble spécifié et ENUM qui est un type d'énumération très semblable à SET, sauf que les colonnes de ce type ne peuvent contenir qu'une seule des valeurs spécifiées et vous ne pouvez pas placer plus de 65 535 éléments dans cette énumération.

Type de données entiers

TYPE INTERVALLE TAILLE
(octets)
DESCRIPTION
TINYINT[(longueur)] -127 à 128 ou 0 à 255 1 Entiers très courts
BIT -127 à 128 ou 0 à 255 1 Synonyme de TINYINT
BOOL -127 à 128 ou 0 à 255 1 Synonyme de TINYINT
SMALLINT[(longueur)] -32 768 à 32 767 ou 0 à 65 535 2 Entiers courts
MEDIUMINT[(longueur)] -8 388 608 à 8 388 607 ou 0 à 16 777 215 3 Entiers de taille moyenne
INT[(longueur)] -231 à 231-1 ou 0 à 232-1 4 Entiers classiques
INTEGER[(longueur)] -231 à 231-1 ou 0 à 232-1 4 Synonyme de INT
BIGINT[(longueur)] -263 à 263-1 ou 0 à 264-1 8 Entiers larges
(longueur) = la longueur maximale et 255 chiffres.

Type de données à virgule flottante

TYPE INTERVALLE TAILLE
(octets)
DESCRIPTION
FLOAT(précision) Dépend de la précision varie Peut être utilisé pour spécifier des nombres à virgule flottante en simple ou double précision.
FLOAT[(longueur, précision)] ±1.175494351E-38,
±3.402823466E+38
4 Nombres à virgule flottante en simple précision. Equivalent à FLOAT(4), en spécifiant une largeur d'affichage et un nombre de chiffres après la virgule.
DOUBLE[(longueur, précision)] ±1.7976931348623157E+308,
±2.2250738585072014E-308
8 Nombres à virgule flottante en double précision. Equivalent à FLOAT(8), en spécifiant une largeur d'affichage et un nombre de chiffres après la virgule.
DOUBLE PRECISION [(longueur, précision)] Comme ci-dessus 8 Synonyme de DOUBLE.
REAL[(longueur, précision)] Comme ci-dessus 8 Synonyme de DOUBLE.
DECIMAL[(longueur[,précision])] Varie longueur + 2 Nombres à virgule flottante enregistrés dans des CHAR. L'intervalle dépend de la longueur d'affichage.
NUMERIC[(longueur[,précision])] Comme ci-dessus longueur + 2 Synonyme DECIMAL
DEC[(longueur[,précision])] Comme ci-dessus longueur + 2 Synonyme DECIMAL
FIXED[(longueur, précision)] Comme ci-dessus longueur + 2 Synonyme DECIMAL
(longueur) = la longueur maximale et 255.
(précision) = nombre de chiffres après la virgule.

Type de dates et heures

TYPE INTERVALLE DESCRIPTION
DATE 1000-01-01, 9999-12-31 Une date, affichée au format YYYY-MM-DD.
TIME -838:59:59, 838:59:59 Une heure, affichée au format HH:MM:SS.
DATETIME 1000-01-01 00:00:00,
9999-12-31 23:59:59
Une date et une heure, affichées au format YYYY-MM-DD HH:MM:SS.
TIMESTAMP[(longueur)] 1970-01-01 00:00:00 Une date complète (ou timbre à date), utile pour identifier les transactions. Le format d'affichage dépend de la valeur de la longueur (voir le tableau des types d'affichage de TIMESTAMP).
YEAR[(2|4)] 70-69 (1970-2069), 1901-2155 Une année au format 2 ou 4 chiffre. Un intervalle différent correspond à chacun de ces formats.
(longueur) = la longueur maximale et 255.

Les types d'affichage de TIMESTAMP

Type spécifié Affichage
TIMESTAMP YYYYMMDDHHMMSS
TIMESTAMP(14) YYYYMMDDHHMMSS
TIMESTAMP(12) YYMMDDHHMMSS
TIMESTAMP(10) YYMMDDHHMM
TIMESTAMP(8) YYYYMMDD
TIMESTAMP(6) YYMMDD
TIMESTAMP(4) YYMM
TIMESTAMP(2) YY

Type de chaînes classiques

TYPE INTERVALLE DESCRIPTION
[NATIONAL] CHAR(longueur) [BINARY | ASCII | UNICODE] 0 à 255 Chaîne de taille fixe de longueur compris entre 0 et 255.
CHAR [NATIONAL] 0 à 255 Synonyme de CHAR.
[NATIONAL] VARCHAR(longueur) [BINARY] 1 à 255 Comme CHAR, sauf que la longueur et variable.

Définition :

  • [NATIONAL] = Le mot clé NATIONAL spécifie que le jeu de caractères par défaut de MySQL doit être utilisé.
  • [BINARY] = Le mot clé BINARY spécifie que les données doivent être traitées en respectant les majuscules et les minuscules (le comportement par défaut est d'ignorer la casse).
  • [ASCII] = Le mot clé BINARY spécifie que le jeu de caractères latin1 sera utilisé pour cette colonne.
  • [UNICODE] = Le mot clé UNICODE spécifie que le jeu de caractères ucs sera utilisé.

Type TEXT et BLOB

TYPE LONGUEUR MAX DESCRIPTION
TINYBLOB 28-1 soit 255 Un petit champ BLOB.
TINYTEXT 28-1 soit 255 Un petit champ TEXT.
BLOB 216-1 soit 65 535 Un champ BLOB de taille normale.
TEXT 216-1 soit 65 535 Un champ TEXT de taille normale.
MEDIUMBLOB >224-1 soit 16 777 215 Un champ BLOB de taille moyenne.
MEDIUMTEXT 224-1 soit 16 777 215 Un champ TEXT de taille moyenne.
LONGBLOB 232-1 soit 4 294 967 295 Un champ BLOB de grande taille.
LONGTEXT 232-1 soit 4 294 967 295 Un champ TEXT de grande taille.
La longueur maximale d'un champ TEXT (en caractères) correspond à la taille maximale en octets des fichiers qui doivent être enregistrés dans ce champ.

Type SET et ENUM

TYPE Maximum de valeurs dans l'ensemble DESCRIPTION
ENUM( `valeur1`, `valeur2`, etc...) 65 535 Les colonnes de ce type ne peuvent contenir qu'une seule des valeurs listées ou NULL.
SET( `valeur1`, `valeur2`, etc...) >64 Les colonnes de ce type peuvent contenir un ensemble de valeurs spécifiées ou NULL