成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

MySql(二)——字符集和比較規(guī)則

寵來(lái)也 / 2157人閱讀

摘要:二字符集和比較規(guī)則一些重要的字符集共收錄個(gè)字符,包括空格標(biāo)點(diǎn)符號(hào)數(shù)字大小寫字母和一些不可見字符。這個(gè)字符集也有一個(gè)別名收錄漢字個(gè),其他文字符號(hào)個(gè)。

MySql(二)——字符集和比較規(guī)則 一些重要的字符集

ASCII

共收錄128個(gè)字符,包括空格、標(biāo)點(diǎn)符號(hào)、數(shù)字、大小寫字母和一些不可見字符。由于總共才128個(gè)字符,所以可以使用1個(gè)字節(jié)來(lái)進(jìn)行編碼

ISO 8859-1

共收錄256個(gè)字符,是在ASCII字符集的基礎(chǔ)上又?jǐn)U充了128個(gè)西歐常用字符(包括德法兩國(guó)的字母),也可以使用1個(gè)字節(jié)來(lái)進(jìn)行編碼。這個(gè)字符集也有一個(gè)別名latin1

GB2312

收錄漢字6763個(gè),其他文字符號(hào)682個(gè)。同時(shí)這種字符集又兼容ASCII字符集

如果該字符在ASCII字符集中,則采用1字節(jié)編碼,否則采用2字節(jié)編碼

這種表示一個(gè)字符需要的字節(jié)數(shù)可能不同的編碼方式稱為:變長(zhǎng)編碼方式

GBK

在收錄字符范圍上對(duì)GB2312字符集作了擴(kuò)充,編碼方式上兼容GB2312

utf8

收錄地球上能想到的所有字符,而且還在不斷擴(kuò)充。這種字符集兼容ASCII字符集,采用變長(zhǎng)編碼方式,編碼一個(gè)字符需要使用1~4個(gè)字節(jié)

utf8只是Unicode字符集的一種編碼方案,Unicode字符集可以采用utf8utf16、utf32這幾種編碼方案,utf8使用1~4個(gè)字節(jié)編碼一個(gè)字符,utf16使用2個(gè)或4個(gè)字節(jié)編碼一個(gè)字符,utf32使用4個(gè)字節(jié)編碼一個(gè)字符。
MySQL中支持的字符集和排序規(guī)則

MySQL中的utf8和utf8mb4

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

utf8mb4:正宗的utf8字符集,使用1~4個(gè)字節(jié)表示字符

在MySQL中utf8utf8mb3的別名

字符集的查看
SHOW (CHARACTER SET|CHARSET) [LIKE 匹配的模式]

比較規(guī)則的查看
SHOW COLLATION [LIKE 匹配的模式]

后綴 英文釋義 描述
_ai accent insensitive 不區(qū)分重音
_as accent sensitive 區(qū)分重音
_ci case insensitive 不區(qū)分大小寫
_cs case sensitive 區(qū)分大小寫
_bin binary 以二進(jìn)制方式比較
字符集和比較規(guī)則的應(yīng)用

1. MySQL有4個(gè)級(jí)別的字符集和比較規(guī)則

服務(wù)器級(jí)別

數(shù)據(jù)庫(kù)級(jí)別

表級(jí)別

列級(jí)別

2. 服務(wù)器級(jí)別

服務(wù)器級(jí)別的字符集:SHOW VARIABLES LIKE "character_set_server"

服務(wù)器級(jí)別的比較規(guī)則:SHOW VARIABLES LIKE "collation_server"

寫入配置文件:

[server]
character_set_server=utf8
collation_server=utf8_general_ci

3. 數(shù)據(jù)庫(kù)級(jí)別

當(dāng)前數(shù)據(jù)庫(kù)的字符集:SHOW VARIABLES LIKE "character_set_database"

當(dāng)前數(shù)據(jù)庫(kù)的比較規(guī)則:SHOW VARIABLES LIKE "collation_database"

創(chuàng)建和修改數(shù)據(jù)庫(kù)的時(shí)候數(shù)據(jù)庫(kù)的字符集和比較規(guī)則

CREATE DATABASE 數(shù)據(jù)庫(kù)名
    [[DEFAULT] CHARACTER SET 字符集名稱]
    [[DEFAULT] COLLATE 比較規(guī)則名稱];

ALTER DATABASE 數(shù)據(jù)庫(kù)名
    [[DEFAULT] CHARACTER SET 字符集名稱]
    [[DEFAULT] COLLATE 比較規(guī)則名稱];
創(chuàng)建數(shù)據(jù)庫(kù)不指定字符集和比較規(guī)則,則默認(rèn)使用服務(wù)器級(jí)別的字符集和比較規(guī)則

4. 表級(jí)別

CREATE TABLE 表名 (列的信息)
    [[DEFAULT] CHARACTER SET 字符集名稱]
    [COLLATE 比較規(guī)則名稱]]

ALTER TABLE 表名
    [[DEFAULT] CHARACTER SET 字符集名稱]
    [COLLATE 比較規(guī)則名稱]
如果創(chuàng)建和修改表的語(yǔ)句中沒有指明字符集和比較規(guī)則,將使用該表所在數(shù)據(jù)庫(kù)的字符集和比較規(guī)則作為該表的字符集和比較規(guī)則

5.列級(jí)別

CREATE TABLE 表名(
    列名 字符串類型 [CHARACTER SET 字符集名稱] [COLLATE 比較規(guī)則名稱],
    其他列...
);

ALTER TABLE 表名 MODIFY 列名 字符串類型 [CHARACTER SET 字符集名稱] [COLLATE 比較規(guī)則名稱];
對(duì)于某個(gè)列來(lái)說(shuō),如果在創(chuàng)建和修改的語(yǔ)句中沒有指明字符集和比較規(guī)則,將使用該列所在表的字符集和比較規(guī)則作為該列的字符集和比較規(guī)則

6.僅修改字符集或僅修改比較規(guī)則

只修改字符集,則比較規(guī)則將變?yōu)樾薷暮蟮淖址J(rèn)的比較規(guī)則

只修改比較規(guī)則,則字符集將變?yōu)樾薷暮蟮谋容^規(guī)則對(duì)應(yīng)的字符集

7.各級(jí)別字符集和比較規(guī)則小結(jié)

如果創(chuàng)建或修改列時(shí)沒有顯式的指定字符集和比較規(guī)則,則該列默認(rèn)用表的字符集和比較規(guī)則

如果創(chuàng)建或修改表時(shí)沒有顯式的指定字符集和比較規(guī)則,則該表默認(rèn)用數(shù)據(jù)庫(kù)的字符集和比較規(guī)則

如果創(chuàng)建或修改數(shù)據(jù)庫(kù)時(shí)沒有顯式的指定字符集和比較規(guī)則,則該數(shù)據(jù)庫(kù)默認(rèn)用服務(wù)器的字符集和比較規(guī)則

客戶端和服務(wù)器通信中的字符集
從發(fā)送請(qǐng)求到返回結(jié)果這個(gè)過(guò)程中伴隨著多次字符集的轉(zhuǎn)換,在這個(gè)過(guò)程中會(huì)用到3個(gè)系統(tǒng)變量
系統(tǒng)變量 描述
character_set_client 服務(wù)器解碼請(qǐng)求時(shí)使用的字符集
character_set_connection 服務(wù)器運(yùn)行過(guò)程中使用的字符集
character_set_results 服務(wù)器向客戶端返回?cái)?shù)據(jù)時(shí)使用的字符集

服務(wù)器認(rèn)為客戶端發(fā)送過(guò)來(lái)的請(qǐng)求是用character_set_client編碼的

服務(wù)器將把得到的結(jié)果集使用character_set_results編碼后發(fā)送給客戶端

character_set_connection只是服務(wù)器在處理請(qǐng)求時(shí)使用的字符集,它是什么其實(shí)沒多重要,但是一定要注意,該字符集包含的字符范圍一定涵蓋請(qǐng)求以及結(jié)果集中的字符,要不然會(huì)出現(xiàn)無(wú)法將請(qǐng)求中的字符編碼成character_set_connection字符集或者無(wú)法編碼結(jié)果集中的字符

SET NAMES 字符集名等價(jià)于:

SET character_set_client = 字符集名;

SET character_set_connection = 字符集名;

SET character_set_results = 字符集名;

如果想寫進(jìn)配置文件:

[client]
default-character-set=utf8

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/31015.html

相關(guān)文章

  • 關(guān)于MySQL的知識(shí)點(diǎn)與面試常見問題都在這里

    摘要:串行最高的隔離級(jí)別,完全服從的隔離級(jí)別。但是這將嚴(yán)重影響程序的性能。此外,垂直分區(qū)可以簡(jiǎn)化表的結(jié)構(gòu),易于維護(hù)。 我自己總結(jié)的Java學(xué)習(xí)的一些知識(shí)點(diǎn)以及面試問題,目前已經(jīng)開源,會(huì)一直完善下去,歡迎建議和指導(dǎo)歡迎Star: https://github.com/Snailclimb/Java_Guide 書籍推薦 《高性能MySQL : 第3版》 文字教程推薦 MySQL 教程(菜鳥教程...

    hss01248 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<