最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL?中字符集詳細(xì)介紹

 更新時(shí)間:2022年08月26日 09:42:33   作者:昨天的風(fēng)???????  
這篇文章主要介紹了MySQL?中字符集詳細(xì)介紹,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

MySQL 中的 UTF8

在 MySQL 中, utf8 編碼格式有點(diǎn)特殊, 它不是我們通常用到的 utf8, 而是 utf8mb3 編碼的縮寫(xiě). 而 utf8mb4 才是我們常說(shuō)的那個(gè) utf8.

  • utf8mb3:閹割過(guò)的 utf8 字符集, 只使用 1~3 個(gè)字節(jié)表示字符.
  • utf8mb4:正宗的 utf8 字符集, 使用 1~4 個(gè)字節(jié)表示字符.

通常情況下, utf8mb3 和 utf8mb4 的使用區(qū)別不大, 但是如果有使用 4 字節(jié)編碼一個(gè)字符的情況, 比如存儲(chǔ)一些 emoji 表情, 那就必須使用 utf8mb4 編碼.

修改MySQL數(shù)據(jù)庫(kù)的編碼

當(dāng)我們 MySQL 數(shù)據(jù)庫(kù)的編碼已經(jīng)是UTF8 時(shí), 此時(shí)需要對(duì)某個(gè)表的某個(gè)字段支持插入emoji 表情,前面說(shuō)過(guò) emoji 表情需要 utf8mb4 才支持。所以此時(shí)就需要修改 MySQL 的編碼。

注意:utf8mb4 字符集要求 MySQL 數(shù)據(jù)庫(kù)版本 >=5.5.3

修改的步驟如下:

1.修改 mysql 配置文件,設(shè)置其編碼格式,添加或修改如下代碼:

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'
character-set-client-handshake = false
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4

2.修改數(shù)據(jù)庫(kù)字符集編碼

-- 設(shè)置指定數(shù)據(jù)庫(kù)的字符集編碼,xxx 為數(shù)據(jù)庫(kù)名稱
ALTER DATABASE xxx CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3.修改數(shù)據(jù)表字符集編碼

-- 設(shè)置指定數(shù)據(jù)表的字符集編碼
ALTER TABLE xxx.yyy CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

4.檢測(cè)是否修改成功

SHOW VARIABLES WHERE Variable_name LIKE 'character%' OR Variable_name LIKE 'collation%';

5.插入一個(gè)emoji表情來(lái)測(cè)試下:

UPDATE yyy SET comments = '測(cè)試表情??' WHERE id = 1;

字符集的比較規(guī)則

MySQL 有 4 個(gè)級(jí)別的字符集, 分別是: 服務(wù)器級(jí)別, 數(shù)據(jù)庫(kù)級(jí)別, 表級(jí)別, 列級(jí)別。同時(shí)對(duì)應(yīng)了4個(gè)級(jí)別的比較規(guī)則,即服務(wù)器級(jí)別, 數(shù)據(jù)庫(kù)級(jí)別, 表級(jí)別, 列級(jí)別。

每種字符集對(duì)應(yīng)若干種比較規(guī)則, 且每種字符集都有一種默認(rèn)的比較規(guī)則。

通過(guò) SHOW COLLATION 命令的結(jié)果中的 Default 列的值為 YES 的就是該字符集的默認(rèn)比較規(guī)則, 對(duì)于 utf8 字符集,默認(rèn)的比較規(guī)則就是 utf8_general_ci. ( ci 表示不區(qū)分大小寫(xiě) )

  • utf8_general_ci 表示不區(qū)分大小寫(xiě)
  • utf8_general_cs 表示區(qū)分大小寫(xiě)

上面說(shuō)到,一種字符集對(duì)應(yīng)多個(gè)比較規(guī)則,常見(jiàn)的比較規(guī)則 utf8_unicode_ci 和 utf8_general_ci 的區(qū)別:

  • 對(duì)中英文來(lái)說(shuō)沒(méi)有實(shí)質(zhì)的差別。
  • utf8_general_ci: 校對(duì)速度快,但準(zhǔn)確度稍差。
  • utf8_unicode_ci: 準(zhǔn)確度高,但校對(duì)速度稍慢。
  • 若數(shù)據(jù)庫(kù)中有德語(yǔ)、法語(yǔ)或者俄語(yǔ)需求,需使用 utf8_unicode_ci。其他情況用 utf8_general_ci 即可。

MySQL查詢時(shí)區(qū)分大小寫(xiě)

上面說(shuō)到,MySQL 默認(rèn)是不區(qū)分大小寫(xiě)的,平時(shí)也很少會(huì)考慮數(shù)據(jù)存儲(chǔ)時(shí)是否區(qū)分字符串的大小寫(xiě)。不過(guò),有時(shí)候還是會(huì)明確要求某張表的指定字段在查詢時(shí)需要區(qū)分大小寫(xiě)。

那么如何實(shí)現(xiàn)呢?

  • 方式1:在建表的時(shí)候,就設(shè)置比較規(guī)則區(qū)分大小寫(xiě)。但個(gè)人認(rèn)為最好不要這么做。一般在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí)并不能很明確的知道哪個(gè)字段需要區(qū)分,都是在開(kāi)發(fā)一段時(shí)間后,突然提出的。具有難以預(yù)料性。
  • 方式2:是在執(zhí)行查詢 SQL 時(shí)添加關(guān)鍵字 binary 可以區(qū)分大小寫(xiě)。
-- 查詢結(jié)果是相同的,不分區(qū)大小寫(xiě)
SELECT * FROM U WHERE name LIKE 'a%';
SELECT * FROM U WHERE name LIKE 'A%';

-- 查詢結(jié)果是不同的,區(qū)分大小寫(xiě)
SELECT * FROM U WHERE binary name LIKE 'a%';
SELECT * FROM U WHERE binary name LIKE 'A%';

到此這篇關(guān)于MySQL 中字符集詳細(xì)介紹的文章就介紹到這了,更多相關(guān)MySQL 字符集內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MYSQL8 通過(guò)ibd文件恢復(fù)表數(shù)據(jù)的方法

    MYSQL8 通過(guò)ibd文件恢復(fù)表數(shù)據(jù)的方法

    這篇文章主要介紹了MYSQL8 通過(guò)ibd文件恢復(fù)表數(shù)據(jù)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-01-01
  • Centos7下安裝和配置MySQL5.7.20的詳細(xì)教程

    Centos7下安裝和配置MySQL5.7.20的詳細(xì)教程

    這篇文章主要介紹了Linux(CentOS7)下安裝和配置MySQL5.7.20詳細(xì)教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià),需要的朋友可以參考下
    2020-05-05
  • 在Windows環(huán)境下使用MySQL:實(shí)現(xiàn)自動(dòng)定時(shí)備份

    在Windows環(huán)境下使用MySQL:實(shí)現(xiàn)自動(dòng)定時(shí)備份

    下面小編就為大家分享一篇在Windows環(huán)境下使用MySQL:實(shí)現(xiàn)自動(dòng)定時(shí)備份的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • mysql 循環(huán)insert方式

    mysql 循環(huán)insert方式

    這篇文章主要介紹了mysql 循環(huán)insert方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 查看mysql語(yǔ)句運(yùn)行時(shí)間的2種方法

    查看mysql語(yǔ)句運(yùn)行時(shí)間的2種方法

    網(wǎng)站運(yùn)行很慢的時(shí)候,我就特別起知道為什么這么慢,所以我查啊查,數(shù)據(jù)庫(kù)絕對(duì)是很重要的一部分,里面運(yùn)行的sql是絕對(duì)不能放過(guò)的。平時(shí)做項(xiàng)目的時(shí)候,我也會(huì)注意sql語(yǔ)句的書(shū)寫(xiě),寫(xiě)出一些高效的sql來(lái),所以我會(huì)經(jīng)常測(cè)試自己寫(xiě)的sql語(yǔ)句。我把我知道的二個(gè)方法,總結(jié)一下發(fā)出來(lái)
    2014-01-01
  • MySQL使用索引合并(Index?Merge)提高查詢效率

    MySQL使用索引合并(Index?Merge)提高查詢效率

    本文介紹了索引合并(Index?Merge)的實(shí)現(xiàn)原理、場(chǎng)景約束與通過(guò)案例驗(yàn)證的優(yōu)缺點(diǎn),在實(shí)際使用中,當(dāng)查詢條件列較多且無(wú)法使用聯(lián)合索引時(shí),就可以考慮使用索引合并,利用多個(gè)索引加速查詢,但要注意,索引合并并非在任何場(chǎng)景下均具有較好的效果,需要結(jié)合具體情況選擇
    2024-07-07
  • MySQL筆記之基本查詢的應(yīng)用詳解

    MySQL筆記之基本查詢的應(yīng)用詳解

    本篇文章介紹了,在mysql中基本查詢的應(yīng)用詳解。需要的朋友參考下
    2013-05-05
  • 關(guān)于SQL的cast()函數(shù)解析

    關(guān)于SQL的cast()函數(shù)解析

    這篇文章主要介紹了關(guān)于SQL的cast()函數(shù)解析,CAST函數(shù)用于將某種數(shù)據(jù)類型的表達(dá)式顯式轉(zhuǎn)換為另一種數(shù)據(jù)類型。CAST()函數(shù)的參數(shù)是一個(gè)表達(dá)式,它包括用AS關(guān)鍵字分隔的源值和目標(biāo)數(shù)據(jù)類型,需要的朋友可以參考下
    2023-04-04
  • MySQL query_cache_type 參數(shù)與使用詳解

    MySQL query_cache_type 參數(shù)與使用詳解

    這篇文章主要介紹了MySQL query_cache_type參數(shù)介紹,需要的朋友可以參考下
    2021-07-07
  • 解析mysqldump的delay-insert選項(xiàng)

    解析mysqldump的delay-insert選項(xiàng)

    本篇文章是對(duì)mysqldump的delay-insert選項(xiàng)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06

最新評(píng)論

司法| 南木林县| 琼中| 石泉县| 上饶市| 茂名市| 米易县| 宁明县| 乡宁县| 仪陇县| 仁怀市| 兴安盟| 施秉县| 岳普湖县| 日土县| 新津县| 丰镇市| 南陵县| 清徐县| 绵竹市| 鄂托克前旗| 普宁市| 武义县| 邢台市| 工布江达县| 伊川县| 高尔夫| 嘉祥县| 通渭县| 阜南县| 盐池县| 台南县| 谷城县| 南川市| 盘山县| 青州市| 乃东县| 苗栗市| 藁城市| 德惠市| 万山特区|