在創建數據庫的時候,經常用到一句:CREATE DATABASE tpcms
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci。具體意思不太明白,今查閱一番,總結如下:
CREATE DATABASE tpcms
:創建數據庫tpcms。在命令行里創建的時候,`要用鍵盤Esc下的那個,而不是單引號,否則出錯;
DEFAULT CHARACTER SET utf8:數據庫字符集。設置數據庫的默認編碼為utf8,這里utf8中間不要"-";
COLLATE utf8_general_ci:數據庫校對規則。
該三部分分別為數據庫字符集、解釋不明白、區分大小寫。
數據庫的校驗規則,ci是case insensitive的縮寫,意思是大小寫不敏感;相對的是cs,即case sensitive,大小寫敏感;
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;
作者:Vanessa_Li
來源:CSDN
原文:https://blog.csdn.net/vanessa_li/article/details/78095638
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
數據庫字符集和校對
每一個數據庫有一個數據庫字符集和一個數據庫校對規則,它不能夠為空。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]
例如:
CREATE DATABASE db_name
DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
MySQL這樣選擇數據庫字符集和數據庫校對規則:
·如果指定了CHARACTER SET X和COLLATE Y,那么采用字符集X和校對規則Y。
·如果指定了CHARACTER SET X而沒有指定COLLATE Y,那么采用CHARACTER SET X和CHARACTER SET X的默認校對規則。
·否則,采用服務器字符集和服務器校對規則。
如果在CREATE TABLE語句中沒有指定表字符集和校對規則,則使用數據庫字符集和校對規則作為默認值。