Terminology
“整理”是什麼意思?
我正在從一本多次提到整理和整理順序的書中學習 sqlite。它在數據庫世界中究竟意味著什麼?
詞源
“排序規則”可能在詞源學網站上得到最好的定義,
14c 後期,“匯集和比較的行為”
在過去的 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"
collate.icu.utf8.out
collate.linux.utf8.out
collate.out
可能不值得一試,但我把它放在這裡是為了完整性,無聊的 POSIX 檢查。