Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Gunakan kunci utama sensitif aksen di MySQL

Koleksi . Anda memiliki dua pilihan, bukan tiga:

utf8_bin memperlakukan semua ini sebagai berbeda :demandé dan demandé dan Demandé .

utf8_..._ci (biasanya utf8_general_ci atau utf8_unicode_ci ) memperlakukan semua ini sebagai sama :demandé dan demandé dan Demandé .

Jika Anda hanya menginginkan sensitivitas huruf besar-kecil (demandé =demandé , tetapi keduanya tidak cocok dengan Demandé ), Anda kurang beruntung.

Jika Anda hanya menginginkan sensitivitas aksen (demandé =Demandé , tetapi keduanya tidak cocok dengan demandé ), Anda kurang beruntung.

Deklarasi . Cara terbaik untuk melakukan apa pun yang Anda pilih:

CREATE TABLE (
    name VARCHAR(...)  CHARACTER SET utf8  COLLATE utf8_...  NOT NULL,
    ...
    PRIMARY KEY(name)
)

Jangan mengubah susunan dengan cepat . Ini tidak akan menggunakan indeks (yaitu, akan lambat) jika susunannya berbeda di name :

WHERE name = ... COLLATE ...

BINARY . tipe data BINARY , VARBINARY dan BLOB sangat mirip dengan CHAR , VARCHAR , dan TEXT dengan COLLATE ..._bin . Mungkin satu-satunya perbedaan adalah bahwa teks akan diperiksa untuk penyimpanan utf8 yang valid dalam VARCHAR ... COLLATE ..._bin , tetapi tidak akan diperiksa saat menyimpan ke VARBINARY... . Perbandingan (WHERE , ORDER BY , dll) akan sama; yaitu, cukup bandingkan bitnya, jangan lakukan case folding atau aksen stripping, dll.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menyimpan tanggal di database MySQL?

  2. ALTER TABLE untuk menambahkan kunci primer komposit

  3. Bagaimana cara menulis perbandingan aman nol <=> dalam SQL murni?

  4. Query MySQL dengan hitungan dan grup berdasarkan

  5. Bagaimana saya bisa menghapus layar di konsol MySQL?