二进制字符串
二进制字符串是字节序列。它们具有二进制字符集和排序规则,并且比较/排序是基于字节的数值完成的。
--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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。