二進製字符串
二進製字符串是字節序列。它們具有二進製字符集和排序規則,並且比較/排序是基於字節的數值完成的。
--Setting the character set to binary
SET NAMES 'binary';
--Checking the character set and collation
SELECT CHARSET('apple'), COLLATION('apple');
+------------------------------------+----------------------------------------+
| CHARSET('apple') | COLLATION('apple') |
+------------------------------------+----------------------------------------+
| 0x62696E617279 | 0x62696E617279 |
+------------------------------------+----------------------------------------+
當您看到 0x62696E617279
時,乍一看這可能看起來像是胡言亂語。這是以十六進製表示的二進製字符串(前綴0x
表示該數字以十六進製寫入):
十六進製 |
十進製值 |
ASCII 字符 |
---|---|---|
62 |
98 |
b |
69 |
105 |
i |
6E |
110 |
n |
61 |
97 |
a |
72 |
114 |
r |
79 |
121 |
y |
因此,如果我們用簡單的英語讀取二進製字符串0x62696E617279
,它將讀取'binary'
。
注意
在這種情況下,ASCII 字符都可以使用 1 個字節表示,因此每個字母對應一對十六進製數字(例如 'n'
對應十六進製 '6E'
)。但是,多字節字符的情況並非如此(例如日語字符 あ
以十六進製表示為 'E38182'
)。
顯然,我們可以看到,當我們想要讀取以文本形式存儲的信息時,二進製字符串並不是很有用。二進製字符串通常用於保存非文本數據,例如圖片和錄音。
非二進製字符串
非二進製字符串是字符序列。它與字符集和排序規則相關聯。
MySQL 中的默認字符集是 utfmb4
,默認排序規則是 utf8mb4_0900_ai_ci
:
SELECT CHARSET('apple'), COLLATION('apple');
+------------------+--------------------+
| CHARSET('apple') | COLLATION('apple') |
+------------------+--------------------+
| utf8mb4 | utf8mb4_0900_ai_ci |
+------------------+--------------------+
我們可以看到,非二進製字符串比二進製字符串更適合文本信息。
相關用法
- MySQL BINARY用法及代碼示例
- MySQL BIT_AND()用法及代碼示例
- MySQL BIT_COUNT()用法及代碼示例
- MySQL BIN()用法及代碼示例
- MySQL BIT_LENGTH方法用法及代碼示例
- MySQL BINARY and VARBINARY用法及代碼示例
- MySQL BIT_OR()用法及代碼示例
- MySQL BIT_LENGTH()用法及代碼示例
- MySQL BOOLEAN用法及代碼示例
- MySQL BIT用法及代碼示例
- MySQL BETWEEN用法及代碼示例
- MySQL BIT_XOR()用法及代碼示例
- MySQL BIN方法用法及代碼示例
- MySQL ROUND()用法及代碼示例
- MySQL REPEAT()用法及代碼示例
- MySQL POWER()用法及代碼示例
- MySQL LEAD() and LAG()用法及代碼示例
- MySQL IS_IPV4()用法及代碼示例
- MySQL RADIANS方法用法及代碼示例
- MySQL VARIANCE方法用法及代碼示例
- MySQL WEEK()用法及代碼示例
- MySQL TIME_FORMAT方法用法及代碼示例
- MySQL CURTIME()用法及代碼示例
- MySQL weekofyear()用法及代碼示例
- MySQL Convert()用法及代碼示例
注:本文由純淨天空篩選整理自Arthur Yanagisawa大神的英文原創作品 MySQL | Binary and Non-binary strings。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。