Cosa significa collation in SQL e cosa fa?
Cosa significa collation in SQL e cosa fa?
Risposte:
La collazione può essere semplicemente considerata come un ordinamento.
In inglese (ed è strano cugino, americano), le regole di confronto possono essere una questione piuttosto semplice che consiste nell'ordinare con il codice ASCII.
Una volta entrati in quelle strane lingue europee con tutti i loro accenti e altre caratteristiche, le regole di confronto cambiano. Ad esempio, anche se le diverse forme accentate dia
possano esistere in punti di codice disparati, potrebbe essere necessario ordinarle tutte come se fossero la stessa lettera.
e
, ë
, é
, ě
, e è
potrebbe essere lettere distinte ai fini di ordinamento (ma forse la stessa lettera durante la ricerca, accidenti a quei folli europei;)).
42
lettere, 15
di cui hanno segni diacritici?
where st= 'aaa'
?
Oltre alle "lettere accentate sono ordinate in modo diverso da quelle non accentate" in alcune lingue dell'Europa occidentale, è necessario tenere conto dei gruppi di lettere, che a volte sono anche ordinate in modo diverso.
Tradizionalmente, in spagnolo, "ch" era considerato una lettera a sé stante, lo stesso con "ll" (entrambi rappresentano un singolo fonema), quindi un elenco verrebbe ordinato in questo modo:
Notice tutte le parole che iniziano con singoli c vanno insieme, tranne parole che iniziano con ch che vanno dopo di loro, lo stesso con ll scaglionamento parole che vanno dopo tutte le parole che iniziano con un singolo l . Questo è l'ordine che vedrai nei vecchi dizionari ed enciclopedie, a volte anche oggi da organizzazioni molto conservatrici.
La Royal Academy of the Language ha cambiato questo per rendere più semplice l'accoglienza dello spagnolo nel mondo dell'informatica. Tuttavia, ñ è ancora considerata una lettera diversa da n e va dopo di esso, e prima o . Quindi questo è un elenco ordinato correttamente:
Selezionando la raccolta corretta, ottieni tutto ciò che fa per te, automaticamente :-)
Regole che indicano come confrontare e ordinare le stringhe: ordine delle lettere; se il caso conta, se i segni diacritici contano ecc.
Ad esempio, se vuoi che tutte le lettere siano diverse (ad esempio, se memorizzi i nomi dei file UNIX
), usi le UTF8_BIN
regole di confronto:
SELECT 'A' COLLATE UTF8_BIN = 'a' COLLATE UTF8_BIN
---
0
Se si desidera ignorare le differenze tra maiuscole e minuscole (ad esempio per un motore di ricerca), utilizzare le UTF8_GENERAL_CI
regole di confronto:
SELECT 'A' COLLATE UTF8_GENERAL_CI = 'ä' COLLATE UTF8_GENERAL_CI
---
1
Come puoi vedere, questa collazione (regola di confronto) considera maiuscole A
e minuscole ä
la stessa lettera, ignorando le differenze maiuscole e diacritiche.
Le regole di confronto definiscono il modo in cui ordinare e confrontare i valori di stringa
Ad esempio, definisce come affrontare
äàa
ecc.)Aa
)cote < côte < coté < côté.
cote < coté < côte < côté
Fascicolazione significa assegnare un certo ordine ai personaggi di un alfabeto, ad esempio ASCII o Unicode ecc.
Supponi di avere 3 caratteri nel tuo alfabeto - {A, B, C}. È possibile definire alcuni esempi di regole di confronto assegnando valori integrali ai caratteri
È un dato di fatto, è possibile definire n! regole di confronto su un alfabeto di dimensione n. Dato un tale ordine, diverse routine di ordinamento come LSD / MSD fanno uso di stringhe per ordinarle.
Il riferimento è tratto da questo articolo: una raccolta è un insieme di regole per confrontare i caratteri in un set di caratteri. Ha inoltre stabilito l'ordinamento dei caratteri e l'ordine corretto di due caratteri varia da lingua a lingua. Una collazione confronta due stringhe come, se una parola è maggiore di un'altra, e ordina di conseguenza.
Se si utilizza il set di caratteri "latin1", è possibile utilizzare la collation "latin1_swedish_ci".
È necessario scegliere le regole di confronto corrette perché le regole di confronto errate possono influire sulle prestazioni del database.
http://en.wikipedia.org/wiki/Collation
La raccolta è l'assemblaggio di informazioni scritte in un ordine standard. (...) Un algoritmo di confronto come l' algoritmo di confronto Unicode definisce un ordine attraverso il processo di confronto tra due stringhe di caratteri e decidendo quale dovrebbe venire prima dell'altro.