¿Qué significa "colación"?


15

Estoy aprendiendo sqlite de un libro que ha mencionado la clasificación y la secuencia de clasificación varias veces. ¿Qué significa exactamente en el mundo de la base de datos?

Respuestas:


15

Básicamente, cómo ordenar y comparar cadenas.

Ejemplos:

Comparando:

  • Acento: à vs ä vs a
  • Caso: A vs a

Clasificación:

  • Sueco: z -> å -> ä -> ö
  • Danés: z -> æ -> ø -> å

Equivalencia de caracteres especiales

  • Alemán ß = ss

Wikipedia

Algunos SQL (SQL Server 2008+)

DECLARE @foo TABLE (bar varchar(2))
INSERT @foo VALUES ('z'), ('æ'), ('ø'), ('å'), ('ss'), ('ß'), ('a'), ('ä')

SELECT * FROM @foo ORDER BY bar COLLATE Finnish_Swedish_100_CI_AS
SELECT * FROM @foo ORDER BY bar COLLATE Norwegian_100_CI_AS
SELECT * FROM @foo ORDER BY bar COLLATE Latin1_General_100_CS_AS --german (western europe) and default
SELECT * FROM @foo ORDER BY bar COLLATE German_PhoneBook_100_CS_AS

1

Etimología

"Colación" probablemente se define mejor en etymology.com,

finales de 14c., "acto de reunir y comparar"

No ha cambiado en absoluto en los últimos 600 años. "cotejar" significa "reunir" y si se trata de ordenar un libro, cronológicamente o de otra manera en una base de datos, es lo mismo.

Ciencias de la Computación

Como se aplica a la informática, lo que estamos haciendo es separar el mecanismo de almacenamiento del pedido . Es posible que haya oído hablar de ASCII-betical . Eso se refiere a una comparación basada en la codificación binaria de caracteres ASCII. En ese sistema, almacenamiento y colación son dos en lo mismo. Si la "codificación" estandarizada por ASCII alguna vez cambiara, la "colación" (orden) también cambiaría.

POSIX comenzó a romper eso con LC_COLLATE. Pero a medida que avanzamos en Unicode, surgió un consorcio para estandarizar también las intercalaciones: UCI.

SQL

En la especificación de SQL hay dos extensiones para proporcionar intercalaciones,

  • F690: "Compatibilidad de colación:

    Incluye collation name, collation clause, collation definitiony drop collation.

  • F692: Soporte de colación extendido,

    Incluye adjuntar una clasificación predeterminada diferente a una columna en el esquema.

Esencialmente, proporcionan la capacidad CREATEy las DROPintercalaciones, para especificarlas para operadores y géneros, y para definir un valor predeterminado para las columnas.

Para obtener más información sobre lo que SQL tiene para ofrecer, consulte

Ejemplos

En lugar de pegar un ejemplo limitado, aquí está el conjunto de pruebas PostgreSQL que es bastante extenso. Mira al menos el primer enlace y busca'Türkiye' COLLATE "tr-x-icu" ILIKE '%KI%' AS "false"


-2

Orden de clasificación. Las tarjetas perforadas se cotejaron. Los registros de archivos planos se clasifican. Esto no es exclusivo de las bases de datos.

Se explica por sí solo para el texto, pero para los datos binarios almacenados como caracteres puede ser más complicado.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.