Apa arti pemeriksaan dalam SQL, dan apa fungsinya?
Apa arti pemeriksaan dalam SQL, dan apa fungsinya?
Jawaban:
Susunan dapat secara sederhana dianggap sebagai urutan.
Dalam bahasa Inggris (dan ini sepupu aneh, Amerika), pemeriksaan mungkin merupakan masalah yang cukup sederhana yang terdiri dari pengurutan berdasarkan kode ASCII.
Setelah Anda masuk ke bahasa Eropa yang aneh dengan semua aksen dan fitur lainnya, susunan berubah. Misalnya, meskipun bentuk aksen yang berbeda dari a
mungkin ada di titik kode yang berbeda, semuanya mungkin perlu diurutkan seolah-olah merupakan huruf yang sama.
e
, ë
, é
, ě
, dan è
mungkin menjadi huruf yang berbeda untuk tujuan pemesanan (tapi mungkin surat yang sama ketika mencari, sialan orang-orang Eropa gila;)).
42
huruf, 15
di antaranya memiliki diakritik?
where st= 'aaa'
?
Selain "huruf beraksen diurutkan secara berbeda dari yang tidak beraksen" dalam beberapa bahasa Eropa Barat, Anda harus mempertimbangkan kelompok huruf, yang terkadang juga diurutkan secara berbeda.
Secara tradisional, dalam bahasa Spanyol, "ch" dianggap sebagai huruf dengan sendirinya, sama dengan "ll" (keduanya mewakili fonem tunggal), jadi daftar akan diurutkan seperti ini:
Perhatikan semua kata yang dimulai dengan satu c pergi bersama, kecuali kata-kata yang dimulai dengan ch yang setelahnya , sama dengan kata-kata awal- ll yang setelah semua kata yang dimulai dengan satu l . Ini adalah urutan yang akan Anda lihat di kamus dan ensiklopedia lama, terkadang bahkan hari ini oleh organisasi yang sangat konservatif.
Royal Academy of the Language mengubah ini untuk mempermudah bahasa Spanyol untuk diakomodasi di dunia komputasi. Namun demikian, ñ masih dianggap sebagai huruf yang berbeda dari n dan setelahnya , dan sebelum o . Jadi ini adalah daftar yang diurutkan dengan benar:
Dengan memilih susunan yang benar, Anda menyelesaikan semua ini untuk Anda, secara otomatis :-)
Aturan yang menjelaskan cara membandingkan dan mengurutkan string: urutan huruf; apakah kasus itu penting, apakah diakritik itu penting, dll.
Misalnya, jika Anda ingin semua huruf berbeda (katakanlah, jika Anda menyimpan nama file di UNIX
), Anda menggunakan UTF8_BIN
pemeriksaan:
SELECT 'A' COLLATE UTF8_BIN = 'a' COLLATE UTF8_BIN
---
0
Jika Anda ingin mengabaikan perbedaan huruf dan diakritik (misalnya, untuk mesin telusur), Anda menggunakan UTF8_GENERAL_CI
pemeriksaan:
SELECT 'A' COLLATE UTF8_GENERAL_CI = 'ä' COLLATE UTF8_GENERAL_CI
---
1
Seperti yang Anda lihat, kumpulan ini (aturan perbandingan) menganggap A
huruf besar dan huruf kecil ä
adalah huruf yang sama, mengabaikan perbedaan huruf besar dan diakritik.
Collation menentukan cara Anda mengurutkan dan membandingkan nilai string
Misalnya, ini menjelaskan bagaimana menangani
äàa
dll)Aa
)cote < côte < coté < côté.
cote < coté < côte < côté
Collation berarti menetapkan beberapa urutan ke karakter dalam Alphabet, katakanlah, ASCII atau Unicode dll.
Misalkan Anda memiliki 3 karakter dalam alfabet Anda - {A, B, C}. Anda dapat menentukan beberapa contoh collation untuk itu dengan menetapkan nilai integral ke karakter
Faktanya, Anda dapat mendefinisikan n! collations pada Alfabet ukuran n. Dengan urutan seperti itu, rutinitas pengurutan yang berbeda seperti jenis string LSD / MSD memanfaatkannya untuk menyortir string.
Referensi diambil dari Artikel ini: Collation adalah seperangkat aturan untuk membandingkan karakter dalam himpunan karakter. Itu juga telah mengatur untuk menyortir karakter dan urutan yang tepat dari dua karakter bervariasi dari bahasa ke bahasa. Susunan membandingkan dua string seperti, jika sebuah kata lebih besar dari yang lain, dan mengurutkan sesuai.
Jika Anda menggunakan set Karakter “latin1”, Anda dapat menggunakan Collation “latin1_swedish_ci”.
Anda harus memilih pemeriksaan yang benar karena pemeriksaan yang salah dapat mempengaruhi kinerja database Anda.
http://en.wikipedia.org/wiki/Collation
Collation adalah kumpulan informasi tertulis ke dalam urutan standar. (...) Algoritma pemeriksaan seperti algoritma pemeriksaan Unicode mendefinisikan urutan melalui proses membandingkan dua string karakter yang diberikan dan memutuskan mana yang harus muncul sebelum yang lain.