MySQL開發規範 字符集介紹

2022-09-18 06:39:23 字數 2450 閱讀 3843

是乙個系統支援的所有抽象字元的集合。字元是各種文字和符號的總稱,包括各國家文字、標點符號、圖形符號、數字等。

mysql資料庫的字符集:

mysql中常見的字符集:

常見校對規則:

對於字符集和字元序補充:

什麼是字符集、字元序?簡單的來說:

字符集(character set):定義了字元以及字元的編碼。

字元序(collation):定義了字元的比較規則。

舉個例子:

有四個字元:a、b、a、b,這四個字元的編碼分別是a = 0, b = 1, a = 2, b = 3。這裡的字元 + 編碼就構成了字符集(character set)。

如果我們想比較兩個字元的大小呢?比如a、b,或者a、b,最直觀的比較方式是採用它們的編碼,比如因為0 < 1,所以 a < b。

另外,對於a、a,雖然它們編碼不同,但我們覺得大小寫字元應該是相等的,也就是說 a == a。

這上面定義了兩條比較規則,這些比較規則的集合就是collation。

同樣是大寫字元、小寫字元,則比較他們的編碼大小;

如果兩個字元為大小寫關係,則它們相等。

我們可以使用以下命令檢視:

– show charset;

– show collation;

檢視當前資料庫支援的字符集,以及其對應的預設校對規則和儲存最大字元長度

檢視utf8支援的校對規則

伺服器端字符集:控制的是,存到mysql中時,字符集控制

客戶端字符集: 控制的是使用者的輸入及顯示

系統字符集: 控制的是系統相關的顯示,和一些依賴於作業系統的應用

在生產中我們必須保證作業系統、mysql客戶端例項、mysql伺服器端的字符集保持一致

1. 作業系統字符集設定

source /etc/sysconfig/i18n

[root@db02 logs]# echo $lang

zh_cn.utf-8

2. mysql例項級別

方法1: 在編譯安裝時候就指定如下伺服器端字符集

cmake .

-ddefault_charset=utf8 \

-ddefault_collation=utf8_general_ci \

-dwith_extra_charsets=all \

方法2: 在配置檔案中設定

[mysqld]

character-set-server=utf8

3. mysql例項客戶端級別

第一種方式:

臨時生效單條命令法

mysql> set names utf8;

query ok, 0 rows affected (0.00 sec)

第二種方式:

通過修改my.cnf實現修改mysql客戶端的字符集,配置方法如下。

[client]

default-character-set=utf8

注意:如果我們在建立資料庫或者表時指定好字符集之後,那麼這個資料庫或者表就以建立時指定的字符集為準,將忽略配置檔案中的字符集。

建立資料庫

create database `oldboy` /*!40100 default character set utf8 */ 

create database oldboy default character set utf8 default collate = utf8_general_ci;

建立表

create table `test` (

`id` int(4) not null auto_increment,

`name` char(20) not null,

primary key (`id`)

) engine=innodb auto_increment=13 default charset=utf8

獲取幫助並查詢

help create database;

show character set;

如果都沒有做,我們想要在生產環境中更改資料庫的字符集?

alter database oldboy character set utf8 collate utf8_general_ci;

alter table t1 character set latin1;

注意:更改字符集時,一定要保證由小往大改,後者必須是前者的嚴格超集。生產中別隨便改。一定要反覆確認。

mysql字符集介紹 MySQL字符集介紹及配置

toc 1.mysql編碼集 檢視mysql支援的字符集 mysql show character set 檢視mysql當前的字符集 mysql show variables like character variable name value character set client utf8 ...

mysql 集群字符集 Mysql 字符集

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

mysql字符集 MySQL字符集選擇

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