Les types de champs dans les
tables
Le sommaire :
Lorsque vous déclarez une table, vous devez bien sûr prévoir les différents champs qui la composeront.
En fonction de la nature des données à stocker, vous devez choisir un type pour chacun des champs, ainsi que sa taille.
Remarque :
J’ai extrait la liste des types de données directement depuis INTERNET, Je ne suis pas l’auteur des écrits qui suivent…
Pour les champs de type numérique,
l'option « UNSIGNED » va vous permettre d’économiser de la place,
mais vous ne pouvez stocker que des valeurs positives.
Varchar :
Texte dont la taille est variable
selon la taille que vous lui assignez dès sa création. Si par exemple vous
choisissez un champ de type varchar de longueur 5, la
taille occupée ne sera que d’un seul caractères si vous n’affectez qu’un seul
caractère dans le champ. Par contre, vous ne pourrez pas dépasser 5 caractères.
TINYINT, [M] [UNSIGNED] :
Occupe 1 octet. Ce type peut
stocker des nombres entiers de -128 à 127 si il ne porte pas l'attribut
UNSIGNED, dans le cas contraire il peut stocker des entiers de 0 à 255.
SMALLINT
[M] [UNSIGNED] :
Occupe
2 octets. Ce type de données peut stocker des
nombres entiers de -32 768 à 32 767 si il ne porte pas l'attribut UNSIGNED,
dans le cas contraire il peut stocker des entiers de 0 à 65 535.
MEDIUMINT [M]
[UNSIGNED] :
Occupe 3 octets. Ce type de
données peut stocker des nombres entiers de -8 388 608 à 8 388 607 si il ne
Porte pas l'attribut UNSIGNED,
dans le cas
contraire il peut stocker des
entiers de 0 à 16 777 215.
INT [M] [UNSIGNED] :
Occupe 4 octets. Ce type de
données peut stocker des nombres entiers de -2 147 483 648 à 2 147 483 647 si
il ne porte pas l'attribut UNSIGNED, dans le cas
contraire il peut stocker des
entiers de 0 à 4 294 967 295.
INTEGER [M]
[UNSIGNED] :
Identique au type int.
BIGINT [M] [UNSIGNED] :
Occupe 8 octets. Ce type de
données stocke les nombres entiers allant de -9 223 372 036 854 775 808 à 9 223
372 036 854 775 807 sans l'attribut UNSIGNED,
et de 0 à 18 446 744 073 709 551
615 avec.
FLOAT (précision simple de 0 à 24
et précision double de 25 à 53) [UNSIGNED] :
Occupe 4 octets si la précision
est inférieure à 24 ou 8 au delà.
Stocke un nombre de type flottant.
FLOAT[(M,D)]
[UNSIGNED] :
Occupe
4 octets. M est le nombre de chiffres et D est
le nombre de décimales.
Ce type de données permet de
stocker des nombres flottants à précision simple. Va de -1.175494351E-38 à
3.402823466E+38. Si UNSIGNED est activé, les nombres
négatifs sont retirés mais ne
permettent pas d'avoir des nombres positifs plus grands.
DOUBLE PRECISION[(M,D)] :
Occupe 8 octets. Identique au type
DOUBLE
DOUBLE [(M,D)] :
Occupe 8 octets. Stocke des
nombres flottants à double précision de -1.7976931348623157E+308 à
-2.2250738585072014E-308, 0, et de 2.2250738585072014E-308
à 1.7976931348623157E+308.
Si UNSIGNED est activé, les
nombres négatifs sont retirés mais ne permettent pas d'avoir des nombres
positifs plus grands.
REAL[(M,D)] :
Occupe 8 octets. Identique au type
DOUBLE
DECIMAL[(M[,D])] :
Occupe M+2 octets si D > 0, M+1
octets si D = 0
Contient des nombres flottants
stockés comme des chaînes de caractères.
NUMERIC [(M,D)] :
Identique au type DECIMAL
DATE :
Occupe 3 octets. Stocke une date
au format 'AAAA-MM-JJ' allant de '1000-01-01' à '9999-12-31'
DATETIME :
Occupe 8 octets. Stocke une date
et une heure au format 'AAAA-MM-JJ HH:MM:SS' allant de '1000-01-01 00:00:00' à
'9999-12-31 23:59:59'
TIMESTAMP [M] :
Occupe 4 octets. Stocke une date
sous forme numérique allant de '1970-01-01 00:00:00' à l'année 2037.
L'affichage dépend des valeurs de M : AAAAMMJJHHMMSS,
AAMMJJHHMMSS, AAAAMMJJ, ou AAMMJJ
pour M égal respectivement à 14, 12, 8, et 6
TIME :
Occupe 3 octets. Stocke l'heure au
format 'HH:MM:SS', allant de '-838:59:59' à '838:59:59'
YEAR :
Occupe 1 octet. Année à 2 ou 4
chiffres allant de 1901 à 2155 ( 4 chiffres) et de 1970-2069 (2 chiffres).
[NATIONAL] CHAR(M) [BINARY] :
Occupe M octets, M allant jusqu'à
255
Chaîne de 255 caractères maximum
remplie d'espaces à la fin. L'option BINARY est utilisée pour tenir compte de
la casse.
BIT :
Occupe 1 octet. Identique à
CHAR(1)
BOOL :
Occupe 1 octet. Identique à
CHAR(1)
CHAR (M) :
Occupe M octets. Stocke des
caractères. Si vous stockez un caractère et que M vaut 255, la donnée prendra
255 octets. Autant employer ce type de données pour des mots de longueur
identique.
VARCHAR (M) [BINARY] :
Occupe L+1 octets (ou L représente
la longueur de la chaîne).
Ce type de données stocke des
chaînes de 255 caractères maximum. L'option BINARY permet de tenir compte de la
casse.
TINYBLOB (L représente la longueur
de la chaîne)
Occupe L+1 octets.
Stocke des chaînes de 255
caractères maximum. Ce champ est sensible à la casse.
TINYTEXT :
Occupe L+1 octets.
Stocke des chaînes de 255
caractères maximum. Ce champ est insensible à la casse.
BLOB :
Occupe L+1 octets.
Stocke des Chaînes de 65535
caractères maximum. Ce champ est sensible à la casse.
TEXT :
Occupe L+2 octets.
Stocke des chaînes de 65535
caractères maximum. Ce champ est insensible à la casse.
MEDIUMBLOB :
Occupe L+3 octets.
Stocke des chaînes de 16777215
caractères maximum.
MEDIUMTEXT :
Occupe L+3 octets.
Chaîne de 16 777 215 caractères
maximum. Ce champ est insensible à la casse.
LONGBLOB :
Occupe L+4 octets.
Stocke des chaînes de 4 294 967
295 caractères maximum. Ce champ est sensible à la casse.
LONGTEXT :
Occupe L+4 octets.
Stocke des chaînes de 4 294 967
295 caractères maximum.
ENUM('valeur_possible1','valeur_possible2','valeur_possible3',...)
Occupe 1 ou 2 octets (la place
occupée est en fonction du nombre de solutions possibles : 65 535 valeurs
maximum.
SET('valeur_possible1','valeur_possible2',...) :
Occupe 1, 2, 3, 4 ou 8 octets,
selon de nombre de solutions possibles (de 0 à 64 valeurs maximum)
Philippe BOULANGER