解釋DEFAULT CHARACTER SET utf8 COLLATE utf8_general_

在建立數據庫的時候,常常用到一句: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

相關文章
相關標籤/搜索