SQL'de harmanlama ne anlama geliyor ve ne anlama geliyor?
SQL'de harmanlama ne anlama geliyor ve ne anlama geliyor?
Yanıtlar:
Harmanlama basitçe sıralama düzeni olarak düşünülebilir.
İngilizcede (ve garip kuzeni, Amerikan), harmanlama ASCII kodu ile sipariş vermeyi içeren oldukça basit bir konu olabilir.
Tüm aksanları ve diğer özellikleriyle bu garip Avrupa dillerine girdikten sonra, harmanlama değişir. Örneğin, farklı aksanlı biçimleri a
farklı kod noktalarında mevcut olsa da , hepsinin aynı harfmiş gibi sıralanması gerekebilir.
e
, ë
, é
, ě
, ve è
belki sipariş amacıyla farklı harfler olmak (ancak muhtemelen aynı harf ararken, o deli Avrupalıları kahretsin;)).
42
, mektuplar 15
onları özel harfleri sahip?
where st= 'aaa'
mi yoksa aynı zamanda için mi?
Bazı Batı Avrupa dillerinde "aksanlı harfler aksasız olanlardan farklı sıralanır" yanında, bazen farklı sıralanan harf gruplarını da dikkate almalısınız .
Geleneksel olarak, İspanyolcada "ch", "ll" (her ikisi de tek bir foneyi temsil eder) ile aynı olan, kendi başına bir harf olarak kabul edildi, bu nedenle bir liste şu şekilde sıralanır:
Tek başlayarak Bildirimi tüm kelimeler c ile başlayan kelimelerin dışında birlikte gidip ch gitmek sonra aynı onları, ll tek ile başlayan tüm kelimeleri peşine kelimeleri başlatılması l . Bu, eski sözlüklerde ve ansiklopedilerde, bazen bugün bile çok muhafazakar örgütler tarafından göreceğiniz düzendir.
Kraliyet Dil Akademisi, İspanyolların bilgisayar dünyasında kalmasını kolaylaştırmak için bunu değiştirdi. Bununla birlikte, ñ hala farklı bir harf olarak kabul edilir n ve gider sonra ona, ondan önce o . Yani bu doğru sıralı bir liste:
Doğru harmanlamayı seçerek, tüm bunları sizin için otomatik olarak yaparsınız :-)
Dizelerin nasıl karşılaştırılacağını ve sıralanacağını anlatan kurallar: harfler sırası; davanın önemli olup olmadığı, aksanların önemli olup olmadığı vb.
Örneğin, tüm harflerin farklı olmasını istiyorsanız (örneğin dosya adlarını depolarsanız UNIX
) UTF8_BIN
harmanlama kullanırsınız :
SELECT 'A' COLLATE UTF8_BIN = 'a' COLLATE UTF8_BIN
---
0
Büyük / küçük harf ve aksan farklılıklarını yok saymak istiyorsanız (örneğin, bir arama motoru için) UTF8_GENERAL_CI
harmanlama kullanırsınız :
SELECT 'A' COLLATE UTF8_GENERAL_CI = 'ä' COLLATE UTF8_GENERAL_CI
---
1
Gördüğünüz gibi, bu harmanlama (karşılaştırma kuralı) sermaye gördüğü A
ve lowecase ä
aynı mektubu, görmezden durumda ve aksan farklılıkları.
Harmanlama, dize değerlerini nasıl sıraladığınızı ve karşılaştırdığınızı tanımlar
Örneğin, nasıl başa çıkılacağını tanımlar
äàa
vb.)Aa
)cote < côte < coté < côté.
cote < coté < côte < côté
Harmanlama, Alfabedeki karakterlere, örneğin ASCII veya Unicode vb.
Alfabenizde 3 karakter bulunduğunu varsayalım - {A, B, C}. Karakterlere integral değerler atayarak bunun için bazı örnek harmanlamalar tanımlayabilirsiniz
Nitekim n tanımlayabilirsiniz! n büyüklüğünde bir alfabe üzerinde harmanlamalar Böyle bir düzen göz önüne alındığında, LSD / MSD dize türlerini beğenen farklı sıralama rutinleri dizeleri sıralama için kullanır.
Bu makaleden başvuru alınmıştır: Harmanlama, karakter kümesindeki karakterleri karşılaştırmak için kullanılan bir dizi kuraldır. Ayrıca karakterlerin sıralanması için karar vermiştir ve iki karakterin uygun sırası dilden dile değişir. Bir Harmanlama, bir sözcük diğerinden daha büyükse, iki dizeyi karşılaştırır ve buna göre sıralar.
“Latin1” Karakter kümesi kullanıyorsanız “latin1_swedish_ci” Harmanlama özelliğini kullanabilirsiniz.
Yanlış harmanlama veritabanı performansınızı etkileyebileceğinden doğru harmanlamayı seçmelisiniz.
http://en.wikipedia.org/wiki/Collation
Harmanlama, yazılı bilgilerin standart bir düzene birleştirilmesidir. (...) Unicode harmanlama algoritması gibi bir harmanlama algoritması , verilen iki karakter dizesini karşılaştırma ve hangisinin diğerinden önce gelmesi gerektiğine karar verme sürecinde bir sıra tanımlar.