6.2 Types de colonnes
6 Référence du langage MySQL
Manuel de Référence MySQL 4.1 : Version Française
. Types numériques . Les types date et heure . Les types chaînes . Choisir le bon type de colonne . Utilisation des types de données issues d'autres SGBDR ->Capacités des colonnes
|
6.2.6 Capacités des colonnes
Les capacités de stockage de chaque type de colonnes de MySQL sont listés par catégories.
Capacités de stockage des colonnes numériques
Type de colonne
|
Espace requis
|
TINYINT
|
1 octet
|
SMALLINT
|
2 octets
|
MEDIUMINT
|
3 octets
|
INT
|
4 octets
|
INTEGER
|
4 octets
|
BIGINT
|
8 octets
|
FLOAT(X)
|
4 if X <= 24 or 8 if 25 <= X <= 53
|
FLOAT
|
4 octets
|
DOUBLE
|
8 octets
|
DOUBLE PRECISION
|
8 octets
|
REAL
|
8 octets
|
DECIMAL(M,D)
|
M+2
octets si D > 0,
M+1
octets si D = 0 (
D
+2, si
M < D
)
|
NUMERIC(M,D)
|
M+2
octets si D > 0,
M+1
octets si D = 0 (
D
+2, si
M < D
)
|
Capacités de stockage des colonnes de date et heure
Type de colonne
|
Espace requis
|
DATE
|
3 octets
|
DATETIME
|
8 octets
|
TIMESTAMP
|
4 octets
|
TIME
|
3 octets
|
YEAR
|
1 octet
|
Capacités de stockage des colonnes de texte
Type de colonne
|
Espace requis
|
CHAR(M)
|
M
octets,
1 <= M <= 255
|
VARCHAR(M)
|
L
+1 octets, avec
L <= M
et
1 <= M <= 255
|
TINYBLOB
,
TINYTEXT
|
L
+1 octets,
avec
L
< 2^8
|
BLOB
,
TEXT
|
L
+2 octets,
avec
L
< 2^16
|
MEDIUMBLOB
,
MEDIUMTEXT
|
L
+3 octets,
avec
L
< 2^24
|
LONGBLOB
,
LONGTEXT
|
L
+4 octets,
avec
L
< 2^32
|
ENUM('valeur1','valeur2',...)
|
1 ou 2 octets, suivant le nombre
d'éléments de l'énumération (65535 au maximum)
|
SET('valeur1','valeur2',...)
|
1, 2, 3, 4 ou 8 octets, suivant le
nombre de membres de l'ensemble (64 au maximum)
|
Les types
VARCHAR
,
BLOB
et
TEXT
sont de longueur variable,
et l'espace disque requis dépend de la taille réelle de la valeur présente dans
la colonne, (taille représentée par L dans le tableau précédent) et non pas de
la taille maximale de la colonne. Par exemple une colonne
VARCHAR(10)
peut
contenir une chaîne de 10 caractères. L'espace requis est dans ce cas là la longueur
de la chaîne (
L
), plus 1 octet pour enregistrer la longueur de celle ci.
Pour la chaîne
'abcd'
,
L
est égal à 4 et l'espace requis est de 5 octets.
Les types
BLOB
et
TEXT
requièrent 1, 2, 3, ou 4 octets pour mémoriser
la taille de la valeur dans la colonne, suivant la longueur maximale du type. Les types
BLOB
et
TEXT
.
Si une table inclus au moins une colonne de taille variable, la ligne sera de taille variable.
Notez que lorsqu'une table est créée, MySQL peut, dans certaines circonstances, changer
automatiquement une colonne de taille variable en colonne à taille fixe (et vice-versa).
Silent column changes .
La taille d'un
ENUM
est détérminée par le nombre d'éléments de l'énumération.
Un octet est nécessaire pour les énumérations ayant jusqu'à 255 valeurs possibles.
Deux octets sont nécessaires pour les énumerations ayant jusqu'à 65535 valeurs possibles.
Le type
ENUM
.
La taille d'un
SET
est détéerminé par le nombre de ses membres. Si il y'en
a
N
, l'objet occupe
(N+7)/8
octets, arrondis à 1, 2, 3, 4, or 8 octets.
Un
SET
peut avoir au plus 64 membres. Le type
SET
.
La taille maximale d'une ligne dans une table
MyISAM
est de 65534 octets. Les colonnes
BLOB
et
TEXT
accepentent jusqu'à 5-9 octets en dessous de cette taille.
|