Collation หมายถึงอะไรใน SQL และทำอะไร?
Collation หมายถึงอะไรใน SQL และทำอะไร?
คำตอบ:
การเรียงลำดับสามารถคิดได้ง่ายๆว่าเป็นการเรียงลำดับ
ในภาษาอังกฤษ (และเป็นลูกพี่ลูกน้องแปลก ๆ อเมริกัน) การเรียงลำดับอาจเป็นเรื่องง่ายๆที่ประกอบด้วยการเรียงลำดับตามรหัสแอสกี
เมื่อคุณเข้าสู่ภาษายุโรปแปลก ๆ ที่มีสำเนียงและคุณสมบัติอื่น ๆ ทั้งหมดแล้วการเรียงจะเปลี่ยนไป ตัวอย่างเช่นแม้ว่ารูปแบบการเน้นเสียงที่แตกต่างกันa
อาจมีอยู่ในจุดรหัสที่แตกต่างกัน แต่ก็อาจต้องเรียงลำดับเหมือนกันว่าเป็นตัวอักษรเดียวกัน
e
, ë
, é
, ě
และè
อาจจะเป็นตัวอักษรที่แตกต่างกันเพื่อวัตถุประสงค์ในการสั่งซื้อ ( แต่อาจจะเป็นจดหมายฉบับเดียวกันเมื่อค้นหาแช่งยุโรปบ้า;))
42
ตัวอักษร15
พวกเขามีเครื่องหมายกำกับหรือไม่?
where st= 'aaa'
?
นอกจาก "ตัวอักษรที่เน้นเสียงจะเรียงต่างจากอักษรที่ไม่มีสำเนียง" ในภาษายุโรปตะวันตกบางภาษาแล้วคุณยังต้องคำนึงถึงกลุ่มของตัวอักษรซึ่งบางครั้งจะเรียงต่างกันด้วย
ตามเนื้อผ้าในภาษาสเปน "ch" ถือเป็นตัวอักษรที่ถูกต้องเช่นเดียวกับ "ll" (ซึ่งทั้งสองตัวแสดงถึงหน่วยเสียงเดียว) ดังนั้นรายการจะได้รับการจัดเรียงดังนี้:
แจ้งให้ทราบล่วงหน้าทุกคำที่ขึ้นต้นด้วยซิงเกิ้ลคไปด้วยกันยกเว้นคำที่ขึ้นต้นด้วยCHที่ไปหลังจากที่พวกเขาเหมือนกันกับLL -starting คำที่ไปหลังจากที่ทุกคำที่ขึ้นต้นด้วยซิงเกิ้ลต่อลิตร นี่คือลำดับที่คุณจะเห็นในพจนานุกรมและสารานุกรมเก่าบางครั้งแม้กระทั่งในปัจจุบันโดยองค์กรที่อนุรักษ์นิยม
Royal Academy of the Language ได้เปลี่ยนแปลงสิ่งนี้เพื่อให้ภาษาสเปนเข้ามาอยู่ในโลกแห่งคอมพิวเตอร์ได้ง่ายขึ้น อย่างไรก็ตามñถือว่ายังคงเป็นตัวอักษรที่แตกต่างกันกว่าnและไปหลังจากนั้นและก่อนo นี่คือรายการสั่งซื้อที่ถูกต้อง:
เมื่อเลือกการเปรียบเทียบที่ถูกต้องคุณจะทำสิ่งนี้ให้คุณโดยอัตโนมัติ :-)
กฎที่บอกวิธีเปรียบเทียบและจัดเรียงสตริง: ลำดับตัวอักษร; ไม่ว่าจะเป็นกรณีสำคัญหรือไม่ว่าจะเป็นเรื่องการกำกับเสียงเป็นต้น
ตัวอย่างเช่นหากคุณต้องการให้ตัวอักษรทั้งหมดแตกต่างกัน (เช่นถ้าคุณเก็บชื่อไฟล์ไว้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
และลดขนาดä
ตัวอักษรเดียวกันโดยไม่สนใจความแตกต่างของตัวพิมพ์และตัวกำกับเสียง
การเรียงลำดับกำหนดวิธีการเรียงลำดับและเปรียบเทียบค่าสตริง
ตัวอย่างเช่นกำหนดวิธีจัดการกับ
äàa
ฯลฯ )Aa
)cote < côte < coté < côté.
cote < coté < côte < côté
การเรียงลำดับหมายถึงการกำหนดลำดับบางอย่างให้กับอักขระใน Alphabet เช่น ASCII หรือ Unicode เป็นต้น
สมมติว่าคุณมีอักขระ 3 ตัวในตัวอักษรของคุณ - {A, B, C} คุณสามารถกำหนดการจัดเรียงตัวอย่างได้โดยกำหนดค่าอินทิกรัลให้กับอักขระ
ตามความเป็นจริงคุณสามารถกำหนด n! collations บนตัวอักษรขนาด n. ด้วยคำสั่งดังกล่าวรูทีนการเรียงลำดับที่แตกต่างกันเช่นประเภทสตริง LSD / MSD จะใช้ประโยชน์จากมันสำหรับการเรียงลำดับสตริง
การจัดเรียงจะกำหนดวิธีการจัดเรียงและเปรียบเทียบข้อมูลของคุณ บ่อยครั้งที่สำคัญมากเกี่ยวกับการทำให้เป็นสากลเช่นคุณเรียงคันจิภาษาญี่ปุ่นอย่างไร?
หากคุณใช้ google collation และ sql server คุณจะพบบทความมากมายที่พูดถึงมัน!
อ้างอิงมาจากบทความนี้: การเปรียบเทียบเป็นชุดของกฎสำหรับการเปรียบเทียบอักขระในชุดอักขระ นอกจากนี้ยังควบคุมการเรียงลำดับอักขระและลำดับที่เหมาะสมของอักขระสองตัวจะแตกต่างกันไปในแต่ละภาษา การเรียงลำดับเปรียบเทียบสองสตริงเช่นถ้าคำมากกว่าอีกคำหนึ่งให้เรียงลำดับตามนั้น
หากคุณใช้ชุดอักขระ“ latin1” คุณสามารถใช้การเรียงลำดับ“ latin1_swedish_ci”
คุณต้องเลือกการจัดเรียงที่ถูกต้องเนื่องจากการจัดเรียงผิดอาจส่งผลต่อประสิทธิภาพฐานข้อมูล
http://en.wikipedia.org/wiki/Collation
Collation คือการประกอบข้อมูลที่เป็นลายลักษณ์อักษรให้เป็นลำดับมาตรฐาน (... ) อัลกอริทึมการจัดเรียงเช่นอัลกอริทึมการเปรียบเทียบ Unicodeกำหนดลำดับผ่านกระบวนการเปรียบเทียบสตริงอักขระที่กำหนดสองสตริงและตัดสินใจว่าควรจะมาก่อนสตริงอื่น