日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
MySQL字符集和校對(duì)規(guī)則詳解
在講解字符集和校對(duì)規(guī)則之前,我們先來簡(jiǎn)單了解一下字符、字符集和字符編碼。

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),振興企業(yè)網(wǎng)站建設(shè),振興品牌網(wǎng)站建設(shè),網(wǎng)站定制,振興網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,振興網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

字符(Character)是計(jì)算機(jī)中字母、數(shù)字、符號(hào)的統(tǒng)稱,一個(gè)字符可以是一個(gè)中文漢字、一個(gè)英文字母、一個(gè)阿拉伯?dāng)?shù)字、一個(gè)標(biāo)點(diǎn)符號(hào)等。

計(jì)算機(jī)是以二進(jìn)制的形式來存儲(chǔ)數(shù)據(jù)的。平時(shí)我們?cè)陲@示器上看到的數(shù)字、英文、標(biāo)點(diǎn)符號(hào)、漢字等字符都是二進(jìn)制數(shù)轉(zhuǎn)換之后的結(jié)果。

字符集(Character set)定義了字符和二進(jìn)制的對(duì)應(yīng)關(guān)系,為字符分配了唯一的編號(hào)。常見的字符集有 ASCII、GBK、IOS-8859-1 等。

字符編碼(Character encoding)也可以稱為字集碼,規(guī)定了如何將字符的編號(hào)存儲(chǔ)到計(jì)算機(jī)中。


校對(duì)規(guī)則(Collation)也可以稱為排序規(guī)則,是指在同一個(gè)字符集內(nèi)字符之間的比較規(guī)則。字符集和校對(duì)規(guī)則是一對(duì)多的關(guān)系,每個(gè)字符集都有一個(gè)默認(rèn)的校對(duì)規(guī)則。字符集和校對(duì)規(guī)則相輔相成,相互依賴關(guān)聯(lián)。

簡(jiǎn)單來說,字符集用來定義 MySQL 存儲(chǔ)字符串的方式,校對(duì)規(guī)則用來定義 MySQL 比較字符串的方式。

有些數(shù)據(jù)庫并沒有清晰的區(qū)分開字符集和校對(duì)規(guī)則。例如,在 SQL Server 中創(chuàng)建數(shù)據(jù)庫時(shí),選擇字符集就相當(dāng)于選定了字符集和校對(duì)規(guī)則。

而在 MySQL 中,字符集和校對(duì)規(guī)則是區(qū)分開的,必須設(shè)置字符集和校對(duì)規(guī)則。一般情況下,沒有特殊需求,只設(shè)置其一即可。只設(shè)置字符集時(shí),MySQL 會(huì)將校對(duì)規(guī)則設(shè)置為字符集中對(duì)應(yīng)的默認(rèn)校對(duì)規(guī)則。

可以通過
SHOW VARIABLES LIKE 'character%';命令查看當(dāng)前 MySQL 使用的字符集,命令和運(yùn)行結(jié)果如下:

mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+--------------------------+---------------------------------------------------------+
| character_set_client     | gbk                                                     |
| character_set_connection | gbk                                                     |
| character_set_database   | latin1                                                  |
| character_set_filesystem | binary                                                  |
| character_set_results    | gbk                                                     |
| character_set_server     | latin1                                                  |
| 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)

上述運(yùn)行結(jié)果說明如下表所示:

名稱 說明
character_set_client MySQL 客戶端使用的字符集
character_set_connection 連接數(shù)據(jù)庫時(shí)使用的字符集
character_set_database 創(chuàng)建數(shù)據(jù)庫使用的字符集
character_set_filesystem MySQL 服務(wù)器文件系統(tǒng)使用的字符集,默認(rèn)值為 binary,不做任何轉(zhuǎn)換
character_set_results 數(shù)據(jù)庫給客戶端返回?cái)?shù)據(jù)時(shí)使用的字符集
character_set_server MySQL 服務(wù)器使用的字符集,建議由系統(tǒng)自己管理,不要人為定義
character_set_system 數(shù)據(jù)庫系統(tǒng)使用的字符集,默認(rèn)值為 utf8,不需要設(shè)置
character_sets_dir 字符集的安裝目錄

可以通過
SHOW VARIABLES LIKE 'collation\_%';命令查看當(dāng)前 MySQL 使用的校對(duì)規(guī)則,命令和運(yùn)行結(jié)果如下:

mysql> SHOW VARIABLES LIKE 'collation\_%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | gbk_chinese_ci    |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set, 1 warning (0.01 sec)

對(duì)上述運(yùn)行結(jié)果說明如下:

  • collation_connection:連接數(shù)據(jù)庫時(shí)使用的校對(duì)規(guī)則
  • collation_database:創(chuàng)建數(shù)據(jù)庫時(shí)使用的校對(duì)規(guī)則
  • collation_server:MySQL 服務(wù)器使用的校對(duì)規(guī)則

校對(duì)規(guī)則命令約定如下:

  • 以校對(duì)規(guī)則所對(duì)應(yīng)的字符集名開頭
  • 以國(guó)家名居中(或以 general 居中)
  • 以 ci、cs 或 bin 結(jié)尾,ci 表示大小寫不敏感,cs 表示大小寫敏感,bin 表示按二進(jìn)制編碼值比較。

MySQL字符集的轉(zhuǎn)換過程

MySQL 中字符集的轉(zhuǎn)換過程如下:

1)在命令提示符窗口(cmd 命令行)中執(zhí)行 MySQL 命令或 sql 語句時(shí),這些命令或語句從“命令提示符窗口字符集”轉(zhuǎn)換為“character_set_client”定義的字符集。

2)使用命令提示符窗口成功連接 MySQL 服務(wù)器后,就建立了一條“數(shù)據(jù)通信鏈路”,MySQL 命令或 sql 語句沿著“數(shù)據(jù)鏈路”傳向 MySQL 服務(wù)器,由 character_set_client 定義的字符集轉(zhuǎn)換為 character_set_connection 定義的字符集。

3)MySQL 服務(wù)實(shí)例收到數(shù)據(jù)通信鏈路中的 MySQL 命令或 sql 語句后,將 MySQL 命令或 sql 語句從 character_set_connection 定義的字符集轉(zhuǎn)換為 character_set_server 定義的字符集。

4)若 MySQL 命令或 sql 語句針對(duì)于某個(gè)數(shù)據(jù)庫進(jìn)行操作,此時(shí)將 MySQL 命令或 sql 語句從 character_set_server 定義的字符集轉(zhuǎn)換為 character_set_database 定義的字符集。

5)MySQL 命令或 sql 語句執(zhí)行結(jié)束后,將執(zhí)行結(jié)果設(shè)置為 character_set_results 定義的字符集。

6)執(zhí)行結(jié)果沿著打開的數(shù)據(jù)通信鏈路原路返回,將執(zhí)行結(jié)果從 character_set_results 定義的字符集轉(zhuǎn)換為 character_set_client 定義的字符集,最終轉(zhuǎn)換為命令提示符窗口字符集,顯示到命令提示符窗口中。


當(dāng)前題目:MySQL字符集和校對(duì)規(guī)則詳解
本文網(wǎng)址:http://www.5511xx.com/article/dhipcjg.html