Estou aprendendo sqlite de um livro que mencionou agrupamento e sequência de agrupamento várias vezes. O que significa exatamente no mundo do banco de dados?
Estou aprendendo sqlite de um livro que mencionou agrupamento e sequência de agrupamento várias vezes. O que significa exatamente no mundo do banco de dados?
Basicamente, como classificar e comparar strings.
Exemplos:
Comparando:
Ordenação:
Equivalência de caracteres especiais
Wikipédia
Algum SQL (SQL Server 2008+)
Etimologia
"Collation" provavelmente é melhor definido em etymology.com,
Não mudou nada nos últimos 600 anos. "reunir" significa "reunir" e seja a ordenação de um livro, cronologicamente ou não em um banco de dados, é tudo a mesma coisa.
Ciência da Computação
Como se aplica à Ciência da Computação, o que estamos fazendo é separar o mecanismo de armazenamento do mecanismo de ordenação . Você pode ter ouvido falar de ASCII-betical . Isso se refere a uma comparação baseada na codificação binária de caracteres ASCII. Nesse sistema, armazenamento e agrupamento são dois no mesmo. Se a "codificação" padronizada em ASCII mudasse, o "agrupamento" (ordem) também mudaria.
POSIX começou a quebrar isso com
LC_COLLATE
. Mas, à medida que avançamos para o Unicode, surgiu um consórcio para padronizar também os agrupamentos: ICU.SQL
Na especificação SQL, há duas extensões para fornecer agrupamentos,
F690
: “Suporte de agrupamento:Inclui
collation name
,collation clause
,collation definition
edrop collation
.F692
: suporte de agrupamento estendido,Inclui a anexação de um agrupamento padrão diferente a uma coluna no esquema.
Essencialmente, eles fornecem a capacidade de
CREATE
eDROP
agrupamentos, para especificá-los para operadores e classificações e para definir um padrão para colunas.Para obter mais informações sobre o que o SQL tem a oferecer, confira
Exemplos
Em vez de colar um exemplo limitado, aqui está o conjunto de testes do PostgreSQL, que é bastante extenso. Confira pelo menos o primeiro link e procure
'Türkiye' COLLATE "tr-x-icu" ILIKE '%KI%' AS "false"
collate.icu.utf8.out
collate.linux.utf8.out
collate.out
Provavelmente não vale a pena conferir, mas coloquei aqui para completar, verificações chatas de POSIX.Ordem de classificação. Cartões perfurados foram agrupados. Os registros de arquivo simples são agrupados. Isso não é exclusivo dos bancos de dados.
É auto-explicativo para texto, mas para dados binários armazenados como caracteres pode ser mais complicado.