Подтвердить что ты не робот

Я не понимаю Сортировку? (Mysql, RDBMS, наборы символов)

Я понимаю набор символов, но я не понимаю Collation. Я знаю, что вы получаете сопоставление по умолчанию с каждым набором символов в Mysql или любой СУБД, но я до сих пор не понимаю! Может ли кто-нибудь объяснить объяснение в неспециалистских терминах?

Заранее благодарю вас, -)

4b9b3361

Ответ 1

Основная точка сортировки базы данных - это определение того, как данные сортируются и сравниваются.

Чувствительность к строкам сравнения строк

SELECT "New York" = "NEW YORK";` 

вернет true для нечувствительной к регистру сортировки; false для чувствительного к регистру.

Какую сортировку можно задать суффикс _ci и _cs в имени сортировки. _bin сопоставления выполняют двоичные сравнения (строки должны быть на 100% идентичны).

Сравнение символов умляутов/акцентов

сопоставление также определяет, рассматриваются ли акцентированные символы как их латинские базовые копии в сравнении строк.

SELECT "Düsseldorf" =  "Dusseldorf";
SELECT "Èclair" =      "Eclair";

вернет true в первом случае; false в последнем. Вам нужно будет прочитать каждое описание сопоставления, чтобы узнать, что именно.

Сортировка строк

Сопоставление влияет на способ сортировки строк.

Например,

  • Umlauts Ä Ö Ü находятся в конце алфавита в финском/шведском алфавите latin1_swedish_ci

  • они обрабатываются как A O U в немецкой сортировке по DIN-1 (latin_german1_ci)

  • и AE OE UE в немецкой сортировке по DIN-2 (latin_german2_ci). (сортировка телефонной книги)

  • В latin1_spanish_ci, "-" (n-тильда) является отдельной буквой между "n" и "o".

Эти правила приведут к другим порядкам сортировки, когда используются нелатинские символы.

Использование сопоставлений во время выполнения

Вам нужно выбрать сортировку для своей таблицы и столбцов, но если вы не возражаете против производительности, вы можете принудительно выполнить операции базы данных в определенной сортировке во время выполнения, используя ключевое слово COLLATE.

Это сортирует table столбцом name, используя немецкие правила сортировки по DIN-2:

SELECT name
FROM table
ORDER BY name COLLATE latin1_german2_ci;

Использование COLLATE во время выполнения будет иметь последствия для производительности, так как каждый столбец должен быть преобразован во время запроса. Поэтому дважды подумайте, прежде чем применять это делать большие массивы данных.

Справочник по MySQL:

Ответ 2

Сводка - это информация о том, как строки сортировать и сравнивать.

Он содержит, например, чувствительность к регистру, например. будь то a= a, специальные соображения характера, например. ли a= á и порядок символов, например. ли O < Ö.