《Mysql 字符集》
一:什么是字符集呢?
- 引用书中的例子:同样是大熊猫,在大陆叫熊猫,在台湾叫猫熊,在美国叫Panda,要到了非洲,可能都不知道叫啥(于是就乱码了)。
- 在例子之后引入字符集的概念:字符集就是指符号和字符编码的集合。
- 不同地方的字典是不同的,就像你给美国人民看“熊猫两个字”,他们绝对不会联想出是 Panda(大熊猫) 这种动物的。
- SO,正确的使用字符集是非常重要的,使得输入与输出相匹配,才能出现正确的结果。
二:什么是字符集校对规则?(了解)
- 这里只做了解,因为每种字符集都用默认的校对规则,会在之后讲述。
- 简单来说,就是一种字符集合的排序规则。
三:字符集简介
- GB2312 包含简体中文及常用符号,采用双字节编码方式(一个汉字存两个字节)
- GBK 包含 中、日、韩 的大字符集,GB2312 可以说是 GBK 的子集,也可以说 GBK 是 GB2312 的超集。也是双字节编码方式。
- UFT8 支持大部分的常见字符(西、中、日、韩、法、俄),对英文一个字节编码,对于其他(如中文),采用三个字节编码。
- UTF8MB4 一个字符 4 字节存储,支持的字符最广,占用也最大。(支持 emoji)
四:如何选择合适的字符集?
- 支持多国语言配置, 选择 UTF-8
- 如果需要兼容老数据,必须选择包含该字符集的字符集合(也就是必须选择包含老数据的字符集)
- 如果只支持一般中文,数据量大,并且需要较高的性能,请选用GBK(比UTF8占用更小)
- 需要做字符集运算,选择定长字符,因为定长比不定长处理速度更快
- 选用字符集之后,请保持所有字符集一致
五:查看当前数据库版本支持什么字符集?
- 可以通过使用 show character set 查看 数据库版本 支持的字符集
六:服务端默认字符集用处?
- 设定 服务端字符集,避免因为服务端字符集和表字符集不同导致的乱码等问题。
- 
- 在这里涉及几个比较关键的,拿出来说一下
- 客户端发出的SQL语句,字符集由 character_set_client 来指定。
- 服务端收到SQL语句,字符集由 character_set_connection 来指定
- 服务端返回结果,字符集由 character_set_results 来指定。
七:如何设定服务端默认字符集?
- 全局设定
- 整个 MySQL 服务中生效。
- 写入 Mysql.conf 配置,每次启动 Mysql 服务生效。
- character_set_server=utf8
- 客户端设置,修改字符集(重启服务丢失)
- set global character_set_server=utf8;
八:用于指定存储数据时的字符集?
- 数据库级别
- 建立指定字符集的数据库
- CREATE DATABASE 数据库名 CHARSET 字符集;
- 查看数据库使用字符集
- SHOW CREATE DATABASE 数据库名;
- 修改数据库使用字符集
- ALTER DATABASE 数据库名 CHARSET 字符集;
- 表级别
- 建立表指定字符集
- CREATE TABLE 表名 (...) CHARSET=字符集;
- 修改表指定字符集
- ALTER TABLE 表名 CHARACTER SET 字符集;
- 列级别
- 建立指定字段字符集
- CREATE TABLE 表名 (字段名 VARCHAR(20) CHARSET 字符集....);
- 查看表中各列字符集定义
- SHOW FULL COLUMNS FROM 表名;
《Mysql 字符集》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- iOS开发:一个无限滚动自动播放图片的Demo(Swift语言编码)
很久以前就想写这么一个无限滚动的Demo了,最近学习了下Swift,手中没有可以用来练手的Demo,所以才将它实现了. Github地址(由于使用了UIView+AutoLayout第三方进行布局,所 ...
- (诊断)No module named MySQLdb
启动Keystone同步数据库时提示: -- :: TRACE keystone File , in dbapi -- :: TRACE keystone return __import__('MyS ...
- oracle 11G rac 11.2.0.1 打补丁9413827
这是升级到以后11.2.0.2.11.2.0.3.11.2.0.4的基础 主要参考两篇文章: Upgrade_11.2.0.1_GI_CRS_to_11.2.0.2_in_Linux.PDF文件 ht ...
- 将 GitHub 上的代码向 Coding 更新
问题: 从 GitHub 上 clone 代码到本地很慢,10 KB/s 左右,为了解决这个问题,尝试将 GitHub 上的代码通过离线下载的方式,用百度云和115网盘下载,经常失败,弃之~ 国内也有 ...
- Java8学习笔记(四)--接口增强
增强点 静态方法 public interface InterfacePlus { void run(); static Date createDate(){ return new Date(); } ...
- C# winform写入和读取TXT文件
C# winform写入和读取TXT文件 string str; str=this.textBox1.Text; StreamWriter sw = new ...
- [DL] *Deep Learning for Industry - Wang Yi
Link: 分布式机器学习系列讲座 - 04 Deep Learning WANG Yi. https://cxwangyi.wordpress.com/ https://www.zhihu.com/ ...
- U3D常用题
最先执行的方法是:1.(激活时的初始化代码)Awake,2.Start.3.Update[FixUpdate.LateUpdate].4.(渲染模块)OnGUI.5.再向后,就是卸载模块(TearDo ...
- C#实现二叉树--二叉链表结构
二叉树的简单介绍 关于二叉树的介绍请看这里 : 二叉树的简单介绍 http://www.cnblogs.com/JiYF/p/7048785.html 二叉链表存储结构: 二叉树的链式存储结构是指,用 ...
- 5.STM32通用定时器TIM3中断
1.通用定时器TIM3中断 #include "timer.h" #include "led.h" void TIM3_Int_Init(u16 arr,u16 ...