在建立數據庫的時候,常常用到一句:sql
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: 數據庫校對規則。該三部分分別爲數據庫字符集、通用、區分大小寫。
utf8_unicode_ci比較準確,utf8_general_ci速度比較快。一般狀況下 utf8_general_ci的準確性就夠咱們用的了,在我看過不少程序源碼後,發現它們大多數也用的是utf8_general_ci,因此新建數據 庫時通常選用utf8_general_ci就能夠了。數據庫
好比:服務器
CREATE DATABASE `articles` DEFAULT CHARACTER SET utf8 COLLATE 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]
例如:
命令行
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語句中沒有指定表字符集和校對規則,則使用數據庫字符集和校對規則做爲默認值。
code