SQL中的归类是什么意思,它做了什么?
答案 0 :(得分:53)
整理可以简单地视为排序顺序。
在英语中(并且它是奇怪的堂兄,美国人),整理可能是一个非常简单的问题,包括ASCII码的排序。
一旦你进入那些奇怪的欧洲语言及其所有口音和其他功能,整理就会发生变化。例如,虽然a
的不同重音形式可能存在于不同的代码点,但它们可能都需要按照它们是相同的字母进行排序。
答案 1 :(得分:40)
除了在某些西欧语言中“重音字母的排序方式与非重音字母不同”之外,您还必须考虑字母的组,这些字母有时也会以不同方式排序。
传统上,在西班牙语中,“ch”本身被认为是一个字母,与“ll”(两者都代表单个音素)相同,因此列表将按如下方式排序:
请注意所有以单个 c 开头的单词一起使用,除了以 ch 开头的单词 之后的单词,与相同ll - 启动所有以单个 l 开头的单词之后的单词。这是您在旧词典和百科全书中看到的顺序,有时甚至是非常保守的组织。
皇家语言学院改变了这一点,使西班牙语更容易适应计算机世界。尽管如此,ñ仍然被认为是与 n 不同的字母,并且之后, o 之前。所以这是一个正确排序的列表:
通过选择正确的排序规则,您可以自动完成所有这些操作: - )
答案 2 :(得分:12)
告诉如何比较和排序字符串的规则:字母顺序;案件是否重要,变音符号是否重要等。
例如,如果您希望所有字母都不同(例如,如果您在UNIX
中存储文件名),则使用UTF8_BIN
整理:
SELECT 'A' COLLATE UTF8_BIN = 'a' COLLATE UTF8_BIN
---
0
如果您想忽略大小写和变音符号差异(例如,对于搜索引擎),请使用UTF8_GENERAL_CI
归类:
SELECT 'A' COLLATE UTF8_GENERAL_CI = 'ä' COLLATE UTF8_GENERAL_CI
---
1
正如您所看到的,此归类(比较规则)将大写A
和lowecase ä
视为同一个字母,忽略大小写和变音差异。
答案 3 :(得分:8)
归类定义了如何对字符串值进行排序和比较
例如,它定义了如何处理
äàa
等)Aa
)cote < côte < coté < côté.
cote < coté < côte < côté
答案 4 :(得分:4)
整理意味着为字母表中的字符分配一些顺序,例如ASCII或Unicode等。
假设您的字母表中有3个字符 - {A,B,C}。您可以通过为字符
指定整数值来为其定义一些示例排序规则事实上,你可以定义n!字母大小为n的整理。给定这样的顺序,不同的排序例程喜欢LSD / MSD字符串排序使用它来排序字符串。
答案 5 :(得分:3)
http://en.wikipedia.org/wiki/Collation
整理是将书面信息汇编成标准订单。 (...)诸如Unicode collation algorithm之类的整理算法通过比较两个给定字符串并决定哪一个应该先于另一个字符串的过程来定义一个顺序。
答案 6 :(得分:3)
排序规则决定了数据的排序和比较方式。在国际化方面,这通常很重要,例如:你怎么排序日本汉字?
如果你使用google collation和sql server,你会发现很多文章在讨论它!
答案 7 :(得分:3)
Reference is taken from this Article: 排序规则是一组用于比较字符集中字符的规则。它还统治了字符的排序,两个字符的正确顺序因语言而异。 Collation比较了两个字符串,如果一个单词大于另一个单词,则进行相应的排序。
如果您使用的是“latin1”字符集,则可以使用“latin1_swedish_ci”整理。
您必须选择正确的排序规则,因为错误的排序规则可能会影响您的数据库性能。
答案 8 :(得分:1)
排序规则是SQL服务器如何决定如何排序和比较文本。
请参阅MSDN。