打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
MySQL数据库字符集和排序规则的四个级别

MySQL数据库字符集和排序规则有四个级别的默认设置:服务器,数据库,表和列。

最初,服务器字符集和排序规则取决于启动mysqld时使用的选项。可以使用 --character-set-server该字符集。同样可以添加 --collation-server用于排序规则。这些可以在服务器启动时在命令行或选项文件中进行设置,并可以在运行时进行更改。

一般开发我们要求MySQL数据库存放中文数据,所以在MySQL配置文件里面一般会指定字符集和排序规则。

我们可以执行SHOW CHARACTER SET,查看MySQL服务器支持的字符集和排序规则。

如果未指定服务器的字符集和排序规则,则默认采用latin1和latin1_swedish_ci。

同时也可以可以清晰的看出,latin1和utf-8的默认排序规则分别是latin1_swedish_ci和utf8_general_ci,同时长度分别占1个和1-3个字节。

数据库

创建数据库的时候,

如果不指定数据库的字符集和排序规则,则数据库默认采用服务器配置的字符集和排序规则。

如果指定数据库的字符集而未指定排序规则,则数据库采用字符集对应默认的字符集。

如果指定数据库的排序规则而未指定字符集,则数据库采用排序规则归类的字符集(即排序规则对应的字符集)。

所有数据库字符集选项都存储在一个名为 db.opt(db代表数据库Schema名称,一般在数据库文件目录下)可以在数据库文件目录中找到。

可以这样查看

同样可以这样查看

创建表的时候,

如果不指定表的字符集和排序规则,则表默认采用数据库配置的字符集和排序规则。

如果指定表的字符集而未指定排序规则,则表采用字符集对应默认的字符集。

如果指定表的排序规则而未指定字符集,则表采用排序规则归类的字符集。

创建列的时候,

如果不指定列的字符集和排序规则,则数据库默认采用表所在的字符集和排序规则。

如果指定列的字符集而未指定排序规则,则列采用字符集对应默认的字符集。

如果指定列排序规则而未指定字符集,则列采用排序规则归类的字符集。

以上文字可能看起来比较繁琐,总结就是,我们在为各个对象创建字符集和排序规则的时候,如果我们指定了优先级高的,优先级高的会覆盖级别低的。优先级即服务器 < 数据库 < 表 < 列。

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
mysql查询时不区分大小写
数据库表中无法添加中文数据的解决方法
MYSQL校对规则
数据库设计和SQL编写规范
【任务2-4】使用Alter Database语句修改数据库
mysql 批量修改表字符集和排序规则
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服