• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • mysql字符集與校驗規則的設置

    發表于:2013-12-16來源:IT博客大學習作者:小霸王點擊數: 標簽:MySQL
    默認情況下,我們可以在4個級別分別設定mysql的字符集和校驗規則,分別是server、database、table和column。實際上,我們甚至還可以單獨對一串字符串設定其字符集和校驗規則。下面就分別來對四個級別的設定說明一下:

      默認情況下,我們可以在4個級別分別設定mysql的字符集和校驗規則,分別是server、database、table和column。實際上,我們甚至還可以單獨對一串字符串設定其字符集和校驗規則。下面就分別來對四個級別的設定說明一下:

      server:

      在啟動mysql服務的時候,可以指定mysql server的字符集和校驗規則,通過如下方式:

      mysqld --character-set-server=latin1 --collation-server=latin1_swedish_ci

      如果不親自指定它們,那么mysql就會使用默認值。一般是latin1和latin1_swedish_ci。當然這個默認值是可以修改的,但是方法只有一種,那就是重編譯源代碼。采用如下方式:

      ./configure --with-charset=gbk --with-collation=gbk_bin

      如何查詢當前的server的字符集和校驗規則的值,可以查看系統參數character_set_server和collation_server:

      mysql> show variables like \'character_set_server%\';

      +----------------------+--------+

      | Variable_name | Value |

      +----------------------+--------+

      | character_set_server | latin1 |

      +----------------------+--------+

      1 row in set (0.00 sec)

      mysql> show variables like \'collation_server%\';

      +------------------+-------------------+

      | Variable_name | Value |

      +------------------+-------------------+

      | collation_server | latin1_swedish_ci |

      +------------------+-------------------+

      1 row in set (0.00 sec)

      server的字符集和校驗規則的唯一作用就是,當database的字符集和校驗規則沒有指定的時候,就默認使用server的對應值。

      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_database\'和\'collation_database\',如下:

      mysql> show variables like \'character_set_database\';

      +------------------------+-------+

      | Variable_name | Value |

      +------------------------+-------+

      | character_set_database | gbk |

      +------------------------+-------+

      1 row in set (0.00 sec)

      mysql> show variables like \'collation_database\';

      +--------------------+---------+

      | Variable_name | Value |

      +--------------------+---------+

      | collation_database | gbk_bin |

      +--------------------+---------+

      1 row in set (0.00 sec)

      數據庫的字符集和校驗規則的作用有二,其一是當沒有在表級別知道它們,那么默認就使用數據庫基本的值;其二是在“load data infile”時也起到了作用。

      table:

      在創建表或者修改表結構的時候,我們可以通過如下方式指定這個表的字符集和校驗規則:

      CREATE TABLE tbl_name (column_list)

      [[DEFAULT] CHARACTER SET charset_name] [COLLATE collation_name]]

      ALTER TABLE tbl_name

      [[DEFAULT] CHARACTER SET charset_name] [COLLATE collation_name]

      column:

      具體的表的具體的某個字段,我們也可以指定其字符集和校驗規則,如下:

      col_name {CHAR | VARCHAR | TEXT} (col_length)

      [CHARACTER SET charset_name] [COLLATE collation_name]

      那么,這四個級別的字符集和校驗規則的指定(級別高低server>database>table>column),mysql最終以何種形式來存儲和顯示字符串的呢?

      1、本級別中,如果同時指定character set和collate,那么就使用指定的值;

      2、本級別中,只指定character set而沒有指定collate,那么就使用指定的character set值和其對應的默認的collation值;

      3、本級別中,只指定collate而沒有指定character set,那么就使用指定的collation值和其所對應的character set值;

      4、本級別中,都沒有指定這2個值,那么默認就使用上一級別的對應的值。

      國家字符集:

      mysql中國家字符集的概念,其表示使用預先定義的字符集,在mysql5.1中使用utf8作為其預先的定義的字符集。

      因此,下面幾種類型的定義,其實是等效的:

      CHAR(10) CHARACTER SET utf8

      NATIONAL CHARACTER(10)

      NCHAR(10)

      下面幾種類型也是等效的:

      VARCHAR(10) CHARACTER SET utf8

      NATIONAL VARCHAR(10)

      NCHAR VARCHAR(10)

      NATIONAL CHARACTER VARYING(10)

      NATIONAL CHAR VARYING(10)

      字符串的字符集和校驗規則的設置問題,請稍等!

    原文轉自:http://blogread.cn/it/article/96

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>