Présentation des types de données temporels : dates et heures
<<<
Présentation des types de chaînes Types de colonnes
>>>

12.1 Introduction aux types de colonnes
12 Types de colonnes
 Manuel de Référence MySQL 4.1 : Version Française

Présentation des types numériques of Numeric Types
Présentation des types de données temporels : dates et heures
->Présentation des types de chaînes

12.1.3 Présentation des types de chaînes

Voici une présentation sommaire des types chaînes de caractères. Pour plus d'informations, voyez Types chaînes de caractères . Le tailles de stockage des lignes sont donnés dans Taille de stockage des types .

Dans certains cas, MySQL change le type d'une colonne en un autre, lors de l'utilisation des commandes CREATE TABLE et ALTER TABLE . Changement de type de colonne automatique .

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 Jeux de caractères .

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 raccourci NCHAR ) 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 .

    TINYBLOB
    TINYTEXT
    Une colonne TINYBLOB ou TINYTEXT peut contenir au maximum 255 (2^8 -{} 1) caractères.
    BLOB
    TEXT
    Une colonne TEXT ou BLOB peut contenir au maximum 65535 (2^16 -{} 1) caractères.
    MEDIUMBLOB
    MEDIUMTEXT
    Une colonne MEDIUMTEXT ou MEDIUMBLOB peut contenir au maximum 16777215 (2^24 -{} 1) caractères.
    LONGBLOB
    LONGTEXT
    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.
    ENUM('value1','value2',...)
    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.
    SET('value1','value2',...)
    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.

<< Présentation des types de chaînes >>
Présentation des types de données temporels : dates et heures Introduction aux types de colonnes Types de colonnes