Voici une présentation sommaire des types chaînes de caractères. Pour plus d'informations, voyez Section 11.4, « Les types chaînes ». Le tailles de stockage des lignes sont donnés dans Section 11.5, « Capacités des colonnes ».
        Dans certains cas, MySQL change le type d'une colonne en un
        autre, lors de l'utilisation des commandes CREATE
        TABLE et ALTER TABLE. See
        Section 13.2.5.1, « Modification automatique du type de colonnes ».
      
        Une modification qui affecte de nombreux types de colonnes est
        que depuis MySQL version 4.1.1, les définitions de colonnes
        peuvent inclure l'attribut CHARACTER SET pour
        spécifier le jeu de caractères, et, éventuellement, la
        collation de la colonne. Cela s'applique à
        CHAR, VARCHAR, les types
        TEXT types, ENUM et
        SET. Par exemple :
      
CREATE TABLE t
(
    c1 CHAR(20) CHARACTER SET utf8,
    c2 CHAR(20) CHARACTER SET latin1 COLLATE latin1_bin
);
        Cette définition de table crée une colonne appelée
        c1 dont le jeu de caractères est
        utf8 avec la collation par défaut de ce jeu
        de caractères, et une colonne appelée c2
        qui a le jeu de caractères latin1 et la
        collation binaire du jeu de caractères. La collation binaire
        n'est pas sensible à la casse.
      
        Le tri et les comparaisons de colonnes sont basés sur le jeu de
        caractères de la colonne. Avant MySQL 4.1, les tris et
        comparaisons étaient fait avec la collation du jeu de
        caractères du serveur. Pour les colonnes
        CHAR et VARCHAR, vous
        pouvez déclarer la colonne avec l'attribut
        BINARY pour que le tri et la recherche soient
        insensibles à la casse, utilisant le jeu de caractère
        sous-jacent, plutôt qu'un ordre lexical.
      
Pour plus de détails, voyez Chapitre 10, Jeux de caractères et Unicode.
De plus, depuis la version 4.1, MySQL interprète les spécifications de taille d'une colonne en terme de nombre de caractères. Les versions précédentes interprétaient les tailles en nombre d'octets.
            
            
            
            
            [NATIONAL] CHAR(M) [BINARY | ASCII |
            UNICODE]
          
            Une chaîne de caractère de taille fixe, toujours
            complété à droite par des espaces pour remplir l'espace
            de stockage. L'intervalle de M va de 0 à
            255 (1 à 255 pour les versions antérieure à la version
            3.23). Les espaces terminaux sont supprimés lorsque la
            valeur est relue. Les valeurs CHAR sont
            triées et comparées sans tenir compte de la casse, en
            utilisant le jeu de caractères par défaut, à moins que le
            mot clé BINARY ne soit utilisé.
          
Note : les espaces terminaux sont supprimées lorsque la valeur est stockée.
            Depuis la version 4.1.0, si la valeur M
            est supérieure à 255, Une colonne de type
            TEXT est créée. Ceci est une
            fonctionnalité de compatibilité.
          
            NATIONAL CHAR (sous son équivalent
            raccourciNCHAR) est le nom SQL-99 pour
            définir une colonne de type CHAR qui
            utilise le jeu de caractère par défaut. C'est le
            comportement par défaut de MySQL.
          
            CHAR est un raccourci pour
            CHARACTER.
          
            Depuis la version 4.1.0, l'attribut ASCII
            peut être spécifiée avec, pour assigner le jeu de
            caractère latin1 à une colonne de type
            CHAR.
          
            Depuis la version 4.1.1, l'attribut
            UNICODE peut être spécifié pour
            assigner le jeu de caractères ucs2 à
            une colonne CHAR.
          
            MySQL permet la création d'une colonne de type
            CHAR(0). Ceci est principalement utile
            dans de vieille application, qui ont besoin de la colonne,
            mais n'ont pas besoin de la valeur. C'est aussi pratique
            pour avoir une colonne à deux valeurs : un
            CHAR(0), qui n'est pas défini comme
            NOT NULL, va occuper un bit, et prendre
            deux valeurs : NULL ou
            "".
          
            CHAR
          
            Ceci est un synonyme de CHAR(1).
          
            
            
            
            
            [NATIONAL] VARCHAR(M) [BINARY]
          
            Une chaîne de taille dynamique. M
            représente la taille maximale de la valeur dans une
            colonne. L'intervalle de M va de 0 à 255
            caractères (1 à 255 avant MySQL 4.0.2).
          
Note : les espaces terminaux sont supprimées lorsque la valeur est stockée (cela diffère des spécifications de SQL-99).
            Depuis la version 4.1.0, si la valeur M
            est supérieure à 255, Une colonne de type
            TEXT est créée. Ceci est une
            fonctionnalité de compatibilité. Par exemple une colonne
            VARCHAR(500) est convertie en
            TEXT, et
            VARCHAR(200000) est convertie en
            MEDIUMTEXT. Attention, cette conversion
            affecte la suppression des espaces finaux...
          
            VARCHAR est un raccourci pour
            CHARACTER VARYING.
          
            Une colonne TINYBLOB ou
            TINYTEXT peut contenir au maximum 255
            (2^8 − 1) caractères.
          
            Une colonne TEXT ou
            BLOB peut contenir au maximum 65535 (2^16
            − 1) caractères.
          
            Une colonne MEDIUMTEXT ou
            MEDIUMBLOB peut contenir au maximum
            16777215 (2^24 − 1) caractères.
          
            Une colonne LONGTEXT ou
            LONGBLOB peut contenir au maximum
            4294967295 ou 4 Go (2^32 − 1) caractères. Jusqu'en
            version 3.23 le protocole client/serveur et les tables
            MyISAM avait une limite de 16 Mo par paquet de communication
            pour une ligne de table. Depuis les versions 4.x, la taille
            maximale d'un LONGTEXT ou
            LONGBLOB dépend de la taille maximal de
            paquet de communication pour le protocole de communication,
            et de la mémoire disponible.
          
            Une énumération. Un objet chaîne qui peut prendre une
            valeur, choisie parmi une liste de valeurs
            'valeur1', 'valeur2',
            ..., NULL ou la valeur
            spéciale d'erreur "". Une valeur
            ENUM peut avoir un maximum de 65535
            valeurs distinctes.
          
            Un ensemble. Un objet chaîne, qui peut prendre zéro, une
            ou plusieurs valeurs, choisies parmi une liste de valeurs
            'valeur1', 'valeur2',
            ... Une valeur SET
            peut avoir un maximum de 64 membres.
          
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.

