Що означає "зіставлення"?


15

Я навчаюсь sqlite з книги, яка кілька разів згадувала послідовність зіставлення та згортання. Що саме це означає у світі баз даних?

Відповіді:


15

В основному, як сортувати і порівнювати рядки.

Приклади:

Порівняння:

  • Акцент: à vs ä vs a
  • Випадок: А проти а

Сортування:

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

Спеціальна еквівалентність символів

  • Німецька ß = ss

Вікіпедія

Деякі 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-betical . Це стосується порівняння на основі двійкового кодування 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

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

Це зрозуміло для тексту, але для двійкових даних, що зберігаються як символи, це може бути складніше.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.