no
Des trucs à web ressources pour webmasters
Vendez - achetez du matériel informatique d'occasion où neuf   
   
      
Langages
PHP
Perl
Html-Css
Javascript
Bdd (Mysql ...)
Forums
Ressources
Trucs,astuces
Mémos,tutoriaux
Outils-Logiciels
Scripts
 
Serveurs apache IIS
Sécurité
Référencement
Système exploitation
Informatique divers
Services
Générateur Metas
Testez vos Metas
Divers
Contacts
Signaler une erreur
Liste des scripts
Carte du site
Partenaires

Une question, un problème ? Venez en discuter sur le forum          Imprimer le document : Types de données pour une base Mysql
 

Types de données pour une base Mysql

 
 
Voici les différents type de champs que l'on peut rencontrer dans une base de donnée Mysql.

Les champs numériques :

TINYINT

Entier très petit

1 octet

SMALLINT

Entier petit compris entre -32768 et 32767,

si l'option UNSIGNED est utilisée,

ce nombre sera compris entre 0 et 65535.

2 octets

MEDIUMINT

Entier moyen compris entre -8388608 et 8388607,

si l'option UNSIGNED est utilisée,

ce nombre sera compris entre 0 et 16777215

3 octets

INT

Entier standard compris entre
–2 147 483 648 et 2 147 483 647.

Si l'option UNSIGNED est utilisée, ce nombre sera compris entre 0 et 4 294 967 295

4 octets

BIGINT

Entier grand

8 octets

FLOAT

Décimal de simple précision

4 octets

DOUBLE, REAL

Décimal de double précision

8 octets

DECIMAL (entier,décimal)

Réel, définissez la longueur de chacune des deux parties.

variable

 

Le nombre d'octets détermine la place que prend chaque champ et influe, donc, sur la grandeur des nombres que l'on peut y stocker.

 

Par exemple, une colonne de type TINYINT occupe 1 octet. Vous pouvez y stocker 2^8 (256) valeurs différentes. C'est à dire des nombres allant de -128 à +127 si on prend en compte le signe, ou de 0 à 255 si le nombre est non signé. Une colonne de type MEDIUMINT occupe 3 octets (24 bits) et permet donc de stocker 2^24 (3*8), soit 16 777 216, valeurs différentes.

En pratique, les champs INT et BIGINT seront donc très rarement utilisés.

 

Les types entiers ont un paramètre optionnel permettant de définir le nombre de caractères utilisés pour représenter les valeurs de la colonne. Un champ de type TINYINT (2) permet donc de stocker des nombres entre -99 et 99. Il est impossible d'insérer des valeurs supérieures à 255 dans un champ de type TINYINT , le nombre serait alors tronqué sans provoquer de message d'erreur.

 

Nous ne nous attarderons pas sur les types décimaux. Il faut simplement savoir que FLOAT et DOUBLE ( REAL est un alias) ont deux paramètres optionnels : le premier est identique au paramètre des types entiers et le second indique la place des chiffres après la virgule. Le type DECIMAL ( NUMERIC est un alias) est par contre différent : il est stocké sous forme de chaîne et possède deux paramètres obligatoires, son utilisation dépend néanmoins de votre version de MySQL. Vous pouvez consulter le manuel pour en savoir plus.

 

Concernant le signe, nous avons vu que les champs pouvaient être signés ou non. Les champs sont signés par défaut. Pour demander à MySQL de ne pas tenir compte du signe, il faut ajouter l'argument UNSIGNED à la suite de la définition de la colonne (ex : TINYINT (4) UNSIGNED ).

 

Enfin, vous pouvez aussi utiliser l'attribut AUTO_INCREMENT pour, vous l'avez deviné, incrémenter automatiquement un champ.


Les chaînes de caractères :

CHAR (n)

Chaîne de n caractère, taille fixe

 

 

VARCHAR(M)

Chaîne de caractères variable.

M peut être compris entre 1 et 255.

255 caractères. maximum

TINYBLOB,

TINYTEXT

Petite zone de texte.

Objet d'une longueur maximale de 255 caractères,

TINYTEXT aura un contenu de type ASCII

(casse insensible) et TINYBLOB aura un contenu de

type binaire (casse sensible).

255 caractères. maximum

BLOB, TEXT

Zone de texte standard

Objet d'une longueur maximale de 65535 caractères,

TEXT aura un contenu de type ASCII

(casse insensible) et BLOB aura un contenu de type

binaire (casse sensible).

65 535 caractères. maximum

MEDIUMBLOB,

MEDIUMTEXT

Zone de texte moyenne.

Objet d'une longueur maximale de 16777216

caractères, MEDIUMTEXT aura un contenu de type

ASCII (casse insensible) et MEDIUMBLOB aura un

contenu de type binaire (casse sensible).

16 millions caractères. maximum

LONGBLOB, LONGTEXT

Grande zone de texte.

Objet d'une longueur maximale de 4294967295

caractères, LONGTEXT aura un contenu de type ASCII

(casse insensible) et LONGBLOB aura un contenu de

type binaire (casse sensible).

4 milliards caractères. maximum

ENUM('valeur','valeur2',...)

Une valeur parmi plusieurs

Objet texte qui ne peut avoir qu'une des valeurs

'valeur','valeur2',...

65535 valeurs max.

SET('valeur','valeur2',...)

Une ou plusieurs valeurs parmi plusieurs.

Objet texte qui peut avoir une ou plusieurs des

valeurs 'valeur','valeur2',...

64 valeurs max.

 

 

La table ci dessous illustre les différences de taille entre les deux types CHAR et VARCHAR :

 

Valeur

CHAR(4)

Zone stockage

VARCHAR(4)

Zone stockage

''

' '

4 bytes

''

1 byte

'ab'

'ab '

4 bytes

'ab'

3 bytes

'abcd'

'abcd'

4 bytes

'abcd'

5 bytes

'abcdefgh'

'abcd'

4 bytes

'abcd'

5 bytes

 

 

Les valeurs retournées seront les mêmes, car dans tous les cas, les espaces situés en début de chaîne seront effacés.

 

Il faut noter que les champs de type CHAR et VARCHAR ne sont pas sensibles à la casse. Autrement dit, lors d'une recherche, "texte" sera identique à "TexTe" . En effet, pour rendre ces types de colonnes sensibles à la différence entre majuscule et minuscule, il faut ajouter l'argument BINARY dans la définition du champ (ex : VARCHAR (25) BINARY ).

 

Les quatre types de champs suivants ( BLOB et TEXT ) n'ont, quant à eux, aucun argument. Ils sont utilisés pour stocker tout type de données (texte, images, etc). Il faut noter qu'une colonne de type BLOB est sensible à la casse tandis qu'une colonne de type TEXT ne l'est pas.

 

NB : Lorsque l'on parle d'être sensible à la casse ou non, cela concerne uniquement les recherches et les tris. Ainsi, un champ de type TEXT peut contenir des majuscules (et les affichera telles quelles) mais ne fera pas la différence entre majuscule et minuscule lors des tris et des recherches.

 

Enfin, les types ENUM et SET permettent de stocker une ou plusieurs (pour SET ) valeurs parmi un ensemble défini de valeurs. On peut donc associer ENUM aux champs de type radio , et SET aux champs de type « case à cocher  » ( checkbox) . A noter que ces deux types peuvent contenir des valeurs null.

Les champs de Types date et heure :

DATE

Date (ex: 2000-08-24)

3 octets

TIME

Heure (ex: 23:44:05)

3 octets

DATETIME

Date et heure (ex: 2000-08-24 23:44:05)

8 octets

YEAR

Année (ex: 2000)

1 octet

 

Le type DATE est utilisé pour manipuler simplement une date, sans l'heure. MySQL retourne et affiche les valeurs de type DATE au format 'YYYY-MM-DD'

 

Le type DATETIME est utile pour manipuler en même temps une date et une heure. . MySQL retourne et affiche les valeurs de type DATETIME au format 'YYYY-MM-DD HH:MM:SS'.

 

Le type TIMESTAMP est utilisé automatiquement lors de requête , avec la valeur courante de date et d'heure. Est utilisée pour calculer des différences entre deux dates.

 

Chacun de ces différents types a un argument optionnel permettant de changer légèrement le formatage.

NB : MySql représente les dates ainsi : l'année, suivie du mois, puis du jour. Le 24 août 2000 est donc représenté sous la forme "2000-08-24 ".

 

 

 

suite de l'articlepage précédente
 
 

Une question, un problème ? Venez en discuter sur le forum 


Accueil   Php   Perl   Html-Css   Javascript   Base de données   Serveurs Sécurité  Référencement
Systèmes d'exploitation   Informatique général  Forums - Webblog - Actus
www.destrucsaweb.com   -  © 2002-2006 Tous droits réservés Hervé Lafragette

Quand le débutant est conscient de ses besoins, il finit par être plus intelligent que le sage distrait. ( Lao-Tseu)

<


sa88mirfhlaf  sa22mirfhlaf


Annuaire autos annuaire motos Cti

[


Temps d'exécution : 0.11693811416626