ฉันใหม่กับ MySQL และฉันต้องการที่จะรู้ว่า:
ฉันจะสร้างฐานข้อมูลด้วยชุดอักขระutf-8
เช่นเดียวกับที่ฉันทำใน navicat ได้อย่างไร
create mydatabase;
... ดูเหมือนว่าจะใช้ชุดอักขระเริ่มต้นบางประเภท
ฉันใหม่กับ MySQL และฉันต้องการที่จะรู้ว่า:
ฉันจะสร้างฐานข้อมูลด้วยชุดอักขระutf-8
เช่นเดียวกับที่ฉันทำใน navicat ได้อย่างไร
create mydatabase;
... ดูเหมือนว่าจะใช้ชุดอักขระเริ่มต้นบางประเภท
คำตอบ:
หมายเหตุ:ต่อไปนี้ถือว่าเป็นแนวปฏิบัติที่ดีขึ้น (ดูคำตอบของนักขี่จักรยานยนต์ 858 ):
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
คำตอบเดิม:
ลองสิ่งนี้:
CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_general_ci;
สำหรับข้อมูลเพิ่มเติมดูชุดอักขระฐานข้อมูลและการเรียงในฐานข้อมูล MySQL
COLLATE utf8mb4_unicode_520_ci
หรือหรือแม้กระทั่งสถานที่เฉพาะเจาะจงตัวอย่างเช่น:utf8mb4_0900_ai_ci
utf8mb4_vi_0900_ai_ci
สำหรับ MariaDB 10.2.2+ คุณมี "nopad" utf8mb4_unicode_520_nopad_ci
เรียง dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.html
utf8mb4_0900_ai_ci
พิจารณาในการปรับปรุงคำตอบของคุณจะทำอย่างไรเกี่ยวกับการกล่าวถึง ดูเหมือนว่าจะดีกว่าutf8mb4_unicode_ci
คุณควรใช้:
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
โปรดทราบว่าutf8_general_ci
ไม่แนะนำวิธีปฏิบัติที่ดีที่สุดอีกต่อไป ดูคำถาม & คำตอบที่เกี่ยวข้อง:
ความแตกต่างระหว่าง utf8_general_ci และ utf8_unicode_ciบน Stack Overflow คืออะไร
utf8mb4_0900_ai_ci
พิจารณาในการปรับปรุงคำตอบของคุณจะทำอย่างไรเกี่ยวกับการกล่าวถึง ดูเหมือนว่าจะดีกว่าutf8mb4_unicode_ci
utf8mb4
utf8
แล้ว MySQLutf8
คุณถามอะไร เป็นรุ่นที่ จำกัด ของ utf-8 ที่ใช้งานได้กับชุดย่อยของอักขระเท่านั้น แต่ล้มเหลวสำหรับสิ่งต่างๆเช่นอิโมจิ ต่อมาพวกเขาเพิ่มutf8mb4
ซึ่งเป็นการใช้งานที่ถูกต้อง แต่ MySQL ต้องย้อนกลับเข้ากันได้กับข้อผิดพลาดเก่าดังนั้นนั่นคือเหตุผลที่การเพิ่มการเข้ารหัสใหม่แทนที่จะแก้ไขการเข้ารหัสเก่าutf8mb4
ฐานข้อมูลใหม่ทุกคนควรใช้