डेटाबेस संयोजन का मुख्य बिंदु यह निर्धारित करना है कि डेटा कैसे सॉर्ट और तुलना की जाती है।
स्ट्रिंग तुलनाओं की केस संवेदनशीलता
SELECT "New York" = "NEW YORK";`
एक केस असंवेदनशील संयोजन के लिए सत्य वापस आ जाएगा; संवेदनशील केस के लिए झूठा।
कौन सा कोलेशन करता है जिसे _ci
. द्वारा बताया जा सकता है और _cs
संयोजन के नाम में प्रत्यय। _bin
कोलाज बाइनरी तुलना करते हैं (स्ट्रिंग्स 100% समान होनी चाहिए)।
उमलॉट्स/उच्चारण वर्णों की तुलना
संयोजन यह भी निर्धारित करता है कि स्ट्रिंग तुलनाओं में उच्चारण वर्णों को उनके लैटिन आधार समकक्षों के रूप में माना जाता है या नहीं।
SELECT "Düsseldorf" = "Dusseldorf";
SELECT "Èclair" = "Eclair";
पूर्व मामले में सच लौटेगा; बाद में झूठा। कौन सा है यह जानने के लिए आपको प्रत्येक संयोजन के विवरण को पढ़ना होगा।
स्ट्रिंग सॉर्टिंग
संयोजन तारों को क्रमबद्ध करने के तरीके को प्रभावित करता है।
उदाहरण के लिए,
-
उमलॉट्स
Ä Ö Ü
फिनिश/स्वीडिश वर्णमाला में वर्णमाला के अंत में हैंlatin1_swedish_ci
-
उन्हें
A O U
. माना जाता है जर्मन DIN-1 सॉर्टिंग में (latin_german1_ci
) -
और
AE OE UE
. के रूप में जर्मन DIN-2 छँटाई में (latin_german2_ci
) ("फोन बुक" छँटाई) -
latin1_spanish_ci
. में , "ñ" (n-tilde) "n" और "o" के बीच एक अलग अक्षर है।
जब गैर-लैटिन वर्णों का उपयोग किया जाता है, तो इन नियमों के परिणामस्वरूप अलग-अलग सॉर्ट ऑर्डर होंगे।
रनटाइम पर कॉलेशन का उपयोग करना
आपको अपनी टेबल और कॉलम के लिए एक कोलेशन चुनना होगा, लेकिन अगर आपको परफॉर्मेंस हिट से ऐतराज नहीं है, तो आप COLLATE
का उपयोग करके रनटाइम पर डेटाबेस ऑपरेशंस को एक निश्चित कॉलेशन में बाध्य कर सकते हैं। खोजशब्द।
यह table
को क्रमित करेगा name
. द्वारा जर्मन DIN-2 छँटाई नियमों का उपयोग करते हुए स्तंभ:
SELECT name
FROM table
ORDER BY name COLLATE latin1_german2_ci;
COLLATE
Using का उपयोग करना रनटाइम पर प्रदर्शन प्रभाव पड़ेगा, क्योंकि प्रत्येक कॉलम को क्वेरी के दौरान परिवर्तित किया जाना है। तो इसे लागू करने से पहले दो बार सोचें बड़े डेटा सेट करें।
MySQL संदर्भ:
- कैरेक्टर सेट और कोलाज जो MySQL सपोर्ट करता है
- संयोजन के प्रभाव के उदाहरण
- संयोजन के मुद्दे