程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MYSQL入門學習之五:MYSQL的字符集

MYSQL入門學習之五:MYSQL的字符集

編輯:MySQL綜合教程

MYSQL入門學習之五:MYSQL的字符集   相關鏈接: MYSQL入門學習之一:基本操作 http://www.BkJia.com/database/201212/173868.html MYSQL入門學習之二:使用正則表達式搜索 http://www.BkJia.com/database/201212/173869.html MYSQL入門學習之三:全文本搜索 http://www.BkJia.com/database/201212/173873.html MYSQL入門學習之四:MYSQL的數據類型 http://www.BkJia.com/database/201212/175536.html   MySQL的字符集支持(Character Set Support)有兩個方面:字符集(Character set)和排序方式(Collation)。  www.2cto.com            對於字符集的支持細化到四個層次:服務器(server),數據庫(database),數據表(table)和連接(connection)。  一、MySQL默認字符集          MySQL對於字符集的指定可以細化到一個數據庫,一張表,一列,應該用什麼字符集。          但是,傳統的程序在創建數據庫和數據表時並沒有使用那麼復雜的配置,它們用的是默認的配置,那麼,默認的配置從何而來呢?          (1)編譯MySQL 時,指定了一個默認的字符集,這個字符集是 latin1;          (2)安裝MySQL 時,可以在配置文件 (my.ini) 中指定一個默認的的字符集,如果沒指定,這個值繼承自編譯時指定的;          (3)啟動mysqld 時,可以在命令行參數中指定一個默認的的字符集,如果沒指定,這個值繼承自配置文件中的配置,此時 character_set_server 被設定為這個默認的字符集;          (4)當創建一個新的數據庫時,除非明確指定,這個數據庫的字符集被缺省設定為character_set_server;          (5)當選定了一個數據庫時,character_set_database 被設定為這個數據庫默認的字符集;          (6)在這個數據庫裡創建一張表時,表默認的字符集被設定為 character_set_database,也就是這個數據庫默認的字符集;          (7)當在表內設置一欄時,除非明確指定,否則此欄缺省的字符集就是表默認的字符集;  www.2cto.com            簡單的總結一下,如果什麼地方都不修改,那麼所有的數據庫的所有表的所有欄位的都用latin1存儲,不過我們如果安裝 MySQL,一般都會選擇多語言支持,也就是說,安裝程序會自動在配置文件中把default_character_set 設置為 UTF-8,這保證了缺省情況下,所有的數據庫的所有表的所有欄位的都用 UTF-8 存儲。  二、查看字符集  1、查看MySQL數據庫服務器和數據庫字符集          mysql> show variables like '%char%';          +--------------------------+------------------------------------------+          | Variable_name            | Value                                    |          +--------------------------+------------------------------------------+          | character_set_client     | latin1                                   |-- 客戶端字符集          | character_set_connection | latin1                                   |          | character_set_database   | latin1                                   |-- 數據庫字符集          | character_set_filesystem | binary                                   |          | character_set_results    | latin1                                   |          | character_set_server     | latin1                                   |-- 服務器字符集          | character_set_system     | utf8                                     |          | character_sets_dir       | D:\APMServ5.2.6\MySQL5.1\share\charsets\ |          +--------------------------+------------------------------------------+  2、查看MySQL數據表(table)的字符集          mysql> show table status from test like '%test%';          +---------------+--------+---------+------------+    +-------------------+          | Name          | Engine | Version | Row_format |    | Collation         |          +---------------+--------+---------+------------+    +-------------------+          | test_char     | MyISAM |      10 | Fixed      |    | hebrew_general_ci |          | test_inn      | InnoDB |      10 | Compact    |    | latin1_swedish_ci |          | test_inn2     | InnoDB |      10 | Compact    |    | utf8_general_ci   |          | test_priority | MyISAM |      10 | Dynamic    |    | latin1_swedish_ci |          | test_trans    | InnoDB |      10 | Compact    |    | latin1_swedish_ci |          | test_view     | NULL   |    NULL | NULL       |    | NULL              |          +---------------+--------+---------+------------+    +-------------------+  www.2cto.com    3、查看MySQL數據列(column)的字符集          mysql> show full columns from v9_picture;          +-------------+-----------------------+----------------+          | Field       | Type                  | Collation      |          +-------------+-----------------------+----------------+          | id          | mediumint(8) unsigned | NULL           |          | catid       | smallint(5) unsigned  | NULL           |          | typeid      | smallint(5) unsigned  | NULL           |          | title       | char(80)              | gbk_chinese_ci |          | style       | char(24)              | gbk_chinese_ci |          | thumb       | char(100)             | gbk_chinese_ci |          | keywords    | char(40)              | gbk_chinese_ci |          | description | char(255)             | gbk_chinese_ci |          | posids      | tinyint(1) unsigned   | NULL           |          | url         | char(100)             | gbk_chinese_ci |          | listorder   | tinyint(3) unsigned   | NULL           |          | status      | tinyint(2) unsigned   | NULL           |          | sysadd      | tinyint(1) unsigned   | NULL           |          | islink      | tinyint(1) unsigned   | NULL           |          | username    | char(20)              | gbk_chinese_ci |          | inputtime   | int(10) unsigned      | NULL           |          | updatetime  | int(10) unsigned      | NULL           |          +-------------+-----------------------+----------------+  三、設置及修改字符集  1、創建數據庫指定數據庫的字符集          mysql> create database mydb character set gb2312;          mysql> use mydb          mysql> show variables like 'character_set_database';          +------------------------+--------+          | Variable_name          | Value  |          +------------------------+--------+          | character_set_database | gb2312 |          +------------------------+--------+  2、修改數據庫的字符集          (1)、通過SQL修改          mysql> alter database mydb character set utf8;          mysql> show variables like 'character_set_database';          +------------------------+-------+          | Variable_name          | Value |          +------------------------+-------+          | character_set_database | utf8  |          +------------------------+-------+          (2)、通過配置文件修改          修改文件$MYSQL_HOME\data\mydb\db.opt的內容          default-character-set=utf8          default-collation=utf8_general_ci          為          default-character-set=latin1          default-collation=latin1_swedish_ci          重啟MYSQL後生效  3、通過SQL修改字符集          mysql> set character_set_client=utf8;          mysql> set character_set_connection=utf8;          mysql> set character_set_database=utf8;          mysql> set character_set_results=utf8;          mysql> set character_set_server=utf8;          mysql> set character_set_system=utf8;          mysql> set collation_connection=utf8;          mysql> set collation_database=utf8;          mysql> set collation_server=utf8;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved