Что означает сопоставление в SQL и что оно делает?
Что означает сопоставление в SQL и что оно делает?
Ответы:
Сортировку можно просто рассматривать как порядок сортировки.
В английском (и это странный кузен, американский) сопоставление может быть довольно простым делом, состоящим из упорядочения по коду ASCII.
Как только вы попадаете на эти странные европейские языки со всеми их акцентами и другими функциями, сортировка меняется. Например, хотя различные акцентированные формы a
могут существовать в разных кодовых точках, все они могут быть отсортированы, как если бы они были одной и той же буквой.
e
, ë
, é
, ě
и è
может быть различные буквы для целей упорядочения (но , возможно , та же буква при поиске, черт тех сумасшедших европейцев;)).
42
буквами, 15
в них есть диакритические знаки?
where st= 'aaa'
?
Кроме того, «акцентированные буквы сортируются по-разному, чем безакцентированные» в некоторых западноевропейских языках, необходимо учитывать группы букв, которые иногда также сортируются по-разному.
Традиционно на испанском языке «ch» считался буквой сам по себе, то же самое с «ll» (оба из которых представляют одну фонему), поэтому список сортировался бы так:
Обратите внимание, что все слова, начинающиеся с одиночного c, идут вместе, кроме слов, начинающихся с ch, которые идут после них, то же самое со словами, начинающимися с ll, которые идут после всех слов, начинающихся с одного l . Это порядок, который вы увидите в старых словарях и энциклопедиях, иногда даже сегодня очень консервативными организациями.
Королевская академия языка изменила это, чтобы упростить размещение испанского языка в компьютерном мире. Тем не менее, - по-прежнему считается буквой, отличной от n, и идет после нее и до o . Так что это правильно упорядоченный список:
Выбрав правильное сопоставление, вы автоматически сделаете все это за вас :-)
Правила, которые говорят, как сравнивать и сортировать строки: порядок букв; имеет ли значение дело, имеют ли значение диакритические знаки и т. д.
Например, если вы хотите, чтобы все буквы были разными (скажем, если вы храните имена файлов в них UNIX
), вы используете UTF8_BIN
сортировку:
SELECT 'A' COLLATE UTF8_BIN = 'a' COLLATE UTF8_BIN
---
0
Если вы хотите игнорировать различия регистра и диакритики (скажем, для поисковой системы), используйте UTF8_GENERAL_CI
сопоставление:
SELECT 'A' COLLATE UTF8_GENERAL_CI = 'ä' COLLATE UTF8_GENERAL_CI
---
1
Как вы можете видеть, это сопоставление (правило сравнения) рассматривает заглавные A
и строчные ä
буквы одинаково, игнорируя регистр и диакритические различия.
Сортировка определяет, как вы сортируете и сравниваете строковые значения
Например, он определяет, как бороться с
äàa
т. д.)Aa
)cote < côte < coté < côté.
cote < coté < côte < côté
Сличение означает присвоение некоторого порядка для символов в алфавите, скажем, ASCII или Unicode и т. Д.
Предположим, у вас есть 3 символа в вашем алфавите - {A, B, C}. Вы можете определить некоторые примеры сопоставления для него, назначив интегральные значения для символов
На самом деле, вы можете определить! сопоставления по алфавиту размера n. Учитывая такой порядок, различные процедуры сортировки, такие как сортировки строк LSD / MSD, используют его для сортировки строк.
Ссылка взята из этой статьи: сопоставление - это набор правил для сравнения символов в наборе символов. Он также правил для сортировки символов, и правильный порядок двух символов варьируется от языка к языку. Collation сравнивает две строки, например, если слово больше другого, и сортирует их соответственно.
Если вы используете набор символов «latin1», вы можете использовать сортировку «latin1_swedish_ci».
Вы должны выбрать правильное сопоставление, потому что неправильное сопоставление может повлиять на производительность вашей базы данных.
http://en.wikipedia.org/wiki/Collation
Сопоставление - это сбор письменной информации в стандартном порядке. (...) Алгоритм сопоставления, такой как алгоритм сопоставления Unicode, определяет порядок в процессе сравнения двух заданных символьных строк и выбора, который должен предшествовать другому.