国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySQL數(shù)據(jù)庫——MySQL字符集和校對規(guī)則詳解

這篇具有很好參考價值的文章主要介紹了MySQL數(shù)據(jù)庫——MySQL字符集和校對規(guī)則詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

在講解字符集和校對規(guī)則之前,我們先來簡單了解一下字符、字符集和字符編碼。

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

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

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

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

大部分字符集都只對應(yīng)一種字符編碼,例如:ASCII、IOS-8859-1、GB2312、GBK,都是既表示了字符集又表示了對應(yīng)的字符編碼。所以一般情況下,可以將兩者視為同義詞。Unicode 字符集除外,Unicode 有三種編碼方案,即 UTF-8、UTF-16 和 UTF-32。最為常用的是 UTF-8 編碼。

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

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

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

而在 MySQL 中,字符集和校對規(guī)則是區(qū)分開的,必須設(shè)置字符集和校對規(guī)則。一般情況下,沒有特殊需求,只設(shè)置其一即可。只設(shè)置字符集時,MySQL 會將校對規(guī)則設(shè)置為字符集中對應(yīng)的默認(rèn)校對規(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ù)庫時使用的字符集
character_set_database 創(chuàng)建數(shù)據(jù)庫使用的字符集
character_set_filesystem MySQL 服務(wù)器文件系統(tǒng)使用的字符集,默認(rèn)值為 binary,不做任何轉(zhuǎn)換
character_set_results 數(shù)據(jù)庫給客戶端返回數(shù)據(jù)時使用的字符集
character_set_server MySQL 服務(wù)器使用的字符集,建議由系統(tǒng)自己管理,不要人為定義
character_set_system 數(shù)據(jù)庫系統(tǒng)使用的字符集,默認(rèn)值為 utf8,不需要設(shè)置
character_sets_dir 字符集的安裝目錄

亂碼時,不需要關(guān)心 character_set_filesystem、character_set_system 和 character_sets_dir 這 3 個系統(tǒng)變量,它們不會影響亂碼?。

可以通過SHOW VARIABLES LIKE 'collation\_%';命令查看當(dāng)前 MySQL 使用的校對規(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)

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

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

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

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

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

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

1)在命令提示符窗口(cmd 命令行)中執(zhí)行 MySQL 命令或 sql 語句時,這些命令或語句從“命令提示符窗口字符集”轉(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 語句針對于某個數(shù)據(jù)庫進(jìn)行操作,此時將 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)換為命令提示符窗口字符集,顯示到命令提示符窗口中。

MySQL數(shù)據(jù)庫——MySQL字符集和校對規(guī)則詳解

?黑馬程序員 MySQL數(shù)據(jù)庫入門到精通,從mysql安裝到mysql高級、mysql優(yōu)化全囊括文章來源地址http://www.zghlxwxcb.cn/news/detail-448045.html

到了這里,關(guān)于MySQL數(shù)據(jù)庫——MySQL字符集和校對規(guī)則詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 達(dá)夢數(shù)據(jù)庫如何查看字符集

    ?0 表示 GB18030,1 表示 UTF-8,2 表示 EUC-KR select SF_GET_UNICODE_FLAG(); select ?UNICODE (); 字符集在安裝初始化庫的時候指定,設(shè)定后不可更改,請在安裝時按照需求設(shè)置好 后期如果想修改就只能重新初始庫! 注意中文字符的長度問題:數(shù)據(jù)庫初始化參數(shù)? LENGTH_IN_CHAR=0 ?時,unicode 編

    2023年04月09日
    瀏覽(24)
  • Oracle數(shù)據(jù)庫字符集概述及修改方式

    Oracle數(shù)據(jù)庫字符集概述及修改方式

    Oracle語言環(huán)境的描述包括三部分:language、territory、characterset(語言、地域、字符集) language:主要指定服務(wù)器消息的語言,提示信息顯示中文還是英文 territory:主要指定服務(wù)器的數(shù)字和日期的格式 characterset:是指字符集,一般國內(nèi)數(shù)據(jù)庫實(shí)際使用的字符集主要是ZHS16GBK、AL32

    2024年02月11日
    瀏覽(19)
  • 達(dá)夢數(shù)據(jù)庫支持GB18030-2022中文編碼字符集證明方法

    達(dá)夢數(shù)據(jù)庫支持GB18030-2022中文編碼字符集證明方法

    既然是證明就要做到有圖有真相。 證明途徑1:系統(tǒng)概覽法 查看達(dá)夢數(shù)據(jù)庫“管理工具”-“對象導(dǎo)航”-“管理服務(wù)器”-“系統(tǒng)概覽”-“字符集編碼”-”GB18030”. 看見”GB18030”字樣就是證據(jù)之一。如果你沒有看見這個字樣,而是UTF8等其他字樣,請重新安裝產(chǎn)品吧,安裝向?qū)?/p>

    2023年04月18日
    瀏覽(23)
  • GBASE南大通用數(shù)據(jù)庫GBase 8s常見問題講堂 -- 字符集的設(shè)置

    本文摘自GBASE南大通用社區(qū),by:wty,原文請點(diǎn)擊:GBase 8s常見問題 -- 字符集相關(guān)問題|GBASE社區(qū)|天津南大通用數(shù)據(jù)技術(shù)股份有限公司|GBASE-致力于成為用戶最信賴的數(shù)據(jù)庫產(chǎn)品供應(yīng)商 23103 ? Code-set conversion function failed due to an illegal sequence or invalid value. 字符集轉(zhuǎn)換失敗,字符串中

    2024年01月24日
    瀏覽(22)
  • 如何配置達(dá)夢數(shù)據(jù)庫使其支持GB18030-2022中文編碼字符集

    如何配置達(dá)夢數(shù)據(jù)庫使其支持GB18030-2022中文編碼字符集

    達(dá)夢版本要求,要求使用2023年4月及之后的達(dá)夢月度版版本,補(bǔ)丁版、臨時版等不可以。 正確安裝windows操作系統(tǒng),windows10以下的版本未做過測試,可能系統(tǒng)不支持導(dǎo)致各種顯示錯誤,建議用windows10及以上版本,本人親測過window10和windows11支持. 安裝一個字體覆蓋全的字庫,w

    2024年02月09日
    瀏覽(35)
  • 【MySQL】——數(shù)據(jù)類型及字符集

    【MySQL】——數(shù)據(jù)類型及字符集

    ??個人專欄: ?? 算法設(shè)計與分析:算法設(shè)計與分析_IT閆的博客-CSDN博客 ??Java基礎(chǔ):Java基礎(chǔ)_IT閆的博客-CSDN博客 ??c語言:c語言_IT閆的博客-CSDN博客 ??MySQL:數(shù)據(jù)結(jié)構(gòu)_IT閆的博客-CSDN博客 ??數(shù)據(jù)結(jié)構(gòu):??????數(shù)據(jù)結(jié)構(gòu)_IT閆的博客-CSDN博客 ??C++:C++_IT閆的博客-CSDN博

    2024年02月03日
    瀏覽(25)
  • MySQL 字符集概念與原理及如何配置字符集 - 超詳細(xì)圖文詳解

    MySQL 字符集概念與原理及如何配置字符集 - 超詳細(xì)圖文詳解

    目錄 一、字符集概念 1、字符(Character) 2、字符編碼 3、字符集(Character set) 二、字符集原理 1、ASCII字符集 2、GB2312 3、GBK 4、GB18030 5、BIG5 6、Unicode 編碼 三、字符序 四、MySQL字符集 字符序 1、mysql 字符集 2、mysql 字符序 3、字符集與字符序的關(guān)系 五、MySQL 數(shù)據(jù)存儲字符集

    2024年02月04日
    瀏覽(25)
  • (三) MySQL字符集

    (三) MySQL字符集

    MySQL字符集包括 基字符集 (CHARACTER)與 校對規(guī)則 (COLLATION)這兩個概念: latin1支持西歐字符、希臘字符等 gbk支持中文簡體字符 big5支持中文繁體字符 utf8幾乎支持世界所有國家的字符 utf8mb4是真正意義上的utf-8 查看當(dāng)前數(shù)據(jù)庫默認(rèn)的字符集: SHOW VARIABLES like \\\'character%\\\'; MySQL在

    2024年01月24日
    瀏覽(21)
  • MySQL——命令行客戶端的字符集問題

    MySQL——命令行客戶端的字符集問題

    ? 原因:服務(wù)器端認(rèn)為你的客戶端的字符集是 utf-8 ,而實(shí)際上你的客戶端的字符集是 GBK 。 ? ? 查看所有字符集: SHOW VARIABLES LIKE \\\'character_set_%\\\'; ? 解決方案,設(shè)置當(dāng)前連接的客戶端字符集 “SET NAMES GBK;”

    2024年02月09日
    瀏覽(23)
  • 第3章 【MySQL】字符集和比較規(guī)則

    第3章 【MySQL】字符集和比較規(guī)則

    如何存儲字符串?需要建立字符與二進(jìn)制數(shù)據(jù)的映射關(guān)系。建立這個關(guān)系需要: 1.把哪些字符映射成二進(jìn)制數(shù)據(jù)? 2.怎么映射? 將一個字符映射成一個二進(jìn)制數(shù)據(jù)的過程也叫做 編碼 ,將一個二進(jìn)制數(shù)據(jù)映射到一個字符的過程叫做 解碼 。 人們抽象出一個 字符集 的概念來描

    2024年02月09日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包