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 |
|