¿Qué significa colación en SQL y qué hace?
¿Qué significa colación en SQL y qué hace?
Respuestas:
La colación se puede considerar simplemente como un orden de clasificación.
En inglés (y es un primo extraño, estadounidense), la recopilación puede ser una cuestión bastante simple que consiste en ordenar por el código ASCII.
Una vez que entras en esos extraños idiomas europeos con todos sus acentos y otras características, la colación cambia. Por ejemplo, aunque las diferentes formas acentuadas a
pueden existir en puntos de código dispares, es posible que todas necesiten clasificarse como si fueran la misma letra.
e
, ë
, é
, ě
, y è
podrían ser letras distintas a efectos de ordenación (pero posiblemente la misma letra en la búsqueda, maldición aquellos europeos locos;)).
42
letras, 15
de las cuales tienen signos diacríticos?
where st= 'aaa'
?
Además de "las letras acentuadas se ordenan de manera diferente a las no acentuadas" en algunos idiomas de Europa occidental, debe tener en cuenta los grupos de letras, que a veces también se ordenan de manera diferente.
Tradicionalmente, en español, "ch" se consideraba una letra por derecho propio, igual que "ll" (ambos representan un solo fonema), por lo que una lista se ordenaría así:
Aviso todas las palabras que empiezan con individuales c van juntas, excepto palabras que empiecen con ch que van después de ellos, lo mismo con ll que empiezan palabras que van después de que todas las palabras que empiezan con una sola l . Este es el orden que verá en diccionarios y enciclopedias antiguos, a veces incluso hoy por organizaciones muy conservadoras.
La Royal Academy of the Language cambió esto para facilitar que el español se acomode en el mundo de la informática. Sin embargo, ñ todavía se considera una letra diferente de n y va después de ella, y antes de o . Entonces esta es una lista correctamente ordenada:
Al seleccionar la clasificación correcta, todo esto se hace por usted, automáticamente :-)
Reglas que indican cómo comparar y ordenar cadenas: orden de letras; si el caso importa, si los diacríticos importan, etc.
Por ejemplo, si desea que todas las letras sean diferentes (por ejemplo, si almacena nombres de archivo UNIX
), utilice la UTF8_BIN
intercalación:
SELECT 'A' COLLATE UTF8_BIN = 'a' COLLATE UTF8_BIN
---
0
Si desea ignorar las diferencias entre mayúsculas y minúsculas (por ejemplo, para un motor de búsqueda), utilice la UTF8_GENERAL_CI
intercalación:
SELECT 'A' COLLATE UTF8_GENERAL_CI = 'ä' COLLATE UTF8_GENERAL_CI
---
1
Como puede ver, esta clasificación (regla de comparación) considera mayúscula A
y minúscula ä
la misma letra, ignorando mayúsculas y minúsculas y diferencias diacríticas.
La clasificación define cómo ordenar y comparar valores de cadena
Por ejemplo, define cómo lidiar con
äàa
etc.)Aa
)cote < côte < coté < côté.
cote < coté < côte < côté
La clasificación significa asignar un orden a los caracteres en un alfabeto, por ejemplo, ASCII o Unicode, etc.
Supongamos que tiene 3 caracteres en su alfabeto: {A, B, C}. Puede definir algunas colaciones de ejemplo asignando valores integrales a los caracteres.
De hecho, puede definir n! intercalaciones en un alfabeto de tamaño n. Dado este orden, diferentes rutinas de clasificación como los tipos de cadenas LSD / MSD lo utilizan para ordenar cadenas.
Se toma una referencia de este artículo: Una clasificación es un conjunto de reglas para comparar caracteres en un conjunto de caracteres. También ha ordenado la clasificación de caracteres y el orden apropiado de dos caracteres varía de un idioma a otro. Una intercalación comparó dos cadenas como, si una palabra es mayor que otra, y ordena en consecuencia.
Si está utilizando el juego de caracteres "latin1", puede usar la Clasificación "latin1_swedish_ci".
Debe elegir la clasificación correcta porque la clasificación incorrecta puede afectar el rendimiento de su base de datos.
http://en.wikipedia.org/wiki/Collation
La recopilación es el ensamblaje de información escrita en un orden estándar. (...) Un algoritmo de clasificación como el algoritmo de clasificación Unicode define un orden a través del proceso de comparar dos cadenas de caracteres determinadas y decidir cuál debe venir antes que la otra.