Que signifie le classement dans SQL et que fait-il?
Que signifie le classement dans SQL et que fait-il?
Réponses:
Le classement peut être simplement considéré comme un ordre de tri.
En anglais (et c'est étrange cousin, américain), le classement peut être une question assez simple consistant à ordonner par le code ASCII.
Une fois que vous entrez dans ces étranges langues européennes avec tous leurs accents et autres fonctionnalités, le classement change. Par exemple, bien que les différentes formes accentuées de a
puissent exister à des points de code disparates, elles peuvent toutes devoir être triées comme s'il s'agissait de la même lettre.
e
, ë
, é
, ě
et è
peut - être des lettres distinctes aux fins de commande (mais peut - être la même lettre lors de la recherche, damner les Européens fous;)).
42
lettres, dont 15
des signes diacritiques?
where st= 'aaa'
?
Outre les "lettres accentuées sont triées différemment des lettres non accentuées" dans certaines langues d'Europe occidentale, vous devez prendre en compte les groupes de lettres, qui sont parfois triés différemment également.
Traditionnellement, en espagnol, "ch" était considéré comme une lettre à part entière, de même que "ll" (qui représentent tous deux un seul phonème), donc une liste serait triée comme ceci:
Remarquez que tous les mots commençant par un seul c vont ensemble, sauf les mots commençant par ch qui les suivent , de même que les mots commençant par ll qui vont après tous les mots commençant par un seul l . C'est l'ordre que vous verrez dans les anciens dictionnaires et encyclopédies, parfois même aujourd'hui par des organisations très conservatrices.
L'Académie Royale de la Langue a changé cela pour faciliter l'intégration de l'espagnol dans le monde informatique. Néanmoins, ñ est toujours considéré comme une lettre différente de n et va après , et avant o . Voici donc une liste correctement ordonnée:
En sélectionnant le bon classement, vous faites tout cela pour vous, automatiquement :-)
Règles qui indiquent comment comparer et trier les chaînes: ordre des lettres; si le cas compte, si les signes diacritiques sont importants, etc.
Par exemple, si vous voulez que toutes les lettres soient différentes (par exemple, si vous stockez les noms de fichiers dans UNIX
), vous utilisez le UTF8_BIN
classement:
SELECT 'A' COLLATE UTF8_BIN = 'a' COLLATE UTF8_BIN
---
0
Si vous souhaitez ignorer les différences de casse et de signes diacritiques (par exemple, pour un moteur de recherche), vous utilisez le UTF8_GENERAL_CI
classement:
SELECT 'A' COLLATE UTF8_GENERAL_CI = 'ä' COLLATE UTF8_GENERAL_CI
---
1
Comme vous pouvez le voir, ce classement (règle de comparaison) considère les majuscules A
et les minuscules comme ä
la même lettre, en ignorant les différences de casse et de diacritique.
Le classement définit la manière dont vous triez et comparez les valeurs de chaîne
Par exemple, il définit comment gérer
äàa
etc.)Aa
)cote < côte < coté < côté.
cote < coté < côte < côté
Le classement signifie attribuer un certain ordre aux caractères d'un alphabet, par exemple, ASCII ou Unicode, etc.
Supposons que vous ayez 3 caractères dans votre alphabet - {A, B, C}. Vous pouvez définir des exemples de classement pour celui-ci en attribuant des valeurs intégrales aux caractères
En fait, vous pouvez définir n! collations sur un Alphabet de taille n. Dans un tel ordre, différentes routines de tri comme les tris de chaînes LSD / MSD l'utilisent pour trier les chaînes.
Le classement détermine la manière dont vos données sont triées et comparées. C'est très souvent important en ce qui concerne l'internationalisation, par exemple comment trier les kanji japonais?
Si vous google collation et serveur SQL, vous trouverez de nombreux articles qui en parlent!
Référence est tirée de cet article: Un classement est un ensemble de règles permettant de comparer des caractères dans un jeu de caractères. Il a également statué sur le tri des caractères et l'ordre approprié de deux caractères varie d'une langue à l'autre. Un classement a comparé deux chaînes comme, si un mot est supérieur à un autre, et trie en conséquence.
Si vous utilisez le jeu de caractères «latin1», vous pouvez utiliser le classement «latin1_swedish_ci».
Vous devez choisir le bon classement car un mauvais classement peut affecter les performances de votre base de données.
http://en.wikipedia.org/wiki/Collation
Le classement est l'assemblage d'informations écrites dans une commande standard. (...) Un algorithme de classement tel que l' algorithme de classement Unicode définit un ordre à travers le processus de comparaison de deux chaînes de caractères données et de décision de celle qui doit précéder l'autre.