本文给大家带来mysql字符集是什么?字符集的相关介绍有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助,我来为大家科普一下关于mysql中字符的定义?以下内容希望对你有帮助!

mysql中字符的定义(字符集的相关介绍)

mysql中字符的定义

本文给大家带来mysql字符集是什么?字符集的相关介绍。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

字符集介绍

字符集使用建议

1、非常肯定只有中文终端用户时,可选择gbk / gb2312

2、为了方便数据迁移、以及多种终端展示,最好是utf8

3、字符无需区分大小写时,采用默认的xx_ci校验集可以,否则选择xx_bin校验集(生产环境中,尽量不要修改校验集)

4、默认字符集是latin1,该字符集存放汉字是分开存放,以至于检索结果时不够精确,好处就是节省空间,不推荐使用

MySQL字符集范围

服务器层(server) > 数据库成(database) > 数据表(table) > 字段(column) > 连接(connection) | 结果集(result)

MySQL字符集优先级

连接(connection) | 结果集(result) > 字段(column) > 数据表(table) > 数据库成(database) > 服务器层(server)

char类型

char(N):N代表的是字符个数(也叫字符长度)、而非bytes

char(N):是固定长存储,占用定长的存储空间,不足的部分用空格填充;MySQL处理char(N)类型时,需要将空格strip掉后return。

存储空间:char(N)类型的存储空间和字符集有关系,结合刚才字符集的知识点,一个中文在utf8字符集中占用3个bytes、gbk占用2个bytes、数字和字符统一用一个字符表示。

存储机制:在不够N长度时,MySQL在存储数据时,需要用填充特殊的空格,而非十六进制的20

思考:

char(30),在不同的字符集中最多能存放多少个字母、汉字,以及占用空间情况

gbk: 可以存放30个字节 占用的空间30*2utf8:可以存放30个字节 占用的空间30*3

varcahr类型

varchar(N):N代表的是字符个数(也叫字符长度)、而非bytes

varchar(N):是变长存储,仅使用必要的存储空间.

存储空间:varchar(N)类型的存储空间和字符集有关系,结合刚才字符集的知识点,一个中文在utf8字符集中占用3个bytes、gbk统一占用2个bytes、数字和字符一个字符表示。

存储机制:varchar(N)字段存储实际是从第二个字节开始存储,然后用1到2个字节表示实际长度,剩下的才是可以存储数据的范围,因此最大可用存储范围是65535-3=65532字节;第一个字节标识是否为空.(长度小于255字节,使用一个字节来表示长度;大于255字节使用两个字节来表示长度)

修改数据库实例字符集

临时生效

mysql> set character_set = 'gbk';

mysql> set character_set_client = 'gbk';

全局生效

mysql> set global character_set_client = 'gbk';

Query OK, 0 rows affected (0.00 sec)

永久生效

vim /etc/my.cnf

character-set-server=utf8

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。更多相关教程请访问mysql数据库图文教程 ,MySQL视频教程,bootstrap视频教程!

以上就是MySQL字符集是什么?字符集的相关介绍的详细内容,更多请关注其它相关文章!

更多技巧请《转发 关注》哦!

,