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名称,一般在数据库文件目录下)可以在数据库文件目录中找到。
可以这样查看

同样可以这样查看

表
创建表的时候,

如果不指定表的字符集和排序规则,则表默认采用数据库配置的字符集和排序规则。
如果指定表的字符集而未指定排序规则,则表采用字符集对应默认的字符集。
如果指定表的排序规则而未指定字符集,则表采用排序规则归类的字符集。
列
创建列的时候,

如果不指定列的字符集和排序规则,则数据库默认采用表所在的字符集和排序规则。
如果指定列的字符集而未指定排序规则,则列采用字符集对应默认的字符集。
如果指定列排序规则而未指定字符集,则列采用排序规则归类的字符集。
以上文字可能看起来比较繁琐,总结就是,我们在为各个对象创建字符集和排序规则的时候,如果我们指定了优先级高的,优先级高的会覆盖级别低的。优先级即服务器 < 数据库 < 表 < 列。
MySQL数据库字符集和排序规则的四个级别的更多相关文章
- 【mysql】 数据库字符集和排序规则
库的字符集影响表和字段的字符集 数据库字符集 >表的字符集 > 字段的字符集 (从前往后优先级由低到高,从左往右继承,如果表没设置字符集,继承数据库的,如果字段没设置,继承表的) 数据库的 ...
- mysql 批量修改 表字段/表/数据库 字符集和排序规则
今天接到一个任务是需要把数据库的字符编码全部修改一下,写了以下修正用的SQL,修正顺序是 表字段 > 表 > 数据库. 表字段修复: #改变字段数据 SELECT TABLE_SCHE ...
- 关于mysql中字符集和排序规则说明
文章转自 http://blog.csdn.net/smallSBoy/article/details/52997138 数据库需要适应各种语言和字符就需要支持不同的字符集(Character Set ...
- mysql中字符集和排序规则说明
数据库需要适应各种语言和字符就需要支持不同的字符集(Character Set),每种字符集也有各自的排序规则(Collation). 一.字符集 字符集,即用于定义字符在数据库中的编码的集合. 常见 ...
- mysql字符集和排序规则
1.关于字符集和排序规则所为字符集,就是用来定义字符在数据库中的编码的集合.常见的字符集有:utf8(支持中文)和AccIS(不支持中文) 数据库中的排序规则用来定义字符在进行排序和比较的时候的一种规 ...
- MySQL 是怎样运行的:从根儿上理解 MySQL:字符集和比较规则
本文章借鉴自https://juejin.im/book/5bffcbc9f265da614b11b731 字符集和比较规则简介 一些重要的字符集 ASCII字符集 共收录128个字符,包括空格.标点 ...
- 翻译:MariaDB字符集和排序规则
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- MySQL数据库字符集和整理
MySQL数据库字符集和整理(2009-11-20 22:23:37) mysql数据库 it 其实这个表在MySQL数据库中通过phpMyAdmin就能看到,icech只是把表格整理了一下方便 ...
- mysql中字符集和校对规则
首先,明确一下字符集和校对规则的概念: 字符集(charset):是一套符号和编码 校对规则(collation):是在字符集内用于比较字符的一套规则,比如有的规则区分大小写,有的则无视 ...
随机推荐
- vs2015 cppunit配置及使用
目录 第一步 第二步 第三步 编译生成lib库 使用 calculator类测试 代码部分 第一步 下载源代码 http://sourceforge.net/projects/cppunit/file ...
- Java集合--阻塞队列及各种实现的解析
阻塞队列(Blocking Queue) 一.队列的定义 说的阻塞队列,就先了解下什么是队列,队列也是一种特殊的线性表结构,在线性表的基础上加了一条限制:那就是一端入队列,一端出队列,且需要遵循FIF ...
- 设计模式:Filter+Servlet+反射
传统设计 分类管理需要:增加,删除,编辑,修改,查询5个服务端功能. 一个路径对应一个Servlet的思路,就需要设计5个Servlet类,并且在web.xml中配置5个路径. CategoryAdd ...
- Palindromes _easy version(hdu2029)
输入格式:首先一个整型,然后循环不带空格未知长度的字符串. 思考:首先用scanf_s()输入整型,然后一个大循环,用gets_s()函数输入字符串. 注意:scanf_s()多加了一个%c,& ...
- queue.Queue()
一.构造方法 Queue是构造方法,函数签名是Queue(maxsize=0) ,其中maxsize设置队列的大小. 二.实例方法 Queue.qsize(): 返回queue的近似值.注意:qsiz ...
- 服务治理:Spring Cloud Eureka
Spring Cloud Eureka主要负责完成微服务架构中服务治理功能. 服务治理是微服务架构中最为核心和基础模块,主要用来实现各个微服务实例的自动注册和发现. 服务注册 微服务实例启动后向注册中 ...
- solr学习(笔记) windows10+jdk1.8+tomcat8环境部署
一:准备环境 1.1 »tomcat8.5下载地址:https://tomcat.apache.org/download-80.cgi 1.2 solr各版本下载地址:http://archive.a ...
- Python __str__(self)
python 在打印一个实例化对象时,打印的是对象的地址,比如:<__main__.Workers object at 0x00000000255A9AC8> 而__str__(self) ...
- 简单poi操作word@2020
个人采用POI(3.16版本)一.段落部分XWPFParagraph paragraph = docxDocument.createParagraph();1.段落对齐方式paragraph.setA ...
- Python数据分析:pandas玩转Excel (一)
目录 1 pandas简介 2 导入 3 使用 4 读取.写入 1 pandas简介 1.Pandas是什么? Pandas是一个强大的分析结构化数据的工具集: 它的使用基础是Numpy(提供高性能的 ...