Jeux de caractères et collations sousMySQL5Cet article est extrait du Guide complet MySQL 5 , (éditions MicroApplication) et adapté par l'auteur pour Developpez.com, avec l'autorisation de l'éditeur. eut-être croyez-vous que les données textuelles sont simples, et P q u'il n'y a pas grand-chose à faire avec elles ? Détrompez-vous ! Dès que l'on rentre dans ses subtilités, le texte est une donnée au moins aussi complexe que le temps, et il appelle des traitements spéciaux 1 . · De quelles subtilités s'agit-il ? Pour les illustrer, supposons que vous vous appeliez Leïla : · si un ami vous cherche dans un annuaire sous l'orthographe « Leila », vous trouvera-t-il ? · pourquoi votre prénom se transforme-t-il parfois en Le=EFla ? ou en leïla ? · pouvez-vous inclure dans un texte en caractères latins l'écriture arabe de votre prénom ? Ces trois questions renvoient au système des jeux de caractères et de leurs collations ( interclassements ), dont cet article vous présente l'implémentation sous MySQL 5. Je vous présente trois approches du sujet : · un tutoriel vous expose en détails le système · le mémento vous donne les tableaux récapitulatifs des fonctions MySQL mises en uvre · l' atelier vouspropose une série d'exercices de mise en pratique et d'approfondissement.Sommaire Tutoriel ...................................................................................................2 Notion de jeu de caractères ....................................................................2 Notion de collation .................................................................................3 Jeu de caractères et la collation des données ............................................4 Effet de la collation sur les requêtes .........................................................7 Jeu de caractères et la collation des requêtes .......................................... 10 Conflits de jeux et de collations ............................................................. 12 Mémento ............................................................................................... 15 Les fonctions liées au système des jeux de caractères et collations ............ 15 Atelier : explorer les outils textuels........................................................... 17 Exercices ............................................................................................ 17 Solutions commentées ......................................................................... 18
1. Le plus connu de ces traitements spéciaux est aussi le plus simple, c'est l'opérateur LIKE et ses jokers. Mais MySQL en propose bien d'autres beaucoup plus puissants : REGEXP (recherche par « expression régulière »), MATCH (recherche « full-text »), SOUNDS LIKE (recherche par ressemblance phonétique). 1/23
2 Notez au passage que le jeu de caractères n'est pas la police de caractères ( character font ) : celle-ci associe à chaque caractère un « glyphe », c'est-à-dire une représentation graphique. Ainsi, les lettres A et A sont-elles deux glyphes du même caractère ASCII 65. 2/23