Les types CHAR et VARCHAR
        sont similaires, mais diffèrent dans la manière dont ils sont
        stockés et récupérés.
      
        La longueur d'une colonne CHAR est fixée à
        la longueur que vous avez défini lors de la création de la
        table. La longueur peut être n'importe quelle valeur entre 1 et
        255. (Dans la version 3.23 de MySQL, la longueur est comprise
        entre 0 et 255.) Quand une valeur CHAR est
        enregistrée, elle est complété à droite avec des espaces
        jusqu'à atteindre la valeur fixée. Quand une valeur de
        CHAR est lue, les espaces en trop sont
        retirés.
      
        Les valeurs contenues dans les colonnes de type
        VARCHAR sont de tailles variables. Vous
        pouvez déclarer une colonne VARCHAR pour que
        sa taille soit comprise entre 1 et 255, exactement comme pour
        les colonnes CHAR. Par contre, contrairement
        à CHAR, les valeurs de
        VARCHAR sont stockées en utilisant autant de
        caractères que nécessaire, plus un octet pour mémoriser la
        longueur. Les valeurs ne sont pas complétées. Au contraire,
        les espaces finaux sont supprimés avant stockage (ce qui ne
        fait pas partie des spécifications ANSI SQL).
      
        Si vous assignez une chaîne de caractères qui dépasse la
        capacité de la colonne CHAR ou
        VARCHAR, celle ci est tronquée jusqu'à la
        taille maximale du champ.
      
        Le tableau suivant illustre les différences entre les deux
        types de colonnes en montrant les différences entre
        l'enregistrement dans une colonne CHAR(4) ou
        VARCHAR(4) :
      
| Valeur | CHAR(4) | Espace requis | VARCHAR(4) | Espace requis | 
| '' | '    ' | 4 octets | '' | 1 octet | 
| 'ab' | 'ab  ' | 4 octets | 'ab' | 3 octets | 
| 'abcd' | 'abcd' | 4 octets | 'abcd' | 5 octets | 
| 'abcdefgh' | 'abcd' | 4 octets | 'abcd' | 5 octets | 
        Les valeurs lues dans les colonnes de type
        CHAR(4) et VARCHAR(4)
        seront les mêmes dans tous les cas, car les espaces finaux sont
        retirés des valeurs issues de colonnes de type
        CHAR lors de la lecture.
      
        Les valeurs dans les colonnes CHAR et
        VARCHAR sont classées et comparées sans
        tenir compte de la casse, à moins que l'attribut
        BINARY n'ai été spécifié lors de la
        création de la table. L'attribut BINARY
        signifie que les valeurs sont classées et triées en tenant
        compte de la casse, suivant l'ordre des caractères ASCII de la
        machine ou est installé le serveur MySQL.
        BINARY n'affecte pas les méthodes de lecture
        et de stockage des valeurs.
      
        L'attribut BINARY se propage dans une
        expression : il suffit qu'une seule colonne, utilisée dans une
        expression, ait l'attribut BINARY pour que
        toute l'expression ne tienne plus compte de la casse.
      
        MySQL peut changer automatiquement le type d'une colonne
        CHAR ou VARCHAR lors de la
        création de la table. See
        Section 13.2.5.1, « Modification automatique du type de colonnes ».
      
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

