Cosa significa "fascicolazione"?


15

Sto imparando sqlite da un libro che ha menzionato più volte la sequenza di confronto e confronto. Cosa significa esattamente nel mondo dei database?

Risposte:


15

Fondamentalmente, come ordinare e confrontare le stringhe.

Esempi:

confrontando:

  • Accento: à vs ä vs a
  • Caso: A vs a

Ordinamento:

  • Svedese: z -> å -> ä -> ö
  • Danese: z -> æ -> ø -> å

Equivalenza di carattere speciale

  • Tedesco ß = ss

Wikipedia

Alcuni 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

Etimologia

"Collation" è probabilmente meglio definito su etymology.com,

fine del 14c. "atto di riunire e confrontare"

Non è cambiato affatto negli ultimi 600 anni. "fascicolazione" significa "mettere insieme" e, indipendentemente dal fatto che si tratti di un ordine cronologico o di altro tipo in un database, è tutto uguale.

Informatica

Per quanto riguarda l'Informatica, ciò che stiamo facendo è separare il meccanismo di archiviazione dall'ordinamento . Potresti aver sentito parlare di ASCII-betical . Ciò si riferisce a un confronto basato sulla codifica binaria di caratteri ASCII. In quel sistema, archiviazione e regole di confronto sono due nello stesso. Se la "codifica" standardizzata ASCII dovesse mai cambiare, anche la "collation" (ordine) cambierebbe.

POSIX ha iniziato a romperlo con LC_COLLATE. Ma mentre ci spostiamo in Unicode è emerso un consorzio per standardizzare anche le regole di confronto: ICU.

SQL

Nelle specifiche SQL ci sono due estensioni per fornire regole di confronto,

  • F690: "Supporto per le regole di confronto:

    Include collation name, collation clause, collation definitione drop collation.

  • F692: Supporto di confronto esteso,

    Include il collegamento di regole di confronto predefinite diverse a una colonna nello schema.

In sostanza, forniscono la possibilità CREATEe le DROPregole di confronto, di specificarle per operatori e ordinamenti e di definire un valore predefinito per le colonne.

Per ulteriori informazioni su ciò che SQL ha da offrire,

Esempi

Invece di incollare un esempio limitato, ecco la suite di test PostgreSQL che è piuttosto estesa. Dai un'occhiata almeno al primo link e cerca'Türkiye' COLLATE "tr-x-icu" ILIKE '%KI%' AS "false"


-2

Ordinamento. Le carte perforate sono state raccolte. I record di file flat vengono fascicolati. Questo non è univoco per i database.

È autoesplicativo per il testo, ma per i dati binari memorizzati come caratteri può essere più complicato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.