Une valeur de type BLOB est un objet binaire
        de grande taille, qui peut contenir une quantité variable de
        données. Les quatre types BLOB
        (TINYBLOB, BLOB,
        MEDIUMBLOB, et LONGBLOB)
        ne différent que par la taille maximale de données qu'ils
        peuvent stocker. See Section 11.5, « Capacités des colonnes ».
      
        Les quatre types TEXT
        (TINYTEXT, TEXT,
        MEDIUMTEXT, et LONGTEXT
        correspondent aux types BLOB équivalents, et
        ont les mêmes contraintes de stockage. Les seules différences
        entre les colonnes de type BLOB et celles de
        type TEXT se situent aux niveau des tris et
        comparaisons : Les tris, faits sur les BLOB,
        contrairement à ceux faits sur les TEXT,
        tiennent compte de la casse. En d'autres termes, une valeur
        TEXT est une valeur BLOB
        insensible à la casse.
      
        Si vous assignez une valeur trop grande à une colonne de type
        BLOB ou TEXT, la valeur
        sera tronquée à la taille maximale possible.
      
        Dans la majorité des cas, vous pouvez considérer une colonne
        de type TEXT comme une colonne de type
        VARCHAR, aussi grande que vous le souhaitez.
        De même, vous pouvez considérer une colonne de type
        BLOB comme une colonne de type
        VARCHAR BINARY. Les seules différences
        sont :
      
            Vous pouvez indexer les colonnes de type
            BLOB ou TEXT à partir
            de la version 3.23.2 de MySQL. Les versions plus anciennes
            ne peuvent pas indexer ces colonnes.
          
            Pour les index des colonnes BLOB et
            TEXT, vous devez spécifier une taille
            d'index. Pour les colonnes de type CHAR
            et VARCHAR, la taille du préfixe est
            optionnelle.
          
            Il n'y a pas de suppression des espaces finaux lors du
            stockage de valeur dans des colonnes de type
            BLOB et TEXT, ce qui
            est le cas dans pour les colonnes de type
            VARCHAR.
          
            
            
            
            Les colonnes BLOB et
            TEXT ne peuvent avoir de valeur par
            défaut. (DEFAULT)
          
        MyODBC considère les valeurs
        BLOB comme des
        LONGVARBINARY et les valeurs
        TEXT comme des
        LONGVARCHAR.
      
        Vous pouvez rencontrer les problèmes suivants, à cause de la
        grande taille des colonnes de type BLOB et
        TEXT, lors de leur utilisation :
      
            Si vous voulez utiliser les commandes GROUP
            BY ou ORDER BY sur une colonne
            de type BLOB ou TEXT,
            vous devez d'abord la convertir en un objet de taille fixe.
            Le meilleur moyen est d'utiliser la fonction
            SUBSTRING. Par exemple :
          
mysql>SELECT comment FROM nom_de_table,SUBSTRING(comment,20) AS substr->ORDER BY substr;
            Si vous le ne faites pas, seuls les
            max_sort_length premiers octets de la
            colonne seront utilisés pour le tri. La valeur par défaut
            de max_sort_length est 1024. Cette valeur
            peut être modifiée en utilisant l'option
            -O au démarrage du serveur
            mysqld. Vous pouvez utiliser la commande
            GROUP BY sur une colonne de type
            BLOB ou TEXT en
            spécifiant la position de la colonne, ou avec un alias :
          
mysql>SELECT id,SUBSTRING(blob_col,1,100) FROM nom_de_table GROUP BY 2;mysql>SELECT id,SUBSTRING(blob_col,1,100) AS b FROM nom_de_table GROUP BY b;
            La taille maximale d'un objet BLOB ou
            TEXT est déterminée par son type, mais
            la valeur la plus grande que vous pouvez transmettre au
            programme client est déterminée par la quantité de
            mémoire disponible sur le serveur et par les tailles des
            buffers de communication. Vous pouvez changer la taille des
            buffers de communication, mais vous devez le faire sur le
            serveur et le client en même temps. See
            Section 7.5.2, « Réglage des paramètres du serveur ».
          
            Par exemple, mysql et
            mysqldump vous autorises tous les deux à
            modifier la valeur cliente de
            max_allowed_packet. Voyez
            Section 7.5.2, « Réglage des paramètres du serveur », Section 8.3, « mysql, l'outil en ligne de commande »
            et Section 8.8, « mysqldump, sauvegarde des structures de tables et les
      données ».
          
        Notez que chaque valeur BLOB ou
        TEXT est représentée en interne par un
        objet alloué séparément, contrairement à tous les autres
        types de colonne, pour lesquels la place de stockage est
        allouée une fois pour chaque colonne, lorsque la table est
        ouverte.
      
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.

