1. 程式人生 > >CHARACTER SET utf8 COLLATE utf8_general_ci

CHARACTER SET utf8 COLLATE utf8_general_ci

DEFAULT CHARACTER SET utf8:資料庫字符集。設定資料庫的預設編碼為utf8,utf8中間不要"-";

COLLATE utf8_general_ci:資料庫校對規則。ci是case insensitive的縮寫,意思是大小寫不敏感;相對的是cs,即case sensitive,大小寫敏感;還有一種是utf8_bin,是將字串中的每一個字元用二進位制資料儲存,區分大小寫。
如果建表的時候選擇的是區別大小寫的規則而查詢的時候又暫時不想區別, 可以用類似 WHERE column_name COLLATE utf8_general_ci = 'xxx' 的寫法改變查詢使用的校對規則,新建資料 庫時一般選用utf8_general_ci就可以了。

每一個數據庫有一個數據庫字符集和一個數據庫校對規則,它不能夠為空。CREATE DATABASE 和 ALTER DATABASE語句有一個可選的子句來指定資料庫字符集和校對規則: 
CREATE DATABASE db_name 
[[DEFAULT] CHARACTER SET charset_name] 
[[DEFAULT] COLLATE collation_name]

ALTER DATABASE db_name 
[[DEFAULT] CHARACTER SET charset_name] 
[[DEFAULT] COLLATE collation_name]

如果指定了CHARACTER SET X和COLLATE Y,那麼採用字符集X和校對規則Y。 
如果指定了CHARACTER SET X而沒有指定COLLATE Y,那麼採用CHARACTER SET X和CHARACTER SET X的預設校對規則。
如果在CREATE TABLE語句中沒有指定表字符集和校對規則,則使用資料庫字符集和校對規則作為預設值。

分別修改資料庫,表,欄位編碼:
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE  utf8_general_ci 
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8 COLLATE  utf8_general_ci 
ALTER TABLE tbl_name CHANGE ’column_name’ ’column_name’ 型別 CHARACTER SET utf8 COLLATE utf8_general_ci 
把表預設的字符集和所有字元列(CHAR,VARCHAR,TEXT)改為新的字符集:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name CHARACTER SET utf8 COLLATE utf8_general_ci 

檢視資料庫編碼:
SHOW CREATE DATABASE db_name;   
查看錶編碼:
SHOW CREATE TABLE tb_name;   
檢視欄位編碼:
SHOW FULL COLUMNS FROM tb_name; 
--------------------- 

原文:https://blog.csdn.net/vanessa_li/article/details/78095638?utm_source=copy