mysql 字符集含義 mysql字符集總結

2021-10-19 16:40:40 字數 3090 閱讀 2677

檢視相關字符集的命令

檢視資料庫支援的所有字符集(兩種命令一樣):

show character set;

show char set;

檢視字符集對應的collate

show collation;

檢視系統字符集設定,包括所有的字符集設定:

show variables like '%char%';

mysql> show variables like '%char%';

| variable_name | value |

| character_set_client | utf8 |

| character_set_connection | utf8 |

| character_set_database | latin1 |

| character_set_filesystem | binary |

| character_set_results | utf8 |

| character_set_server | utf8 |

| character_set_system | utf8 |

| character_sets_dir | c:\program files\mysql\mysql server 5.7\share\charsets\ |

8 rows in set, 1 warning (0.01 sec)

其中的含義如下:

client:為客戶端使用的字符集

connection:為連線資料庫的字符集設定型別,如果成行沒有指明連線資料庫使用的字

符集型別則按照伺服器端預設的字符集設定。

database: 為資料庫伺服器中表和字段預設使用的字符集設定,

如果表和字段沒有設定字符集,預設使用此字符集。

results: 為資料庫給客戶端返回時使用的字符集設定,如果沒有指明,使用伺服器預設的字符集。

server:為伺服器安裝時指定的預設字符集設定。 建立資料庫時的預設字符集

system:為資料庫系統使用的字符集設定

character_set_connection、character_set_client、

character_set_results

三個字符集什麼時候用到。從實際上可以看到,當客戶端連線伺服器的時候,

它會將自己想要的字符集名稱發給mysql伺服器,然後伺服器就會使用這個字符集去設定

character_set_connection、character_set_client、

character_set_results這三個值。

檢視表中的字段設定的字符集:

show full columns from t_class;

檢視表設定的字符集

show create table t_class\g;

檢視資料庫設定的字符集

show create database cms;

建立時指定字符集

伺服器級:

在安裝mysql時可以設定伺服器的預設編碼格式,也可對my.ini做修改,

修改[mysqld]裡面的character_set_server=utf8,

則可設定character_set_server的值。

資料庫級:

create database db_name default character set utf8;

如果不指定預設的字符集,則系統會根據character_set_server的值進行設定

表級:create table db_name.tb_name (id varchar(20) not null,name varchar(20) ) engine=innodb default charset=utf8;

如果不指定預設的字符集,則系統會根據database的值進行設定

列級:create table db_name.tb_name ( id varchar(20) not null, name varchar(20) character set utf8 );

如果不指定預設的字符集,則系統會根據database的值進行設定

修改字符集命令

修改character_set_connection、character_set_client、

character_set_results三值:

語法:set names 'charset_name' [collate 'collation_name']

set names utf8等同於下面三個:

set character_set_client = utf8;

set character_set_results = utf8;

set character_set_connection = utf8;

修改資料庫字符集

alter database 資料庫名 character set utf8;

修改表的字符集

alter table 表名 default character set utf8 collate utf8_general_ci;

alter table 表名 default character set gbk collate gbk_chinese_ci;

修改列的字符集

alter table t1 change name name varchar(100) character set utf8 collate utf8_general_ci;

alter table t1 change name name varchar(100) character set gbk collate gbk_chinese_ci;

設定 my.ini中的字符集

[mysqld]

character-set-server = utf8

這個引數 控制character-set-server和character_set_database的值

控制資料庫,表,字段預設的字符集

set names utf8

控制當前session的character_set_connection、character_set_client、

character_set_results的字符集

控制客戶端檢視資料庫時的亂碼問題

mysql 集群字符集 Mysql 字符集

字符集與字元比較 字符集字符集是某種字元的集合,比如最常見的ascii碼,由127個字元組成,只需要乙個位元組就能表示 我們常說的字符集還是gbk iso utf8 mysql 我們使用得最多的字符集就是gbk 和 utf8了 他們都是變長字符集,如果字元在ascii範圍內就使用乙個位元組表示,其他...

mysql字符集 MySQL字符集選擇

一 怎樣選擇合適的字符集 對mysql資料庫來說,字符集很重要,因為資料庫儲存的資料大部分都是各種文字,字符集對資料庫的儲存,處理效能都會有所影響。主要考慮一下幾方面的因素 1.滿足應用支援語言的需求,應用處理各種各樣的文字,發布到使用不同語言的國家或地區,可以選擇unicode字符集,mysql的...

mysql字符集修改 MySql字符集修改

問題分析 普通的字串或者表情都是佔位3個位元組,所以utf8足夠用了,但是移動端的表情符號佔位是4個位元組,普通的utf8就不夠用了,為了應對無線網際網路的機遇和挑戰 避免 emoji 表情符號帶來的問題 涉及無線相關的 mysql 資料庫建議都提前採用 utf8mb4 字符集,這必須要作為移動網際...