Что означает «сопоставление»?

15

Я изучаю sqlite из книги, в которой многократно упоминается порядок сортировки и сортировки. Что это значит именно в мире баз данных?

Мумтаз
источник

Ответы:

15

В основном, как сортировать и сравнивать строки.

Примеры:

Сравнение:

  • Акцент: по сравнению с по
  • Дело: А против

Сортировка:

  • Шведский: z -> å -> ä -> ö
  • Датский: z -> æ -> ø -> å

Эквивалентность специальных символов

  • Немецкий б = сс

Википедия

Немного 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

Этимология

«Сортировка», вероятно, лучше всего определяется на etymology.com,

конец 14 в., «акт объединения и сравнения»

Он не изменился за последние 600 лет. «Разобрать» означает «собрать вместе», и, будь то порядок книг, в хронологическом порядке или иным образом в базе данных, все одинаково.

Компьютерная наука

Что касается компьютерной науки, то мы отделяем механизм хранения от упорядочения . Возможно, вы слышали о ASCII-бетикале . Это относится к сравнению на основе двоичного кодирования символов ASCII. В этой системе хранение и сопоставление - это два в одном. Если ASCII-стандартизированное «кодирование» когда-либо изменялось, «сопоставление» (порядок) также изменилось бы.

POSIX начал ломать это с LC_COLLATE. Но когда мы перейдем на Unicode, появился консорциум для стандартизации сортировки: ICU.

SQL

В спецификации SQL есть два расширения для обеспечения сортировки,

  • F690: «Поддержка сортировки:

    Включает в себя collation name, collation clause, collation definitionи drop collation.

  • F692: Расширенная поддержка сортировки,

    Включает в себя присоединение другого сопоставления по умолчанию к столбцу в схеме.

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

Для получения дополнительной информации о том, что SQL может предложить проверить,

Примеры

Вместо того, чтобы вставлять ограниченный пример, вот набор тестов PostgreSQL, он довольно обширный. Проверьте хотя бы первую ссылку и поищите'Türkiye' COLLATE "tr-x-icu" ILIKE '%KI%' AS "false"

Эван Кэрролл
источник
-2

Порядок сортировки. Перфокарты были сопоставлены. Записи плоских файлов сопоставляются. Это не уникально для баз данных.

Это самоочевидно для текста, но для двоичных данных, хранящихся в виде символов, это может быть сложнее.

mckenzm
источник