MySQL修改表、字段、庫的字符集及字符集說明


修改數據庫字符集:

ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];
把表默認的字符集和所有字符列(CHAR,VARCHAR,TEXT)改為新的字符集:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]
如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

只是修改表的默認字符集:

ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];
如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

修改字段的字符集:

ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];
如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

查看數據庫編碼:

SHOW CREATE DATABASE db_name;

查看表編碼:

SHOW CREATE TABLE tbl_name;

查看字段編碼:

SHOW FULL COLUMNS FROM tbl_name;

查看系統的編碼字符

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

MySQL字符集設置

系統變量:

– character_set_server:默認的內部操作字符集

– character_set_client:客戶端來源數據使用的字符集

– character_set_connection:連接層字符集

– character_set_results:查詢結果字符集

– character_set_database:當前選中數據庫的默認字符集

– character_set_system:系統元數據(字段名等)字符集

– 還有以collation_開頭的同上面對應的變量,用來描述字符序。

用introducer指定文本字符串的字符集:

– 格式為:[_charset] ‘string’ [COLLATE collation]

– 例如:

• SELECT _latin1 ‘string’;

• SELECT _utf8 ‘你好’ COLLATE utf8_general_ci;

– 由introducer修飾的文本字符串在請求過程中不經過多余的轉碼,直接轉換為內部字符集處理。

MySQL中的字符集轉換過程

  1. MySQL Server收到請求時將請求數據從character_set_client轉換為character_set_connection;
  2. 進行內部操作前將請求數據從character_set_connection轉換為內部操作字符集,其確定方法如下:

• 使用每個數據字段的CHARACTER SET設定值;

• 若上述值不存在,則使用對應數據表的DEFAULT CHARACTER SET設定值(MySQL擴展,非SQL標准);

• 若上述值不存在,則使用對應數據庫的DEFAULT CHARACTER SET設定值;

• 若上述值不存在,則使用character_set_server設定值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM