最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

[MySQL]字符集和排序方式_MySQL

来源:懂视网 责编:小采 时间:2020-11-09 18:48:19
文档

[MySQL]字符集和排序方式_MySQL

[MySQL]字符集和排序方式_MySQL:bitsCN.com [MySQL] 字符集和排序方式 MySQL的字符串分为两大类:1)二进制字符串:即一串字节序列,对字节的解释不涉及字符集,因此它没有字符集和排序方式的概念2)非二进制字符串:由字符构成的序列,字符集用来解释字符串的内容,排序方式决定字符的大小
推荐度:
导读[MySQL]字符集和排序方式_MySQL:bitsCN.com [MySQL] 字符集和排序方式 MySQL的字符串分为两大类:1)二进制字符串:即一串字节序列,对字节的解释不涉及字符集,因此它没有字符集和排序方式的概念2)非二进制字符串:由字符构成的序列,字符集用来解释字符串的内容,排序方式决定字符的大小

bitsCN.com

[MySQL] 字符集和排序方式

MySQL的字符串分为两大类:

1)二进制字符串:即一串字节序列,对字节的解释不涉及字符集,因此它没有字符集和排序方式的概念

2)非二进制字符串:由字符构成的序列,字符集用来解释字符串的内容,排序方式决定字符的大小

字符集和排序方式

字符集和排序方式的关系是这样的:一个字符集可以有一个或多个排序方式,有一个默认的排序方式,我们可以通过以下例子说明:

[sql] mysql> show character set like '%gbk%'; +---------+------------------------+-------------------+--------+ | Charset | Description | Default collation | Maxlen | +---------+------------------------+-------------------+--------+ | gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 | +---------+------------------------+-------------------+--------+ 1 row in set (0.00 sec) mysql> show collation like '%gbk%'; +----------------+---------+----+---------+----------+---------+ | Collation | Charset | Id | Default | Compiled | Sortlen | +----------------+---------+----+---------+----------+---------+ | gbk_chinese_ci | gbk | 28 | Yes | Yes | 1 | | gbk_bin | gbk | 87 | | Yes | 1 | +----------------+---------+----+---------+----------+---------+ 2 rows in set (0.00 sec) 

从上例中我们可以看出字符集gbk有两个排序方式(分别为gbk_chinese_ci何gbk_bin),其中默认的排序方式为gbk_chinese_ci。

排序方式的命名规则为:字符集名字_语言_后缀,其中各个典型后缀的含义如下:

1)_ci:不区分大小写的排序方式

2)_cs:区分大小写的排序方式

3)_bin:二进制排序方式,大小比较将根据字符编码,不涉及人类语言,因此_bin的排序方式不包含人类语言

因此,gbk_chinese_ci排序方式就表示:字符集为gbk,人类语言使用中文来比较大小,比较时区分大小写。

常用函数

字符集引导

字符集引导可以让MySQL指定一种字符集来解释字符常量,其语法为:

_charset str

如:

_utf8 'ABCD' 表示以utf8字符集来介绍字符串常量'ABCD'

字符集转换

convert()函数可以把一个字符串转换成指定字符集,其语法为:

convert(str using charset)

如 convert('ABCD' using utf8) 表示把'ABCD'的字符集转换成uft8

length()函数 --返回字节的长度

char_length() --返回字符长度

与字符集有关的系统变量

通过以下语句可以查看与字符集有关的系统变量:

[sql] mysql> show variables like 'character/_set/_%'; +--------------------------+--------+ | Variable_name | Value | +--------------------------+--------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | gbk | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | gbk | | character_set_system | utf8 | +--------------------------+--------+ 7 rows in set (0.01 sec) mysql> show variables like 'collation/_%'; +----------------------+-------------------+ | Variable_name | Value | +----------------------+-------------------+ | collation_connection | latin1_swedish_ci | | collation_database | gbk_chinese_ci | | collation_server | gbk_chinese_ci | +----------------------+-------------------+ 3 rows in set (0.00 sec) 

它们的含义如下:

character_set_system:MySQL数据库标识符使用的字符集,永远是utf8

character_set_server和collation_server:服务器的默认字符集和排序方式

character_set_database和collation_database:当前数据库的默认字符集和排序方式

以下三个变量将影响客户端和服务器之间的通信:

character_set_client:客户端向服务器发送SQL语句使用的字符集

character_set_results:服务器向客户端返回结果时使用的字符集

character_set_connection:如果它和character_set_client不同,从客户端发来的SQL语句将转换为它指定的字符集

默认情况下,上述三个变量都设为为相同的值,如果某个客户端想使用另一种字符集与服务器通信,可以修改它们,如:

[sql] set character_set_client = utf8; set character_set_results = utf8; set character_set_connection = utf8; 

或者,更简单的方法是使用如下一条语句也能达到相同的效果:

[sql] set names 'utf8'; 


bitsCN.com

文档

[MySQL]字符集和排序方式_MySQL

[MySQL]字符集和排序方式_MySQL:bitsCN.com [MySQL] 字符集和排序方式 MySQL的字符串分为两大类:1)二进制字符串:即一串字节序列,对字节的解释不涉及字符集,因此它没有字符集和排序方式的概念2)非二进制字符串:由字符构成的序列,字符集用来解释字符串的内容,排序方式决定字符的大小
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top