top
Loading...
10.3.5.字符集和校對分配示例
10.3.5. 字符集和校對分配示例

以下例子顯示了MySQL怎樣確定默認字符集和校對規則。

示例1:表和列定義

CREATE TABLE t1
(
    c1 CHAR(10) CHARACTER SET latin1 COLLATE latin1_german1_ci
) DEFAULT CHARACTER SET latin2 COLLATE latin2_bin;

在這里我們有一個列使用latin1字符集和latin1_german1_ci校對規則。是顯式的定義,因此簡單明了。需要注意的是,在一個latin2表中存儲一個latin1列不會存在問題。

示例2:表和列定義

CREATE TABLE t1
(
    c1 CHAR(10) CHARACTER SET latin1
) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;

這次我們有一個列使用latin1字符集和一個默認校對規則。盡管它顯得自然,默認校對規則卻不是表級。相反,因為latin1的默認校對規則總是latin1_swedish_ci,列c1有一個校對規則latin1_swedish_ci(而不是latin1_danish_ci)。

示例3:表和列定義

CREATE TABLE t1
(
    c1 CHAR(10)
) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;

我們有一個列使用一個默認字符集和一個默認校對規則。在這種情況下,MySQL查找表級別來確定列字符集和 校對規則。因此,列c1的字符集是latin1,它的 校對規則是latin1_danish_ci

示例4:數據庫、表和列定義

CREATE DATABASE d1
    DEFAULT CHARACTER SET latin2 COLLATE latin2_czech_ci;
USE d1;
CREATE TABLE t1
(
    c1 CHAR(10)
);

我們創建了一個沒有指定字符集和校對規則的列。我們也沒有指定表級字符集和校對規則。在這種情況下,MySQL查找數據庫級的相關設置。(數據庫的設置變為表的設置,其后變為列的設置。)因此,列c1的字符集為是latin2它的 校對規則是latin2_czech_ci

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/charset.html
北斗有巢氏 有巢氏北斗