Co oznacza „sortowanie”?

15

Uczę się sqlite z książki, która wielokrotnie wspominała o zestawianiu i zestawianiu sekwencji. Co to dokładnie znaczy w świecie baz danych?

Mumtaz
źródło

Odpowiedzi:

15

Zasadniczo, jak sortować i porównywać ciągi.

Przykłady:

Porównywanie:

  • Akcent: à vs ä vs a
  • Przypadek: A kontra a

Sortowanie:

  • Szwedzki: z -> å -> ä -> ö
  • Duński: z -> æ -> ø -> å

Specjalna równoważność znaków

  • Niemiecki ß = ss

Wikipedia

Niektóre 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
gbn
źródło
1

Etymologia

„Sortowanie” najlepiej zdefiniować prawdopodobnie na etymology.com,

koniec 14c., „zebranie się i porównanie”

W ciągu ostatnich 600 lat nic się nie zmieniło. „zestawienie” oznacza „połączyć” i niezależnie od tego, czy jest to uporządkowanie książki, chronologicznie czy w inny sposób w bazie danych, wszystko jest takie samo.

Informatyka

Odnosząc się do informatyki, oddzielamy mechanizm przechowywania od zamawiania . Być może słyszałeś o ASCII-betical . Odnosi się to do porównania opartego na binarnym kodowaniu znaków ASCII. W tym systemie pamięć masowa i sortowanie są identyczne. Gdyby „kodowanie” standaryzowane przez ASCII kiedykolwiek zmieniło, „sortowanie” (kolejność) również by się zmieniło.

POSIX zaczął to przełamywać LC_COLLATE. Ale kiedy przechodzimy do Unicode, powstało konsorcjum, które również ustandaryzowało sortowanie: ICU.

SQL

W specyfikacji SQL dostępne są dwa rozszerzenia zapewniające sortowanie,

  • F690: „Obsługa sortowania:

    Obejmuje collation name, collation clause, collation definitioni drop collation.

  • F692: Rozszerzona obsługa sortowania,

    Obejmuje dołączenie innego domyślnego zestawienia do kolumny w schemacie.

Zasadniczo te zapewniają możliwość CREATEi DROPsortowania, aby określić je dla operatorów i rodzaju, oraz określenie wartości domyślnych dla kolumn.

Aby uzyskać więcej informacji o tym, co SQL ma do zaoferowania sprawdź,

Przykłady

Zamiast wkleić ograniczony przykład, oto pakiet testowy PostgreSQL, który jest dość obszerny. Sprawdź przynajmniej pierwszy link i poszukaj'Türkiye' COLLATE "tr-x-icu" ILIKE '%KI%' AS "false"

Evan Carroll
źródło
-2

Sortuj porządek. Karty dziurkowane zostały zestawione. Płaskie rekordy plików są zestawiane. Nie dotyczy to tylko baz danych.

Jest to oczywiste dla tekstu, ale w przypadku danych binarnych przechowywanych jako znaki może być trudniejsze.

mckenzm
źródło