Exemples d'attribution de jeu de caractères et collation
<<<
Jeux de caractères et collations de connexion Jeu de caractères et collation des chaînes littérales
>>>

11.3 Déterminer le jeu de caractères et la collation par défaut
11 Jeux de caractères et Unicode
 Manuel de Référence MySQL 4.1 : Version Française

Jeu de caractères et collation serveur
Jeu de caractères et collation de base de données
Jeu de caractères de tables et collation
Jeu de caractères de colonne et collation
Exemples d'attribution de jeu de caractères et collation
->Jeux de caractères et collations de connexion
Jeu de caractères et collation des chaînes littérales
Clause COLLATE dans différentes parties d'une requête SQL
COLLATE clause de précédence
Opérateur BINARY
Quelques cas spéciaux où la détermination de la collation est difficile
Les collation doivent correspondre au bon jeu de caractères
Un exemple de l'effet de collation

11.3.6 Jeux de caractères et collations de connexion

Chaque connexion a des jeux de caractères de connexion et des collations de connexion qui ne peuvent pas être nulles. Il y a en fait deux jeux de caractères de connexion, que nous appellerons ``connection/literals'' et``connection/results'' lorsqu'il est nécessaire de les différencier.

Pensez à ce qu'est une "connexion" : c'est ce que vous faites lorsque vous vous connectez au serveur. Le client envoie des SQL commandes comme des requêtes, au travers de la connexion, vers le serveur. Le serveur renvoie des réponses, comme des jeux de résultats, au client, au travers de la connexion. Ceci mène à plusieurs questions telles que : (a) dans quel jeu de caractères est la requête lorsqu'elle quitte le client? (b) dans quel jeu de caractère le serveur devrait-il traduire la requête après l'avoir reçue? (c) dans quel jeu de caractères le serveur devrait-il traduire les résultats ou messages d'erreur avant de les renvoyer au client? Vous pouvez configurez ces options là, ou vous pouvez vous fier aux configurations par défaut (auquel cas vous pouvez sauter cette section).

Il y a deux commandes qui permettent de modifier le jeu de caractères de la connexion :

SET NAMES character_set_name
SET CHARACTER SET character_set_name
SET NAMES indique ce qui est dans la commande SQL que le client envoie. Par conséquent, SET NAMES cp1251 indique au serveur : ``les futurs messages fournis par ce client seront dans le jeu de caractères cp1251 '' et le serveur est libre de les traduire dans son propre jeu de caractères, éventuellement. SET CHARACTER SET indique ce qui est dans la commande SQL que le client envoie, et en même temps, le jeu de caractères attendu pour les résultats. Par conséquent, SET CHARACTER SET recouvre les fonctionnalités de SET NAMES , et spécifie aussi le jeu de caractères des colonnes si vous utilisez la commande SELECT .

EXEMPLE : supposez que column1 est défini par CHAR(5) CHARACTER SET latin2 . Si vous n'indiquez pas SET CHARACTER SET , alors la commande SELECT column1 FROM t retournera les valeurs de la colonne column1 en utilisant le jeu de caractères latin2 . Si, d'un autre coté, vous utilisez la commande SET CHARACTER SET latin1 , le serveur va alors convertir le résultat de latin2 en latin1 juste avant de l'envoyer. De telles conversion sont lentes.

Lorsque vous exécutez la commande SET NAMES ou SET CHARACTER SET , vous changez aussi la collation de la connexion. Cependant, la collation de connexion existe uniquement par cohréence. Généralement sa valeur n'a pas d'importance.

Avec le client mysql , il n'est pas nécessaire d'exécuter la commande SET NAMES à chaque démarrage. Vous pouvez ajouter l'option --default-character-set-name dans la ligne de commande de mysql , ou dans le fichier d'options. Par exemple, la ligne suivante est exécutée automatiquement à chaque démarrage de mysql :


[mysql]
default-character-set-name=character_set_name

<< Jeux de caractères et collations de connexion >>
Exemples d'attribution de jeu de caractères et collation Déterminer le jeu de caractères et la collation par défaut Jeu de caractères et collation des chaînes littérales