1. 程式人生 > >MySQL字符集與校對

MySQL字符集與校對

修改列 mysql 根據 一個 實現 src 修改表 http name

一、什麽是字符集與校對

1.字符集與校對

字符集是指一種從二進制編碼到某種字符符號的映射。

校隊是指一組用於某個字符集的配許規則。

2.utf8與utf8mb4

標準的UTF-8字符集編碼是可以使用1-4個字節去編碼21位字符,這幾乎包含了世界上所有能看見的語言。
MySQL裏面實現的utf8最長使用3個字符,包含了大多數字符但並不是所有。例如emoji和一些不常用的漢字,如“墅”,這些需要四個字節才能編碼的就不支持。

MySQL在5.5.3之後增加了這個utf8mb4的編碼,mb4就是most bytes 4的意思,專門用來兼容四字節的unicode。好在utf8mb4是utf8的超集,除了將編碼改為utf8mb4外不需要做其他轉換。建議選用utf8mb4的編碼。

二、如何設置字符集與校隊

數據庫默認字符集設置:character_set_server

表的字符集設置:將根據數據庫的字符集設置來指定這個表的字符集

列的字符集設置:將根據表的設置來指定列的字符集設置

註意:真正存放數據的是列,所以更高“階梯”的設置只是制定默認值。一個表的默認字符集設置,無法影響存儲在這個表中某個列的值。只有當創建列,而沒為列有指定字符集的時候,表的默認字符集才會在列上生效。

1.查看、修改數據庫字符集與校對

1)查看

SHOW VARIABLES WHERE Variable_name LIKE ‘character\_set\_%‘ OR Variable_name LIKE ‘collation%‘;

技術分享圖片

2)修改

在配置文件中修改

character_set_server = utf8mb4

collation_server = utf8mb4_unicode_ci

2.查看、修改指定數據庫的字符集與校對

1)查看

SHOW CREATE DATABASE dbname;

技術分享圖片

2)修改

ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];

3.查看、修改表的字符集與校對

1)查看

SHOW CREATE TABLE tbl_name;

技術分享圖片

2)修改

修改表的字符集與校隊

ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];

修改表與列的字符集與校對

ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...] ;

4.查看、修改列的字符集與校對

1)查看

SHOW FULL COLUMNS FROM tbl_name;

技術分享圖片

2)修改

ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];

MySQL字符集與校對