MySQL創(chuàng)建數(shù)據(jù)庫(kù)并支持中文字符

我們首先看一下MySQL官方文檔:5.7

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_option] ...

create_option: [DEFAULT] {
    CHARACTER SET [=] charset_name
  | COLLATE [=] collation_name
}

通過(guò)查看mysql服務(wù)器的變量我們知道m(xù)ysql默認(rèn)創(chuàng)建數(shù)據(jù)庫(kù)開(kāi)啟的字符集是latin1

mysql> show variables like 'character%';
+--------------------------+---------------------------------------------+
| Variable_name            | Value                                       |
+--------------------------+---------------------------------------------+
| character_set_client     | gbk                                         |
| character_set_connection | gbk                                         |
| character_set_database   | latin1                                      |
| character_set_filesystem | binary                                      |
| character_set_results    | gbk                                         |
| character_set_server     | latin1                                      |
| character_set_system     | utf8                                        |
| character_sets_dir       | D:\Environment\mysql-5.7.32\share\charsets\ |
+--------------------------+---------------------------------------------+
8 rows in set, 1 warning (0.00 sec)

character_set_database | latin1 可以看出如果我們創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候沒(méi)有指定字符集,默認(rèn)就是 latin1。

現(xiàn)在我們需要給創(chuàng)建的數(shù)據(jù)庫(kù)db2指定支持中文的字符集 utf8,下面是一行的內(nèi)容哦!

CREATE DATABASE db2 IF NOT EXISTS db2    
DEFAULT CHARACTER SET utf8       
COLLATE utf_general_ci;

上面我們就完成支持插入中文數(shù)據(jù)的數(shù)據(jù)庫(kù)的創(chuàng)建,現(xiàn)在我們來(lái)思考一個(gè)問(wèn)題,支持中文的字符集就只有utf8,還有哪些呢?它們之間的區(qū)別是什么?
我們先來(lái)看一下mysql 5.7.x 支持的字符集以及字符規(guī)則:

mysql> SELECT version();
+-----------+
| version() |
+-----------+
| 5.7.32    |
+-----------+
1 row in set (0.00 sec)

mysql> SHOW CHARACTER SET;
+----------+---------------------------------+---------------------+--------+
| Charset  | Description                     | Default collation   | Maxlen |
+----------+---------------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese        | big5_chinese_ci     |      2 |
| dec8     | DEC West European               | dec8_swedish_ci     |      1 |
| cp850    | DOS West European               | cp850_general_ci    |      1 |
| hp8      | HP West European                | hp8_english_ci      |      1 |
| koi8r    | KOI8-R Relcom Russian           | koi8r_general_ci    |      1 |
| latin1   | cp1252 West European            | latin1_swedish_ci   |      1 |
| latin2   | ISO 8859-2 Central European     | latin2_general_ci   |      1 |
| swe7     | 7bit Swedish                    | swe7_swedish_ci     |      1 |
| ascii    | US ASCII                        | ascii_general_ci    |      1 |
| ujis     | EUC-JP Japanese                 | ujis_japanese_ci    |      3 |
| sjis     | Shift-JIS Japanese              | sjis_japanese_ci    |      2 |
| hebrew   | ISO 8859-8 Hebrew               | hebrew_general_ci   |      1 |
| tis620   | TIS620 Thai                     | tis620_thai_ci      |      1 |
| euckr    | EUC-KR Korean                   | euckr_korean_ci     |      2 |
| koi8u    | KOI8-U Ukrainian                | koi8u_general_ci    |      1 |
| gb2312   | GB2312 Simplified Chinese       | gb2312_chinese_ci   |      2 |
| greek    | ISO 8859-7 Greek                | greek_general_ci    |      1 |
| cp1250   | Windows Central European        | cp1250_general_ci   |      1 |
| gbk      | GBK Simplified Chinese          | gbk_chinese_ci      |      2 |
| latin5   | ISO 8859-9 Turkish              | latin5_turkish_ci   |      1 |
| armscii8 | ARMSCII-8 Armenian              | armscii8_general_ci |      1 |
| utf8     | UTF-8 Unicode                   | utf8_general_ci     |      3 |
| ucs2     | UCS-2 Unicode                   | ucs2_general_ci     |      2 |
| cp866    | DOS Russian                     | cp866_general_ci    |      1 |
| keybcs2  | DOS Kamenicky Czech-Slovak      | keybcs2_general_ci  |      1 |
| macce    | Mac Central European            | macce_general_ci    |      1 |
| macroman | Mac West European               | macroman_general_ci |      1 |
| cp852    | DOS Central European            | cp852_general_ci    |      1 |
| latin7   | ISO 8859-13 Baltic              | latin7_general_ci   |      1 |
| utf8mb4  | UTF-8 Unicode                   | utf8mb4_general_ci  |      4 |
| cp1251   | Windows Cyrillic                | cp1251_general_ci   |      1 |
| utf16    | UTF-16 Unicode                  | utf16_general_ci    |      4 |
| utf16le  | UTF-16LE Unicode                | utf16le_general_ci  |      4 |
| cp1256   | Windows Arabic                  | cp1256_general_ci   |      1 |
| cp1257   | Windows Baltic                  | cp1257_general_ci   |      1 |
| utf32    | UTF-32 Unicode                  | utf32_general_ci    |      4 |
| binary   | Binary pseudo charset           | binary              |      1 |
| geostd8  | GEOSTD8 Georgian                | geostd8_general_ci  |      1 |
| cp932    | SJIS for Windows Japanese       | cp932_japanese_ci   |      2 |
| eucjpms  | UJIS for Windows Japanese       | eucjpms_japanese_ci |      3 |
| gb18030  | China National Standard GB18030 | gb18030_chinese_ci  |      4 |
+----------+---------------------------------+---------------------+--------+
41 rows in set (0.00 sec)

gb2312、gbk、gb18030、utf8、utf8mb4 這四個(gè)字符集都是支持中文。

  1. 關(guān)于gb2312、gbk、gb18030的介紹參考知乎這篇:三種介紹
  2. 關(guān)于utf8、utf8mb4的介紹參考這篇:utf8與utf8mb4的區(qū)別

如果該篇文章對(duì)您有一點(diǎn)點(diǎn)幫助,請(qǐng)點(diǎn)個(gè)贊??吧!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容