© Éditions Eyrolles
27
chapitre n° 1
Définition des données
Les types BINARY et VARBINARY sont similaires à CHAR et VARCHAR, excepté par le fait
qu’ils contiennent des chaînes d’octets sans tenir compte d’un jeu de caractères en particulier.
Les quatre types permettant aussi de stocker du texte sont TINYTEXT, TEXT, MEDIUMTEXT,
et LONGTEXT. Ces types sont associés à un jeu de caractères. Il n’y a pas de mécanisme de
suppression d’espaces de fin ni de possibilité d’y associer une contrainte DEFAULT.
Valeurs numériques
De nombreux types sont proposés par MySQL pour définir des valeurs exactes (entiers ou décimaux
positifs ou négatifs : INTEGER et SMALLINT), et des valeurs à virgule fixe ou flottante (FLOAT,
DOUBLE et DECIMAL). En plus des spécifications de la norme SQL, MySQL propose les types
d’entiers restreints (TINYINT, MEDIUMINT et BIGINT). Le tableau suivant décrit ces types :
q
n indique le nombre de positions de la valeur à l’affichage (le maximum est de 255). Ainsi,
il est possible de déclarer une colonne TINYINT(4) sachant que seules 3 positions sont
nécessaires en fonction du domaine de valeurs permises.
Tableau 1-5 Types de données numériques
Type
Description
BIT[(n)]
Ensemble de n bits. Taille de 1 à 64 (par défaut 1).
TINYINT[(n)] [UNSIGNED]
[ZEROFILL]
Entier (sur un octet) de -128 à 127 signé, 0 à 255 non signé.
BOOL et BOOLEAN
Synonymes de TINYINT(1), la valeur zéro est considérée
comme fausse. Le non-zéro est considéré comme vrai. Dans les
prochaines versions, le type boolean, comme le préconise la
norme SQL, sera réellement pris en charge.
SMALLINT[(n)] [UNSIGNED]
[ZEROFILL]
Entier (sur 2 octets) de – 32 768 à 32 767 signé, 0 à 65 535 non
signé.
MEDIUMINT[(n)] [UNSIGNED]
[ZEROFILL]
Entier (sur 3 octets) de – 8 388 608 à 8 388 607 signé, 0 à
16 777 215 non signé.
INTEGER[(n)] [UNSIGNED]
[ZEROFILL]
Entier (sur 4 octets) de –2 147 483 648 à 2 147 483 647 signé,
0 à 4 294 967 295 non signé.
BIGINT[(n)] [UNSIGNED]
[ZEROFILL]
Entier (sur 8 octets) de – 9 223 372 036 854 775 808 à
9 223 372 036 854 775 807 signé, 0 à
18 446 744 073 709 551 615 non signé.
FLOAT[(n[,p])] [UNSIGNED]
[ZEROFILL]
Flottant (de 4 à 8 octets) p désigne la précision simple (jusqu’à
7décimales) de -3.4 10 +38 à -1.1 10 -38 , 0, signé, et de 1.1 10 -38 à
3.4 10 +38 non signé.
DOUBLE[(n[,p])] [UNSIGNED]
[ZEROFILL]
Flottant (sur 8 octets) p désigne la précision double (jusqu’à 15
décimales) de -1.7 10 +308 à -2.2 10 -308 , 0, signé, et de 2.2 10 -308
à 1.7 10 +308 non signé.
DECIMAL[(n[,p])] [UNSIGNED]
[ZEROFILL]
Décimal à virgule fixe, p désigne la précision (nombre de chiffres
après la virgule, maximum 30). Par défaut n vaut 10, p vaut 0.
27
chapitre n° 1
Définition des données
Les types BINARY et VARBINARY sont similaires à CHAR et VARCHAR, excepté par le fait
qu’ils contiennent des chaînes d’octets sans tenir compte d’un jeu de caractères en particulier.
Les quatre types permettant aussi de stocker du texte sont TINYTEXT, TEXT, MEDIUMTEXT,
et LONGTEXT. Ces types sont associés à un jeu de caractères. Il n’y a pas de mécanisme de
suppression d’espaces de fin ni de possibilité d’y associer une contrainte DEFAULT.
Valeurs numériques
De nombreux types sont proposés par MySQL pour définir des valeurs exactes (entiers ou décimaux
positifs ou négatifs : INTEGER et SMALLINT), et des valeurs à virgule fixe ou flottante (FLOAT,
DOUBLE et DECIMAL). En plus des spécifications de la norme SQL, MySQL propose les types
d’entiers restreints (TINYINT, MEDIUMINT et BIGINT). Le tableau suivant décrit ces types :
q
n indique le nombre de positions de la valeur à l’affichage (le maximum est de 255). Ainsi,
il est possible de déclarer une colonne TINYINT(4) sachant que seules 3 positions sont
nécessaires en fonction du domaine de valeurs permises.
Tableau 1-5 Types de données numériques
Type
Description
BIT[(n)]
Ensemble de n bits. Taille de 1 à 64 (par défaut 1).
TINYINT[(n)] [UNSIGNED]
[ZEROFILL]
Entier (sur un octet) de -128 à 127 signé, 0 à 255 non signé.
BOOL et BOOLEAN
Synonymes de TINYINT(1), la valeur zéro est considérée
comme fausse. Le non-zéro est considéré comme vrai. Dans les
prochaines versions, le type boolean, comme le préconise la
norme SQL, sera réellement pris en charge.
SMALLINT[(n)] [UNSIGNED]
[ZEROFILL]
Entier (sur 2 octets) de – 32 768 à 32 767 signé, 0 à 65 535 non
signé.
MEDIUMINT[(n)] [UNSIGNED]
[ZEROFILL]
Entier (sur 3 octets) de – 8 388 608 à 8 388 607 signé, 0 à
16 777 215 non signé.
INTEGER[(n)] [UNSIGNED]
[ZEROFILL]
Entier (sur 4 octets) de –2 147 483 648 à 2 147 483 647 signé,
0 à 4 294 967 295 non signé.
BIGINT[(n)] [UNSIGNED]
[ZEROFILL]
Entier (sur 8 octets) de – 9 223 372 036 854 775 808 à
9 223 372 036 854 775 807 signé, 0 à
18 446 744 073 709 551 615 non signé.
FLOAT[(n[,p])] [UNSIGNED]
[ZEROFILL]
Flottant (de 4 à 8 octets) p désigne la précision simple (jusqu’à
7décimales) de -3.4 10 +38 à -1.1 10 -38 , 0, signé, et de 1.1 10 -38 à
3.4 10 +38 non signé.
DOUBLE[(n[,p])] [UNSIGNED]
[ZEROFILL]
Flottant (sur 8 octets) p désigne la précision double (jusqu’à 15
décimales) de -1.7 10 +308 à -2.2 10 -308 , 0, signé, et de 2.2 10 -308
à 1.7 10 +308 non signé.
DECIMAL[(n[,p])] [UNSIGNED]
[ZEROFILL]
Décimal à virgule fixe, p désigne la précision (nombre de chiffres
après la virgule, maximum 30). Par défaut n vaut 10, p vaut 0.
