Le point principal d'un classement de base de données est de déterminer comment les données sont triées et comparées.
Respect de la casse des comparaisons de chaînes
SELECT "New York" = "NEW YORK";`
renverra true pour un classement insensible à la casse ; false pour une sensible à la casse.
Quelle collation fait qui peut être indiquée par le _ci
et _cs
suffixe dans le nom de la collation. _bin
les classements effectuent des comparaisons binaires (les chaînes doivent être identiques à 100 %).
Comparaison des trémas/caractères accentués
le classement détermine également si les caractères accentués sont traités comme leurs équivalents en base latine dans les comparaisons de chaînes.
SELECT "Düsseldorf" = "Dusseldorf";
SELECT "Èclair" = "Eclair";
renverra true dans le premier cas ; faux dans ce dernier. Vous devrez lire la description de chaque classement pour savoir lequel est lequel.
Tri de chaînes
Le classement influence la manière dont les chaînes sont triées.
Par exemple,
-
Trémas
Ä Ö Ü
sont à la fin de l'alphabet dans l'alphabet finnois/suédoislatin1_swedish_ci
-
ils sont traités comme
A O U
en allemand tri DIN-1 (latin_german1_ci
) -
et comme
AE OE UE
en allemand tri DIN-2 (latin_german2_ci
). (tri "répertoire") -
En
latin1_spanish_ci
, "ñ" (n-tilde) est une lettre séparée entre "n" et "o".
Ces règles entraîneront des ordres de tri différents lorsque des caractères non latins sont utilisés.
Utilisation des classements lors de l'exécution
Vous devez choisir un classement pour votre table et vos colonnes, mais si les performances ne vous dérangent pas, vous pouvez forcer les opérations de base de données dans un certain classement au moment de l'exécution en utilisant le COLLATE
mot-clé.
Cela triera table
par le name
colonne utilisant les règles de tri allemandes DIN-2 :
SELECT name
FROM table
ORDER BY name COLLATE latin1_german2_ci;
Utilisation de COLLATE
lors de l'exécution aura des implications sur les performances, car chaque colonne doit être convertie pendant la requête. Réfléchissez donc à deux fois avant d'appliquer cela à de grands ensembles de données.
Référence MySQL :
- Jeux de caractères et classements pris en charge par MySQL
- Exemples de l'effet du classement
- Problèmes de classement