网站首页 > 教程文章 正文
1、字符集概述
大家都知道,计算机只能识别二进制码,为了让计算机能处理文字,人们给每个文字进行编码,这个编码就是计算机字符集的由来。
字符集是多个字符的集合,而字符是各种文字、符号和编码的总称。MySQL提供了字符集支持,可以使用各种字符集存储数据。可以在服务器,数据库,表和列级别指定字符集。
2、MySQL的字符集和排序规则
字符集:用来定义MySQL存储字符串的方式
排序规则:用来定义比较字符串的方式。
字符集和排序规则是一对多的关系。
在同一服务器,同一数据库甚至同一表中混合使用具有不同字符集或排序规则的字符串
3、MySQL字符集的设置
服务器字符集和排序规则
服务器字符集和排序规则,可以在MySQL的配置文件汇中设置。
在my.cnf中设置
[mysql]
character_set_server=utf8
查询当前服务器的字符集和排序规则
show variables like 'character_set_server';
show variables like 'collation_server';
数据库字符集和排序规则
数据库字符集和排序规则可以在创建数据库的时候指定,也可以在创建完数据库后通过‘alter database’命令进行修改。如果数据库里已经存在数据,则以前的数据还是按照久的字符集进行存储,新数据按照新的字符集存放。
设置数据库字符集和排序规则
查询当前数据库的字符集和排序规则
show variables like 'character_set_database';
show variables like 'collation_ database';
MySQL设置数据库字符集和排序规则的规则如下:
- 如果指定了字符集和排序规则,则使用指定的字符集和排序规则
- 如果指定了字符集未指定排序规则,则使用指定字符集其默认排序规则
- 如果指定了排序规则但未指定字符集,则使用与排序规则相关的字符集
- 如果未指定字符集和排序规则,则使用服务器字符集和服务器排序规则。
表字符集和排序规则
表的字符集和排序规则在创建表的时候指定,也可以通过alter table命令进行修改,如果表中已有数据,修改字符集对原有数据没有影响。
设置表字符集和排序规则
查询当前表的字符集和排序规则
show create table
MySQL设置表字符集和排序规则的规则如下:
- 如果指定了字符集和排序规则,则使用指定的字符集和排序规则
- 如果指定了字符集未指定排序规则,则使用指定字符集其默认排序规则
- 如果指定了排序规则但未指定字符集,则使用与排序规则相关的字符集
- 如果未指定字符集和排序规则,则使用数据库字符集和服务器排序规则。
列字符集和排序规则
每个“ 字符 ”列(即,类型列 CHAR, VARCHAR中, TEXT类型)都有字符集和列排序规则。列定义语法,CREATE TABLE并 ALTER TABLE具有用于指定列字符集和排序规则的可选子句:
查询当前列的字符集和排序规则
show create table
MySQL设置列字符集和排序规则的规则如下:
- 如果指定了字符集和排序规则,则使用指定的字符集和排序规则
- 如果指定了字符集未指定排序规则,则使用指定字符集其默认排序规则
- 如果指定了排序规则但未指定字符集,则使用与排序规则相关的字符集
- 如果未指定字符集和排序规则,则使用表字符集和服务器排序规则。
4、MySQL字符集修改
修改带有历史数据的数据库的字符集,步骤如下:
- 导出表结构
- 手工修改导出文件的字符集为新的字符集
- 导出所有记录
- 修改数据文件的字符集
- 创建新的数据库
- 利用导出的文件建表
- 利用导出的文件导入数据
猜你喜欢
- 2024-12-23 了解MySQL的字符集 mysql字符集问题
- 2024-12-23 go-admin开源项目,快速搭建一个管理后台系统,直接二次开发上线
- 2024-12-23 Windows安装Gitea windows安装gitlab
- 2024-12-23 Python开发 常见异常和解决办法 python中会出现哪些异常
- 2024-12-23 mysql1366错误:字符集冲突导致插入数据异常,解决方案
- 2024-12-23 MySQL-8.0.26免安装版配置步骤 mysql5.7.32免安装教程
- 2024-12-23 MySQL8免安装版(Windows)安装配置
- 2024-12-23 MySQL 8.0.25 免安装版完整配置步骤(收藏)
- 2024-12-23 MySQL 数据库的小白安装与登录 mysql数据库安装教学视频教程
- 2024-12-23 MySQL字符问题 mysql字符型数据
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- md5 sha1 (32)
- mybatis plus page (35)
- semaphore 使用详解 (32)
- update from 语句 (32)
- vue @scroll (38)
- 堆栈区别 (33)
- 在线子域名爆破 (32)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)