O que significa agrupamento no SQL e o que ele faz?
O que significa agrupamento no SQL e o que ele faz?
Respostas:
O agrupamento pode ser simplesmente considerado como uma ordem de classificação.
Em inglês (e é primo estranho, americano), agrupar pode ser uma questão bastante simples, que consiste em ordenar pelo código ASCII.
Depois de entrar nessas estranhas línguas europeias com todos os seus sotaques e outros recursos, o agrupamento muda. Por exemplo, embora as diferentes formas acentuadas a
possam existir em pontos de código diferentes, todas elas precisam ser classificadas como se fossem a mesma letra.
e
, ë
, é
, ě
, e è
pode ser letras distintas para efeitos de ordenação (mas possivelmente a mesma letra na pesquisa, malditos os europeus loucos;)).
42
letras, sendo que 15
elas possuem diacríticos?
where st= 'aaa'
?
Além das "letras acentuadas serem classificadas de maneira diferente das letras não acentuadas" em alguns idiomas da Europa Ocidental, você deve levar em conta os grupos de letras, que às vezes também são classificados de forma diferente.
Tradicionalmente, em espanhol, "ch" era considerado uma letra por si só, o mesmo que "ll" (ambos representando um único fonema); portanto, uma lista seria classificada assim:
Notas de todas as palavras que começam com simples c ir juntos, exceto palavras começando com ch que ir depois deles, mesmo com ll -Iniciando palavras que vão depois de todas as palavras que começam com um único l . Essa é a ordem que você verá em antigos dicionários e enciclopédias, às vezes até hoje por organizações muito conservadoras.
A Royal Academy of the Language mudou isso para facilitar a acomodação do espanhol no mundo da computação. No entanto, ± ainda é considerado uma letra diferente do que n e vai depois de ele, e antes de o . Portanto, esta é uma lista ordenada corretamente:
Ao selecionar o agrupamento correto, você realiza tudo isso automaticamente :-)
Regras que informam como comparar e classificar strings: ordem das letras; se o caso importa, se os diacríticos importam etc.
Por exemplo, se você quiser que todas as letras sejam diferentes (por exemplo, se você armazenar nomes de arquivos UNIX
), use o UTF8_BIN
agrupamento:
SELECT 'A' COLLATE UTF8_BIN = 'a' COLLATE UTF8_BIN
---
0
Se você deseja ignorar diferenças de maiúsculas e minúsculas (por exemplo, para um mecanismo de pesquisa), use o UTF8_GENERAL_CI
agrupamento:
SELECT 'A' COLLATE UTF8_GENERAL_CI = 'ä' COLLATE UTF8_GENERAL_CI
---
1
Como você pode ver, esse agrupamento (regra de comparação) considera capital A
e baixa ä
a mesma letra, ignorando maiúsculas e minúsculas diferenças diacríticas.
Agrupamento define como você classifica e compara valores de sequência
Por exemplo, define como lidar com
äàa
etc)Aa
)cote < côte < coté < côté.
cote < coté < côte < côté
Agrupar significa atribuir alguma ordem aos caracteres em um alfabeto, por exemplo, ASCII ou Unicode etc.
Suponha que você tenha 3 caracteres no alfabeto - {A, B, C}. Você pode definir alguns exemplos de agrupamentos atribuindo valores integrais aos caracteres
De fato, você pode definir n! agrupamentos em um alfabeto de tamanho n. Dada essa ordem, diferentes rotinas de classificação, como as classificações de strings LSD / MSD, fazem uso delas para classificar strings.
Referência é retirada deste artigo: Um agrupamento é um conjunto de regras para comparar caracteres em um conjunto de caracteres. Ele também determinou a classificação dos caracteres e a ordem adequada de dois caracteres varia de idioma para idioma. Um agrupamento comparou duas cadeias de caracteres como, se uma palavra é maior que outra, e classificou de acordo.
Se você estiver usando o conjunto de caracteres "latin1", poderá usar o agrupamento "latin1_swedish_ci".
Você deve escolher o agrupamento correto, pois o agrupamento incorreto pode afetar o desempenho do banco de dados.
http://en.wikipedia.org/wiki/Collation
Agrupar é a montagem de informações escritas em um pedido padrão. (...) Um algoritmo de intercalação, como o algoritmo de intercalação Unicode, define uma ordem através do processo de comparação de duas cadeias de caracteres e de decidir qual deve ser anterior à outra.