“整理”是什么意思?

mum*_*taz 18 terminology

我正在从一本多次提到整理和整理顺序的书中学习 sqlite。它在数据库世界中究竟意味着什么?

gbn*_*gbn 15

基本上,如何对字符串进行排序和比较。

例子:

比较:

  • 口音:à vs ä vs a
  • 案例:A 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
Run Code Online (Sandbox Code Playgroud)


Eva*_*oll 2

词源

\n\n

“排序规则”可能在 etymology.com 上得到了最好的定义,

\n\n
\n

14世纪末,“汇集和比较的行为”

\n
\n\n

600年来,它没有丝毫改变。“整理”的意思是“汇集在一起​​”,无论是按时间顺序还是按数据库中的其他方式对一本书进行排序,都是一样的。

\n\n

计算机科学

\n\n

由于它适用于计算机科学,我们正在做的是将存储机制与排序分开。您可能听说过ASCII-betical。那是指基于ASCII字符的二进制编码进行比较。在该系统中,存储和整理是同一回事。如果 ASCII 标准化“编码”发生变化,“排序规则”(顺序)也会发生变化。

\n\n

POSIX 开始用LC_COLLATE. 但当我们转向 Unicode 时,一个负责标准化排序规则的联盟也出现了:ICU。

\n\n

SQL

\n\n

在 SQL 规范中有两个扩展来提供排序规则,

\n\n
    \n
  • F690: \xe2\x80\x9c 排序规则支持:

    \n\n

    包括collation namecollation clausecollation definitiondrop collation

  • \n
  • F692:扩展排序规则支持,

    \n\n

    包括将不同的默认排序规则附加到架构中的列。

  • \n
\n\n

CREATE本质上,它们提供了排序规则的能力DROP,为运算符和排序指定它们,并定义列的默认值。

\n\n

有关 SQL 提供的更多信息,请查看:

\n\n\n\n

例子

\n\n

这里不是粘贴一个有限的示例,而是 PostgreSQL 测试套件,它非常广泛。至少查看第一个链接并查找\'T\xc3\xbcrkiye\' COLLATE "tr-x-icu" ILIKE \'%KI%\' AS "false"

\n\n\n